GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: LanceX - 22 Mart 2017, 18:37:10

Başlık: Etkinlik Sistemi
Gönderen: LanceX - 22 Mart 2017, 18:37:10
Moduma etkinlik sistemi yapmak istiyorum ancak nasıl yapacağımı bulamadım.

PAWN Kodu: Seç
new bool:pEtkinlikte[MAX_PLAYERS];

Sadece bunu yaptım sonrasında ne yapacağım?
Başlık: Ynt: Etkinlik Sistemi
Gönderen: NexoR - 22 Mart 2017, 19:19:30
CMD:blabla(playerid, params[])
{
if(pEtkinlikte[playerid]) return SendClientMessage(playerid, -1, "Etkinliktesin ?");
return 1;
}

CMD:blaaaaa(playerid, params[])
{
new za@xD = 0;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(pEtkinlikte[i]) za@xD++;
}
printf("%d kişi etkinlikte",  za@xD);
return 1;
}
Başlık: Ynt: Etkinlik Sistemi
Gönderen: trabzon - 22 Mart 2017, 19:34:03
Alıntı yapılan: NexoR - 22 Mart 2017, 19:19:30

CMD:blabla(playerid, params[])
{
if(pEtkinlikte[playerid]) return SendClientMessage(playerid, -1, "Etkinliktesin ?");
return 1;
}

CMD:blaaaaa(playerid, params[])
{
new za@xD = 0;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(pEtkinlikte[i]) za@xD++;
}
printf("%d kişi etkinlikte",  za@xD);
return 1;
}


jsjjswkaqweqedwde :D :D
Başlık: Ynt: Etkinlik Sistemi
Gönderen: LanceX - 22 Mart 2017, 20:11:33
Alıntı yapılan: NexoR - 22 Mart 2017, 19:19:30

CMD:blabla(playerid, params[])
{
if(pEtkinlikte[playerid]) return SendClientMessage(playerid, -1, "Etkinliktesin ?");
return 1;
}

CMD:blaaaaa(playerid, params[])
{
new za@xD = 0;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(pEtkinlikte[i]) za@xD++;
}
printf("%d kişi etkinlikte",  za@xD);
return 1;
}



1'i anladım da, 2. yi anlamadım? Bana gereken şey yetkili etkinlik komutu kullandığında yanındakilere komut işlemesi.
Başlık: Ynt: Etkinlik Sistemi
Gönderen: NexoR - 22 Mart 2017, 21:51:11
Alıntı yapılan: SelimBasKaN - 22 Mart 2017, 20:11:33

Alıntı yapılan: NexoR - 22 Mart 2017, 19:19:30

CMD:blabla(playerid, params[])
{
if(pEtkinlikte[playerid]) return SendClientMessage(playerid, -1, "Etkinliktesin ?");
return 1;
}

CMD:blaaaaa(playerid, params[])
{
new za@xD = 0;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(pEtkinlikte[i]) za@xD++;
}
printf("%d kişi etkinlikte",  za@xD);
return 1;
}



1'i anladım da, 2. yi anlamadım? Bana gereken şey yetkili etkinlik komutu kullandığında yanındakilere komut işlemesi.



CMD:komutislet(playerid, params[])
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPlayerDistanceFromPlayer(playerid, i) < 50.0)
{
if(playerid != i) // Sen hariç yanındaki herkese komutu işletir
{
pEtkinlikte[i] = true;
}
}
}
return 1;
}


forward Float:GetPlayerDistanceFromPlayer(playerid, targetid);
public Float:GetPlayerDistanceFromPlayer(playerid, targetid)
{
    new Float:fDist[3];
    GetPlayerPos(playerid, fDist[0], fDist[1], fDist[2]);
    return GetPlayerDistanceFromPoint(targetid, fDist[0], fDist[1], fDist[2]);
}


Test etmedim hata çıkabilir.
Başlık: Ynt: Etkinlik Sistemi
Gönderen: LanceX - 22 Mart 2017, 22:01:04
error 017: undefined symbol "GetPlayerDistanceFromPlayer"
Başlık: Ynt: Etkinlik Sistemi
Gönderen: NexoR - 22 Mart 2017, 22:10:17
Alıntı yapılan: SelimBasKaN - 22 Mart 2017, 22:01:04

error 017: undefined symbol "GetPlayerDistanceFromPlayer"


GetPlayerDistanceFromPlayer modunda ekli olabilir veya komutun üstüne eklemeyi dene.
Başlık: Ynt: Etkinlik Sistemi
Gönderen: Backup - 24 Mart 2017, 19:39:33
Alıntı yapılan: SelimBasKaN - 22 Mart 2017, 22:01:04

error 017: undefined symbol "GetPlayerDistanceFromPlayer"

PAWN Kodu: Seç
forward Float:GetPlayerDistanceFromPlayer(p1,p2);
public Float:GetPlayerDistanceFromPlayer(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}