1. sayfa (Toplam 2 sayfa)

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 1:11 pm
gönderen OneTap
Merhaba arkadaşlar,

Bir eklentimiz mevcut ki bu eklenti kayıtlı oyuncuların, oturum açtıklarında aldıklarını bunu TOPLAMKILL olarak kaydediyor (nvault) .

public plugin_natives()
{
register_native("user", "userid", 1);
}

public userid(id){ return user_uidcek[id]; }

şeklinde iki fonksiyon yazılmış. Başka bir eklentimiz ise Chat Eklentisi. Bu chat eklentisinde bu TOPLAMKILL'i kullanıp ekrana yazdırabilir miyiz?

Bu plugin_navites fonksiyonu başka eklentilerle birleştirilmesi için kullanılmıyor mu?

Bu konuda bilgi verebilecek var mı acaba?

@Taha Demirbaş
@Yek'-ta
@Fatih ~ EjderYa

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 1:25 pm
gönderen OneTap
Araştırmalarımda şu konuya ulaştım:

https://forums.alliedmods.net/showthread.php?t=41251

Burada da dyn_test.inc oluşturulması aşamasına açıklık getiremedim.

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 1:35 pm
gönderen ByBuLuT ☪
.inc veya natice olarak tanıtıp başka eklentilere veri cekilebilir yapabiliyorum ama nasıl oluyo anlatacak kadar bilmiyorum iki eklentiyide atarsan yapmaya çalışırım

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 1:39 pm
gönderen OneTap
bybulut55 yazdı: Cmt Ara 22, 2018 1:35 pm .inc veya natice olarak tanıtıp başka eklentilere veri cekilebilir yapabiliyorum ama nasıl oluyo anlatacak kadar bilmiyorum iki eklentiyide atarsan yapmaya çalışırım
Cevap olarak attığım 2. yorumda nasıl yapıldığı anlatılıyor zaten de bizim eklentide sadece oyuncunun UID Numarası çekilmiş. UID nosunu çekince TOPLAM KILL RANK otomatikmen çıkıyor.

Acaba bizde uid olarak yazılan navite kullansak, TOPLAMKILL verisi çekilir mi? yani yeni eklentide tekrardan TOPLAMKILL'i tanitmak zorunda miyiz?

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 2:00 pm
gönderen PaZee

Kod: Tümünü seç

public plugin_natives()
{
register_native("fonksiyonadi", "userid", 1);
}

public fonksiyonadi(id){ return user_uidcek[id]; }
başka eklentidende şöyle çekersin

includenin altina biyerlere

Kod: Tümünü seç

native userid(id)
şeklinde tanitirsin

benim kayit sistemini incele kaparsın zaten

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 2:27 pm
gönderen OneTap
PaZee yazdı: Cmt Ara 22, 2018 2:00 pm
Hocam zaten senin kayıt sistemin üzerine kurulmuş eklenti. Bende şunu oluşturdum:

Kod: Tümünü seç

public plugin_natives()
{
	register_native("g_userkill","g_userkillnavite",1)
}

public g_userkill(id)
{
	
}
Eklentide /rutbe yazinca bu işlemler yaptırılıyor, ChatColor ile ekrana yazdırılıyor.

Kod: Tümünü seç

		
		new toplamkill, name[32];
		toplamkill = g_Level[id][g_TOPLAMKILL];
		get_user_name(id,name,charsmax(name));
	
		new currentPlayerRank = 0;
		while(currentPlayerRank < (MAXRANKS - 1))
		{
			if(toplamkill >= RANKXP[currentPlayerRank + 1])
				++currentPlayerRank;
			else
				break;
		}
	
		PlayerRank[id] = currentPlayerRank;
		new leftkills = g_Level[id][g_TOPLAMKILL];
		new right = RANKXP[currentPlayerRank + 1];
		new sonuc = right - leftkills;
Bu işlemler için lazım olan ust satırlarda şu şekilde;

Kod: Tümünü seç

/*===== RANK NAME ===== */
#define RANK_NOTHING2 0 
#define RANK_NOTHING 1 
#define RANK_PRIVATE 2 
#define RANK_PRIVATE_FIRST_CLASS 3
#define RANK_CORPORAL 4
#define RANK_SERGEANT 5 
#define RANK_STAFF_SERGEANT 6
#define RANK_GUNNERY_SERGEANT 7 
#define RANK_MASTER_SERGEANT 8 
#define RANK_COMMAND_SERGEANT 9 
#define RANK_SECOND_LIEUTENANT 10 
#define RANK_FIRST_LIEUTENANT 11 
#define RANK_COLONEL 12
#define RANK_BRIGADIER_GENERAL 13
#define RANK_MAJOR_GENERAL 14 
#define RANK_LIEUTENANT_GENERAL 15 
#define RANK_GENERAL 16 
#define RANK_GENERAL_OF_THE_ARMY 17
#define MAXRANKS 18

new PlayerRank[33];

new const RANK[MAXRANKS][] = 
{  
	"BOT",
	"SILVER I",  
	"SILVER II",  
	"SILVER III",  
	"SILVER IV",  
	"SILVER ELITE",  
	"SILVER ELITE MASTER",  
	"GOLD NOVA I",  
	"GOLD NOVA II",  
	"GOLD NOVA III",  
	"GOLD NOVA MASTER",  
	"MASTER GUARDIAN I",  
	"MASTER GUARDIAN II",  
	"MASTER GUARDIAN ELITE",  
	"DISTINGUISHED MASTER",  
	"LEGENDARY EAGLE",  
	"LEGENDARY EAGLE MASTER",  
	"THE GLOBAL ELITE", 
}

new const RANKXP[MAXRANKS] = 
{ 
	0, 5, 20, 50, 110, 230, 470, 600, 820, 1000, 1200, 1350, 1500, 1670, 1850, 2100, 2500, 3150
}
/*===== RANK NAME ===== */
Asıl soru oluşturduğum g_userkill fonksiyonu bu işlemi karşılayacak ve diğer eklentiye navite g_userkill(id) yazdığım zaman bu yukarıdaki kodları tekrar yazmama gerek var mı? Tekrar yazılmayacaksa nasıl yeni eklentide bunu tanıtıp, ChatColor olarak ekrana yazdıracağım?

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Cmt Ara 22, 2018 3:04 pm
gönderen OneTap
Şöyle bir incelediğimde diğer eklentiye sadece g_Level[id][g_TOPLAMKILL] tanıtabilirsem sorun zaten çözülmüş olacak @PaZee

Yeni eklentiye bunu ekliyorum:

Kod: Tümünü seç


enum _: Level
{
	g_TOPLAMKILL
}

new g_Level[33][Level];
Ama işte tek sorun g_Level[id][g_TOPLAMKILL] yazdıramıyorum. navite oluşturduğum eklentide fonksiyona ne yazacağım ve diğer eklentiye g_Level[id][g_TOPLAMKILL] nasıl çekeceğim?

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Pzr Ara 23, 2018 1:59 pm
gönderen OneTap
Evet Arkadaşlar yardımınızı bekliyorum... native kullanma sorusunda acayip bir ihtiyaç söz konusu.

Chat ile var olan eklentiyi birlestirdiğimdede sunucuda lag oluşuyor.

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Pzr Ara 23, 2018 2:08 pm
gönderen Yek'-ta
Tam olarak ne yapmak istediğini anlamadım ama native ile ilgili bütün bildiklerimi yazayım, sen aralarından seç.

1- Native da sadece int değer alışverişi yaparsın. Yani bir yazı gönderemezsin yada çekemezsin, sadece sayılı bir değer gönderip çekersin.
2- Bir oyuncunun bir eklenti de saydırılan anladığım kadarı ile TOPLAMKILL yazısını ayrı ayrı çekersin. Yani

Kod: Tümünü seç

public plugin_natives()
{
register_native("toplamkillcek", "fonksiyonadi", 1);
}

public fonksiyonadi(id){ return g_Level[id][g_TOPLAMKILL]; }
3- Amacın rank isimlerini almak ise, o rank isimlerini de kullanacağın diğer eklentide tanıtmalısın. g_TOPLAMKILL i asıl eklentiden çektiğin vakit onlarla karşılaştıracaksın çünkü. Ben çok detaya inebilirim der isen bir tane ini dosyasına bağla, her iki eklentide de oradan çeksin değerleri. Bunun için ben uğraşmam, baya kafa ütülemen lazım bunun için.

Başka bir eklentide kullanılan veriyi çekme

Gönderilme zamanı: Pzr Ara 23, 2018 2:17 pm
gönderen OneTap
Yekta yazdı: Pzr Ara 23, 2018 2:08 pm Tam olarak ne yapmak istediğini anlamadım ama native ile ilgili bütün bildiklerimi yazayım, sen aralarından seç.

1- Native da sadece int değer alışverişi yaparsın. Yani bir yazı gönderemezsin yada çekemezsin, sadece sayılı bir değer gönderip çekersin.
2- Bir oyuncunun bir eklenti de saydırılan anladığım kadarı ile TOPLAMKILL yazısını ayrı ayrı çekersin. Yani

Kod: Tümünü seç

public plugin_natives()
{
register_native("toplamkillcek", "fonksiyonadi", 1);
}

public fonksiyonadi(id){ return g_Level[id][g_TOPLAMKILL]; }
3- Amacın rank isimlerini almak ise, o rank isimlerini de kullanacağın diğer eklentide tanıtmalısın. g_TOPLAMKILL i asıl eklentiden çektiğin vakit onlarla karşılaştıracaksın çünkü. Ben çok detaya inebilirim der isen bir tane ini dosyasına bağla, her iki eklentide de oradan çeksin değerleri. Bunun için ben uğraşmam, baya kafa ütülemen lazım bunun için.
Toplam kill değerini bu fonksiyonadi ile alıyorum bu tamam.
Rank isimleri ve rankin değerlerini chat eklentisinde ayriyeten tanımlıyorum.
native'yi tanıtıyorum.

Chat eklentisinde şöyle bir işlem yaptırmam lazım. Chat eklentisinde g_Level[id][g_TOPLAMKILL] yerine fonksiyonadini yazsam karşılar mı? Yani toplamkilll = fonksiyonadi(id); yazarsam g_Level[id][g_TOPLAMKILL] karşılanmış olur mu?

Kod: Tümünü seç

		new toplamkill, name[32];
		toplamkill = g_Level[id][g_TOPLAMKILL];
		get_user_name(id,name,charsmax(name));
	
		new currentPlayerRank = 0;
		while(currentPlayerRank < (MAXRANKS - 1))
		{
			if(toplamkill >= RANKXP[currentPlayerRank + 1])
				++currentPlayerRank;
			else
				break;
		}