(http://i52.tinypic.com/2likfar.png)
Modun başına,
new Etkilesim[MAX_PLAYERS];
#define kimlikdialog 1500//modunuzdaki başka bir dialog ile çakışmaması için buradan ayarlayabilirsiniz
#define COLOR_PURPLE 0x9E81D0AA//modunuzda varsa bunu eklemenize gerek yok
OnPlayerCommandText altına,
if(strcmp(cmd, "/kimlikgoster", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) { SendClientMessage(playerid, 0xF6F6F6AA, "Kullanım: /kimlikgoster [OyuncuID]"); return 1; }
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(ProxDetectorS(1.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, 0xFF0000FF, "Kimliğinizi kendinize gösteremezsiniz."); return 1; }
format(string, sizeof(string), "* %s kimliğini çıkarır ve %s a uzatır", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid));
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
format(string, sizeof(string), "{799CD4}%s {FFFFFF}elindeki kimliği size doğrun uzattı, nasıl tepki vermek istersiniz?", GetPlayerNameEx(playerid));
ShowPlayerDialog(giveplayerid, kimlikdialog ,DIALOG_STYLE_MSGBOX,"{1B7EE0}Bilgilendirme:", string,"Kimliği Al","Geri Çevir");
Etkilesim[giveplayerid] = playerid;
}
else { SendClientMessage(playerid, 0xFF0000FF, "Kişi yakınınızda değil."); }
}
else { SendClientMessage(playerid, 0x525252FF, "Bu oyuncu oyunda değil."); }
}
OnDialogResponse altına,
if(dialogid == kimlikdialog)
{
new verenadam = Etkilesim[playerid];
if(!response)
{ Etkilesim[playerid] = playerid; }
if(response)
{
format(string, sizeof(string), "* %s kimliği alır ve incelemeye başlar", GetPlayerNameEx(playerid));
ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
new altust[72] = "___________________________________n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯";
new bosluk2[417] = "ttt|¯¯¯¯¯¯¯¯¯¯¯¯¯|nttt|tt|nttt|tt|nttt|tt|nttt|tt|nttt|tt|nttt|_____________|";
new cizgi[35] = "__________________________________";
new stringx[1024];
/* = kendinize göre ayarlayın = */
new tcno = PlayerTcNo[verenadam];
new soyad[24]; format(soyad, 24, "%s", PlayerSoyad[verenadam]);
new ad[24]; format(ad, 24, "%s", PlayerAd[verenadam]);
new babaadi[24]; format(babaadi, 24, "%s", PlayerBaba[verenadam]);
new anaadi[24]; format(anaadi, 24, "%s", PlayerAna[verenadam]);
new memleket[24]; format(memleket, 24, "%s", PlayerMemleket[verenadam]);
new dtarihi = PlayerDogum[verenadam];
new cinsiyet = PlayerCinsiyet[verenadam];
//========================================================//
if(cinsiyet == 1)
{
format(stringx, sizeof(stringx), "{1B7EE0}%sn {FFFFFF}%sn {799CD4}%s n T.C. Kimlik No: {FFFFFF}%dn {799CD4}%s n Soyadı: {FFFFFF}%sn {799CD4}%s n Adı: {FFFFFF}%sn {799CD4}%s n Baba Adı: {FFFFFF}%sn {799CD4}%s n Ana Adı: {FFFFFF}%sn {799CD4}%s n D.Yeri: {FFFFFF}%s {799CD4}| D.Tarihi: {FFFFFF}%dn{1B7EE0}%s",
altust, bosluk2, cizgi, tcno, cizgi, soyad, cizgi, ad, cizgi, babaadi, cizgi, anaadi, cizgi, memleket, dtarihi, altust);
ShowPlayerDialog(playerid, kimlikdialog+1 ,DIALOG_STYLE_MSGBOX,"{1B7EE0}Türkiye Cumhuriyeti Nüfus Cüzdanı", stringx,"Geri Ver","");
}
else
{
format(stringx, sizeof(stringx), "{C44B4B}%sn {FFFFFF}%sn {F67373}%s n T.C. Kimlik No: {FFFFFF}%dn {F67373}%s n Soyadı: {FFFFFF}%sn {F67373}%s n Adı: {FFFFFF}%sn {F67373}%s n Baba Adı: {FFFFFF}%sn {F67373}%s n Ana Adı: {FFFFFF}%sn {F67373}%s n D.Yeri: {FFFFFF}%s {F67373}| D.Tarihi: {FFFFFF}%dn{C44B4B}%s",
altust, bosluk2, cizgi, tcno, cizgi, soyad, cizgi, ad, cizgi, babaadi, cizgi, anaadi, cizgi, memleket, dtarihi, altust);
ShowPlayerDialog(playerid, kimlikdialog+1 ,DIALOG_STYLE_MSGBOX,"{C44B4B}Türkiye Cumhuriyeti Nüfus Cüzdanı", stringx,"Geri Ver","");
}
}
return 1;
}
if(dialogid == kimlikdialog+1)
{
new verenadam = Etkilesim[playerid];
format(string, sizeof(string), "* %s kimliği %s a uzatır", GetPlayerNameEx(playerid), GetPlayerNameEx(verenadam));
ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
format(string, sizeof(string), "* %s kimliği alır ve cebine yerleştirir", GetPlayerNameEx(verenadam));
ProxDetector(30.0, verenadam, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
Etkilesim[playerid] = playerid;
return 1;
}
Not: burada "/* = kendinize göre ayarlayın = */" bölüme dikkat edin!
PlayerTcNo, PlayerSoyad, PlayerAd, PlayerBaba, PlayerAna, PlayerMemleket, PlayerDogum ve PlayerCinsiyet değişkenlerini örnek olarak yazıldı, siz bunları kendi kayıt sisteminize göre düzenlemelisiniz.
Modunuzda GetPlayerNameEx yoksa modun en altına,
stock GetPlayerNameEx(playerid)
{
new string[24];
GetPlayerName(playerid,string,24);
new str[24];
strmid(str,string,0,strlen(string),24);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{ if (str[i] == _ ) str[i] = ; }
return str;
}
Modunuzda ProxDetector ve ProxDetectorS yoksa modun en altına,
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
if(!BigEar[i])
{
if(PlayerToPoint(3.5, i, 257.0553,79.7411,997.9252) && !PlayerToPoint(3.5, playerid, 257.0553,79.7411,997.9252))
{ return 1; }
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}//not connected
return 1;
}
forward ProxDetectorS(Float:radi, playerid, targetid);
public ProxDetectorS(Float:radi, playerid, targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
GetPlayerPos(targetid, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
Bir teşekkürü çok görmeyin.
Çok iyi,paylaşım için teşekkürler.
Resim kısmında kişinin skini çıksa daha iyi bir sistem olabilirdi.
Sistem'de gördüğünüz resim alanı'na 0.3.7'de Resim eklenmiyordu fakat 0.3.8'de eklenebilir diye biliyorum.
Dialog dizayn'ı gerçekten çok iyi kullanırsam dizayn'ı alırım. Ellerine sağlık Omertà. Paylaşım için teşekkürler Creathy
TextDraw kullanılarak daha güzel olabilirdi.
Teşekkürler.