Всем добрый день, сделал ивент ДМ. но столкнулся с тем что когда я убиваю игрока участник не отбавляется и из за этого не заканчивается ивент с победителем.
new DMJoinPeople = 0;
PHP код:
public OnPlayerDisconnect
PHP код:
if(GetPVarInt(playerid,"DMJoin") == 1)DMJoinPeople --;
PHP код:
public OnPlayerDeath
PHP код:
if(GetPVarInt(playerid,"DMJoin") == 1)DMJoinPeople --;
PHP код:
if(DMJoinPeople == 1 && Zona[zOpened] == 0)
{
if(GetPVarInt(i,"DMJoin") == 1)
{
new str[124];
format(str,sizeof(str),"%s стал победителем ''DeathMatch''.",sendername(i));
sendToAll(0x9519F2AA,str);
TextDrawHideForPlayer(i,jointime[i]),TextDrawHideForPlayer(i,joinmember[i]);
OnPlayerReSpawn(i);
}
SetPVarInt(i,"DMJoin",0);
DMJoinPeople = 0;
}
PHP код:
if(dmtimes > 0)
{
dmtimes --;
foreach(new i: Player)
{
f(string,FixText("Участники: ~r~%d"),DMJoinPeople);
TextDrawSetString(joinmember[i],string);
f(string,FixText("До старта: %d"),dmtimes);
TextDrawSetString(jointime[i],string);
}
}
PHP код:
StartJoinDM()
{
foreach(Player,i)
{
if(GetPVarInt(i,"DMJoin") == 1)
{
TogglePlayerControllable(i,1);
GivePlayerWeaponAC(i,24,999);
GivePlayerWeaponAC(i,25,999);
GivePlayerWeaponAC(i,31,999);
SetPlayerColor(i,0xFF6347AA);
TextDrawHideForPlayer(i,jointime[i]);
}
}
sendToAll(0x9519F2AA,"Регистрация на ивент закончена | Все участники подключились.");
Zona[zOpened] = 0;
}
publics ZoneEnd() if(Zona[zOpened] == 1) StartJoinDM();
publics NotStartDM()
{
if(DMJoinPeople < 2 && DMJoinPeople != 0)
{
foreach(Player,i)
{
if(GetPVarInt(i,"DMJoin") == 1)
{
send(i,0x9519F2AA,"Ивент не состоялся, потому что вы были единственным участником.");
OnPlayerReSpawn(i);
TogglePlayerControllable(i,1);
TextDrawHideForPlayer(i,jointime[i]),TextDrawHideForPlayer(i,joinmember[i]);
}
SetPVarInt(i,"DMJoin",0);
}
}
DMJoinPeople = 0;
return 1;
}
PHP код:
CMD:join(playerid, params[])
{
if(Zona[zOpened] == 0)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}В данный момент нет открытых ивентов.");
if(IsPlayerInAnyVehicle(playerid))return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Для подключения к ивенту выйдите из транспорта.");
if(Player[playerid][pJailed] == true)return send(playerid, COLOR_RED, ""vError"Вы находитесь в тюрьме!");
new Float:fX,Float:y,Float:z,Float:hp,Float:armour,string[40];
GetPlayerPos(playerid,fX,y,z);
GetPlayerArmour(playerid,armour);
GetPlayerHealth(playerid,hp);
SetPVarFloat(playerid,"PosXJoin",fX);
SetPVarFloat(playerid,"PosYJoin",y);
SetPVarFloat(playerid,"PosZJoin",z);
SetPVarInt(playerid,"JoinInt",GetPlayerInterior(playerid));
SetPVarInt(playerid,"JoinVW",GetPlayerVirtualWorld(playerid));
for(new a = 1; a<13; a++)
{
format(string,40,"JoinGun%i",a);
SetPVarInt(playerid,string,Player[playerid][pGun][a]);
format(string,40,"JoinAmmo%i",a);
SetPVarInt(playerid,string,Player[playerid][pAmmo][a]);
}
SetPVarFloat(playerid,"JoinArmour",armour);
SetPVarFloat(playerid,"JoinHeal",hp);
switch(Zona[zOpened])
{
case 1:
{
new rad = random(sizeof(DMSpawn));
ServerSetPlayerPos(playerid,DMSpawn[rad][0],DMSpawn[rad][1],DMSpawn[rad][2]);
ServerResetPlayerWeapons(playerid);
SetPlayerInterior(playerid,10),SetPlayerVirtualWorld(playerid,0);
ServerGivePlayerArmour(playerid,100),ServerGivePlayerHealth(playerid,100);
TextDrawShowForPlayer(playerid, jointime[playerid]); TextDrawShowForPlayer(playerid,joinmember[playerid]);
SetPVarInt(playerid,"DMJoin",1);
Freeze(playerid);
DMJoinPeople ++;
if(DMJoinPeople >= 20) StartJoinDM();
}
}
return 1;
}
PHP код:
CMD:zone(playerid)
{
dmtimes = 30;
Zona[zOpened] = 1;
DMJoinPeople = 0;
sendToAll(0x9519F2AA,"Открыта регистрация на DeathMatch | Карта: BattleField | Макс.Участников: 20 | Присоединиться: ''/join''.");
SetTimer("NotStartDM",30001,0),SetTimer("ZoneEnd",30000,0);
return 1;
}