GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

VIP Sistemi Oluşturma [dini]

Başlatan |Mert|, 27 Temmuz 2018, 20:17:50

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

|Mert|

Merhaba arkadaşlar bilmeyenler için ben gibi pawnoda acemi olanlar için vip sistemi yapmayı göstereceğim.

İlk başta serverimizin ana dizinindeki scriptfiles klasörünün içine VIP adlı yeni klasör açıyoruz ve Dini, dutils ,dudb zcmd ve sscanf2 Includelerini indirip modumuzun başına

#include <Dini>
#include <Dutils>
#include <Dudb>
#include <zcmd>
#include <sscanf2>

#pragma unused ret_memcpy


Yazarak includelerimizi ve fsmizin/modumuzun uyarı vermemesi için ret_memcpyi ekliyoruz


Sonra VIP Değişkenini oluşturacağız bunun için modumuzun en üstüne boş biyere değişkenimizi ekliyoruz.


new VIP[MAX_PLAYERS];


Şimdi OnPlayerConnecte publicine aşşağıdaki kodu ekliyoruz.


new file[250], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
  format(file,sizeof(file),"VIP/%s.ini",name);
if(dini_Exists(file))
{
  VIP[playerid] = dini_Int(file,"VIP");
  }


OnPlayerDisconnect publicine aşşağıdaki kodu ekliyoruz

new file[250], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
    format(file,sizeof(file),"VIP/%s.ini",name);
if(dini_Exists(file) )
{
dini_IntSet(file,"VIP",VIP[playerid]);
}


VIP'lerin chatte özel tagı olması için OnPlayerText publicine

if(VIP[playerid] == 1)
{
new string[300],nick[MAX_PLAYER_NAME];
GetPlayerName(playerid,nick,sizeof(nick));
format(string,sizeof(string),"{00e500}[VIP] {ffffff}%s[%i]: {ffffff}%s",nick,playerid,text);
SendClientMessageToAll(-1,string);
}


kodunu ekliyoruz ama onplayertextin sonundaki return 1 i 0 olarak değiştirmeyi unutmayın yoksa çok karmaşık oluyor oyun içi örnek Mert:[VIP]Mert:asda

Gelelim VIP Yapma komutuna, bunun için boş bi yere aşşağıdaki kodu ekliyoruz

CMD:vipyap(playerid,params[])
{
new pID;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Bu komut için yetkiniz yok!");
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, -1,"Kullanım /vipyap [Oyuncu ID]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Oyuncu Bulunamadı");

new oyuncu[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME];
GetPlayerName(pID, oyuncu, sizeof(oyuncu));
GetPlayerName(playerid, name, sizeof(name));


new string[200];
format(string,sizeof(string),"%s Adlı Yetkili %s Adlı Oyuncuyu VIP Yaptı.",name,oyuncu);
SendClientMessageToAll(-1,string);

new file[250];
  format(file,sizeof(file),"VIP/%s.ini",oyuncu);
dini_Create(file);
dini_IntSet(file,"VIP",1);

VIP[pID] = 1;
return 1;
}



Ve VIP Komutu yapmak istiyoruz örnek:

CMD:vcan(playerid,params[])
{
if(VIP[playerid] == 0) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için VIP olmalısın.");  // VIP Değişkeni 0 ise hata mesajı vericek
SendClientMessage(playerid, -1, "Başarıyla canınızı fullediniz!");
SetPlayerHealth(playerid, 100.0);
return 1;
}


Bu şekilde viplere özel komut oluşturabilirsiniz.




Gereken Bütün Includeler:










Eğer anlatımımda eksikler hatalar bulduysanız belirtmeyi unutmayın ve kendim denedim anlattığım sistemi ve sorunsuz bir şekilde çalışıyor.
Son düzenlenme: 10 Ağustos 2018, 05:28:49 |Mert|

Boss

Anlatim güzel olmuş dostum . Fakat stringlerin uzunluğu gereksiz uzun geldi bana . Eline sağlık:)


|Mert|

Alıntı yapılan: Boss - 27 Temmuz 2018, 21:44:41

Anlatim güzel olmuş dostum . Fakat stringlerin uzunluğu gereksiz uzun geldi bana . Eline sağlık:)
stringlerin uzunlugu konusunda pek iyi değilim ama düzenledim konuyu


DracDonix

İmzanız forum kurallarına uymamaktadır. (daha küçük boyutta bir imza seçiniz.)

|Mert|


Adolphe

«      miss out on fun  »

IsmailGamingTR


Zoxy

Bence verimsiz bir sistem olmuş. Oyuncu sunucuya bağlandığında dosya oluşturuluyor, sunucuya günde en az 100-200 kişi girse modun boyutu falan çok artar. Bu da VDS'yi falan baya zorlar. Onun yerine oyuncu VIP olunca dosya oluştur. Anlatım için teşekkürler.


|Mert|

Alıntı yapılan: Zoxy - 28 Temmuz 2018, 14:51:17

Bence verimsiz bir sistem olmuş. Oyuncu sunucuya bağlandığında dosya oluşturuluyor, sunucuya günde en az 100-200 kişi girse modun boyutu falan çok artar. Bu da VDS'yi falan baya zorlar. Onun yerine oyuncu VIP olunca dosya oluştur. Anlatım için teşekkürler.
bunu gerçekten hatırlattığın için çok teşekkür ederim aklımdan gitmiş o konuyu düzenledim dediğin gibi yaptım  :D


Jawié

Çok verimsiz ama sonuçta buna da ihtiyacı olan çaylaklar var. Ultra-host sunucularında kullanırlar belki. Çok yiyeceği için Ultra-host tarafından sunucuları kapatılır zaten. Heves almalık bir anlatım, teşekkürler.


|Mert|

Alıntı yapılan: Jawié - 28 Temmuz 2018, 23:34:55

Çok verimsiz ama sonuçta buna da ihtiyacı olan çaylaklar var. Ultra-host sunucularında kullanırlar belki. Çok yiyeceği için Ultra-host tarafından sunucuları kapatılır zaten. Heves almalık bir anlatım, teşekkürler.
teşekkürler eleştrin için zaten ben bunu dini kullananlar için paylaştım ve hani o .ini dosyasi 1mb bile yer kaplamaz gereksiz verimsiz yazman adam vds aliyorsa bi en az 10gb yer olsun yoksa hic almasin  :D
Son düzenlenme: 29 Temmuz 2018, 00:00:45 |Mert|

Jawié

Alıntı yapılan: |Mert| - 28 Temmuz 2018, 23:56:39

Alıntı yapılan: Jawié - 28 Temmuz 2018, 23:34:55

Çok verimsiz ama sonuçta buna da ihtiyacı olan çaylaklar var. Ultra-host sunucularında kullanırlar belki. Çok yiyeceği için Ultra-host tarafından sunucuları kapatılır zaten. Heves almalık bir anlatım, teşekkürler.
teşekkürler eleştrin için zaten ben bunu dini kullananlar için paylaştım ve hani o .ini dosyasi 1mb bile yer kaplamaz gereksiz verimsiz yazman adam vds aliyorsa bi en az 10gb yer olsun yoksa hic almasin  :D


Ben onu sadece dosya boyutu için söylemedim zaten güzelim. Dini işlevi verimsiz. Bu verimsizliğin yanında gerçekleşmesini istediğin işlev daha verimsiz.
Son düzenlenme: 29 Temmuz 2018, 00:21:50 Jawié

MehmetAKAR

Anlatım Icın Ellerine Saglık Dostum Sagol  :helal:

  Efsaneler Asla Ölmez Sadece Şekil Değiştirir..!