Hát például így:
new DMPlayerDeaths[MAX_PLAYERS]; //halálok
new DMPlayerKills[MAX_PLAYERS]; //ölések
new DMzona[MAX_PLAYERS];
CMD:dmzona1(playerid,params[])
{
DMzona[playerid] = 1; //például beállítod egyre.. mert ez az ELSÕ DM!
//ide jön a többi függvény amit akarsz, fegyver skin stb.
return 1;
}
Ha két három DM-d van:
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
DMPlayerKills[killerid] ++;
}
DMPlayerDeaths[playerid] ++;
if(DMPlayerDeaths[playerid] == 10 && DMzona[playerid] == 1) // && operátor az ÉS logikai kapcsolatott jelenti!
{
SendClientMessage(playerid,-1,\"->Tízszer meghaltál!:(\");
//vagy amit akarsz
}
return 1;
}
De ha nagyon sok DM-d van például tíz húsz akkor így csinálnám:
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
DMPlayerKills[killerid] ++;
}
DMPlayerDeaths[playerid] ++;
switch DMzona[playerid]:
{
case 1:
{
switch DMPlayerDeaths[playerid]:
{
case 10://mit csináljon az elsõ DM zónában 10 szer meghal
{
SendClientMessage(playerid,-1,\"->Tízszer meghaltál!:(\");
}
case 20:
{
SendClientMessage(playerid,-1,\"->Husszor meghaltál!:(\");
}
}
}
case 2:
{
//ez alapján többi
}
case 3:
{
}
}
return 1;
}
Igazából a mûködési elv között nincs nagy különbség de switch szebb és sokkal hatékonyabban mûködik.
Egyszerûen úgy oldod meg, hogy feltételhez kötöd, én mindkettõ verziót/megoldási megmutattam neked.