Весь OnPlayerDeath в студию
Весь OnPlayerDeath в студию
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
А это OnplayerDisconnect где тоже не убовляется если игрок вышел.PHP код:
public OnPlayerDeath(playerid,killerid,reason)
{
new playername[40],killername[40];
GetPlayerName(playerid,playername,sizeof(playername));
GetPlayerName(killerid,killername,sizeof(killername));
if(Player[killerid][pMember] == 1 || Player[killerid][pMember] == 2)
{
if(GetPlayerWantedLevel(playerid) > 0)
{
new string[124];
ServerResetPlayerWeapons(playerid);
Player[playerid][pJailed] = true;
Player[playerid][pJailTime] = GetPlayerWantedLevel(playerid)* 10 * 60;
Player[playerid][pJailBlock] = false;
GivePlayerKapusta(playerid,-GetPlayerWantedLevel(playerid)*300);
GivePlayerKapusta(killerid,GetPlayerWantedLevel(playerid)*300);
f(string,"Ты %s игрока %s[%d] в тюрьму и %s $%d.",GetPVarInt(killerid,"Sex") == 1 ? ("посадил") : ("посадила"),sendername(playerid),playerid,GetPVarInt(killerid,"Sex") == 1 ? ("получил") : ("получила"),GetPlayerWantedLevel(playerid)*300);
send(killerid,0xFFFF00AA,string);
f(string,"Тебя %s в тюрьму %s[%d].",GetPVarInt(killerid,"Sex") == 1 ? ("посадил") : ("посадила"),sendername(killerid),killerid);
send(playerid,0xFFFF00AA,string);
SetPlayerWantedLevel(playerid,0);
Player[playerid][pWanted] = 0;
OnPlayerReSpawn(playerid);
SaveAccount(playerid);
return 1;
}
else
{
new rand = random(100)+50;
Player[killerid][pHunterValue] +=rand;
GivePlayerKapusta(killerid,-500);
SaveAccount(playerid);
return 1;
}
}
if(GoWar == true)
{
if(Player[playerid][pMember] == DefenceFraction && Player[killerid][pMember] == AtackFraction)
{
AtackPoint++;
SendDeathMessage(killerid,playerid,reason);
return 1;
}
if(Player[playerid][pMember] == AtackFraction && Player[killerid][pMember] == DefenceFraction)
{
DefencePoint++;
SendDeathMessage(killerid,playerid,reason);
return 1;
}
}
if(GetPVarInt(playerid,"DrivingTest"))
{
DisablePlayerRaceCheckpoint(playerid);
DrivingTestTime[playerid] = 0;
DeletePVar(playerid,"DrivingTest");
DeletePVar(playerid,"DrivingTestHealth");
DeletePVar(playerid,"DrivingTestError");
}
if(GetPVarInt(playerid,"DrivingTestMoto"))
{
DisablePlayerRaceCheckpoint(playerid);
DrivingTestMotoTime[playerid] = 0;
DeletePVar(playerid,"DrivingTestMoto");
DeletePVar(playerid,"DrivingTestMotoHealth");
DeletePVar(playerid,"DrivingTestMotoError");
}
ZashkvarPlayerIsJoinDM(playerid);
return 1;
}
PHP код:
public OnPlayerDisconnect(playerid,reason)
{
KillTimer(FP_TimerPlayer[playerid]);
if(prokol[playerid] == true)
{
DestroyDynamicObject(proko2[playerid]);
prokol[playerid] = false;
}
new string[100];
switch(reason)
{
case 0:f(string,"(( %s[%d] вылетел%s с сервера. IP %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("") : ("а"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1);
case 1:f(string,"(( %s[%d] %s с сервера. IP: %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("вышел") : ("вышла"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1);
case 2:f(string,"(( %s[%d] кикнут%s с сервера. IP: %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("") : ("а"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1);
}
if(Player[playerid][pPhousekey] != 0) HouseInfo[Player[playerid][pPhousekey]][hDel] = (GetPVarInt(playerid,"pVip") != 0 ? 60 : 30);
if(Player[playerid][pAdmin] != 0) Forveh_DestroyVehicle(CreateCar[playerid]);
SaveAccount(playerid);
foreach(new i: Player)
{
if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && Player[i][Spectating][0] == playerid)
{
GameTextForPlayer(i,"PLAYER DISCONNECTED",3000,3);
cmd::specoff(i);
}
}
foreach(new i: Player)
{
if(toglogin[i] == true)
{
switch(reason)
{
case 0:f(string,"%s вылетел%s с сервера.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а"));
case 1:f(string,"%s покинул%s сервер.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а"));
case 2:f(string,"%s был%s кикнут%s сервером.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а"),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а"));
}
send(i,0xFF6C3CAA,string);
}
}
foreach(new i : Player)
{
if(Logged[i] == false) return true;
if(TaxiAccepted[i] < 999)
{
if(TaxiAccepted[i] == playerid)
{
TaxiAccepted[i] = 999;
GameTextForPlayer(i, "~w~ЏAKC… AЂOмEмЏ~n~~r~ЊOK…мУ‡ …‚PУ", 5000, 1);
TaxiCallTime[i] = 0;
DisablePlayerCheckpoint(i);
}
}
}
if(GotHit[playerid] == true)
{
if(GetChased[playerid] < 999)
{
if(IsPlayerConnected(GetChased[playerid]))
{
send(GetChased[playerid], COLOR_YELLOW, "Ваша цель покинула сервер.");
GoChase[GetChased[playerid]] = 999;
}
}
}
if(bustation[playerid] == true) bustation[playerid] = false;
if(TaxiDuty[playerid] == 1) TaxiDrivers -= 1;
if(MedicDuty[playerid] == 1) Medics -= 1;
if(MechDuty[playerid] == 1) Mechanics -= 1;
AntiFakeKill[playerid] = false;
cheatlimit[playerid] = 0;
ZashkvarPlayerIsJoinDM(playerid);
DisablePlayerRaceCheckpoint(playerid);
RemovePlayerVariables(playerid);
DeletePVar(playerid,"chatS");
DeletePVar(playerid,"chatPM");
DeletePVar(playerid,"chatM");
DeletePVar(playerid,"chatME");
DeletePVar(playerid,"chatL");
DeletePVar(playerid,"chaD");
return 1;
}
Последний раз редактировалось kala4iks; 27.02.2017 в 20:28.
не вижу в предоставленном тобой коде тех действий с вычитанием единицы из DMJoinPeople
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Раньше было вот так но выше человек посоветовал в stock это все запихнуть я и сделал так как он написал а вот как я использовал.
- - - Добавлено - - -PHP код:
if(PIJoinDM[playerid] == 1)DMJoinPeople --;
А вот собственно код который предоставил человек выше.
PHP код:
stock ZashkvarPlayerIsJoinDM(playerid)
{
if(PIJoinDM[playerid] == 1)
{
PIJoinDM[playerid] = 0;
DMJoinPeople --;
return 1;
}
return 0;
}
Ну так просто прологируй
PHP код:
public OnPlayerDeath(playerid,killerid,reason)
{
printf("\n\nOnPlayerDeath(%d, %d, %d)", playerid,killerid,reason);
new playername[40],killername[40];
GetPlayerName(playerid,playername,sizeof(playername));
GetPlayerName(killerid,killername,sizeof(killername));
if(Player[killerid][pMember] == 1 || Player[killerid][pMember] == 2)
{
print("OnPlayerDeath 1");
if(GetPlayerWantedLevel(playerid) > 0)
{
new string[124];
ServerResetPlayerWeapons(playerid);
Player[playerid][pJailed] = true;
Player[playerid][pJailTime] = GetPlayerWantedLevel(playerid)* 10 * 60;
Player[playerid][pJailBlock] = false;
GivePlayerKapusta(playerid,-GetPlayerWantedLevel(playerid)*300);
GivePlayerKapusta(killerid,GetPlayerWantedLevel(playerid)*300);
f(string,"Ты %s игрока %s[%d] в тюрьму и %s $%d.",GetPVarInt(killerid,"Sex") == 1 ? ("посадил") : ("посадила"),sendername(playerid),playerid,GetPVarInt(killerid,"Sex") == 1 ? ("получил") : ("получила"),GetPlayerWantedLevel(playerid)*300);
send(killerid,0xFFFF00AA,string);
f(string,"Тебя %s в тюрьму %s[%d].",GetPVarInt(killerid,"Sex") == 1 ? ("посадил") : ("посадила"),sendername(killerid),killerid);
send(playerid,0xFFFF00AA,string);
SetPlayerWantedLevel(playerid,0);
Player[playerid][pWanted] = 0;
OnPlayerReSpawn(playerid);
SaveAccount(playerid);
print("OnPlayerDeath 2");
return 1;
}
else
{
new rand = random(100)+50;
Player[killerid][pHunterValue] +=rand;
GivePlayerKapusta(killerid,-500);
SaveAccount(playerid);
print("OnPlayerDeath 3");
return 1;
}
}
if(GoWar == true)
{
if(Player[playerid][pMember] == DefenceFraction && Player[killerid][pMember] == AtackFraction)
{
AtackPoint++;
SendDeathMessage(killerid,playerid,reason);
print("OnPlayerDeath 4");
return 1;
}
if(Player[playerid][pMember] == AtackFraction && Player[killerid][pMember] == DefenceFraction)
{
DefencePoint++;
SendDeathMessage(killerid,playerid,reason);
print("OnPlayerDeath 5");
return 1;
}
}
if(GetPVarInt(playerid,"DrivingTest"))
{
DisablePlayerRaceCheckpoint(playerid);
DrivingTestTime[playerid] = 0;
DeletePVar(playerid,"DrivingTest");
DeletePVar(playerid,"DrivingTestHealth");
DeletePVar(playerid,"DrivingTestError");
}
if(GetPVarInt(playerid,"DrivingTestMoto"))
{
DisablePlayerRaceCheckpoint(playerid);
DrivingTestMotoTime[playerid] = 0;
DeletePVar(playerid,"DrivingTestMoto");
DeletePVar(playerid,"DrivingTestMotoHealth");
DeletePVar(playerid,"DrivingTestMotoError");
}
print("OnPlayerDeath 6");
printf("OnPlayerDeath (%d)" , ZashkvarPlayerIsJoinDM(playerid));
print("OnPlayerDeath 8");
return 1;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Почему бы просто не юзать все эти манёвры в начале каллбеков?
Почему надо вниз совать перед сотнями return,
ясен пень что может не отниматься если в какое то условие с return ты впадёшь.
А это OnplayerDisconnect где тоже не убовляется если игрок вышел.Код:public OnPlayerDisconnect(playerid,reason) { KillTimer(FP_TimerPlayer[playerid]); if(prokol[playerid] == true) { DestroyDynamicObject(proko2[playerid]); prokol[playerid] = false; } new string[100]; switch(reason) { case 0:f(string,"(( %s[%d] вылетел%s с сервера. IP %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("") : ("а"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1); case 1:f(string,"(( %s[%d] %s с сервера. IP: %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("вышел") : ("вышла"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1); case 2:f(string,"(( %s[%d] кикнут%s с сервера. IP: %s ))",sendername(playerid),playerid,GetPVarInt(playerid,"Sex") == 1 ? ("") : ("а"),Player[playerid][pIP]),ABroadCast(COLOR_GREY,string,1); } if(Player[playerid][pPhousekey] != 0) HouseInfo[Player[playerid][pPhousekey]][hDel] = (GetPVarInt(playerid,"pVip") != 0 ? 60 : 30); if(Player[playerid][pAdmin] != 0) Forveh_DestroyVehicle(CreateCar[playerid]); SaveAccount(playerid); foreach(new i: Player) { if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && Player[i][Spectating][0] == playerid) { GameTextForPlayer(i,"PLAYER DISCONNECTED",3000,3); cmd::specoff(i); } } foreach(new i: Player) { if(toglogin[i] == true) { switch(reason) { case 0:f(string,"%s вылетел%s с сервера.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а")); case 1:f(string,"%s покинул%s сервер.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а")); case 2:f(string,"%s был%s кикнут%s сервером.",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а"),GetPVarInt(playerid, "Sex") == 1 ? ("") : ("а")); } send(i,0xFF6C3CAA,string); } } foreach(new i : Player) { if(Logged[i] == false) return true; // заменить на continue; или будет как ниже написано // подключается игрок к серверу, ещё не авторизовался // а тут ты такой выходишь и бац.. в этом месте ты обрываешь весь код который ниже if(TaxiAccepted[i] < 999) { if(TaxiAccepted[i] == playerid) { TaxiAccepted[i] = 999; GameTextForPlayer(i, "~w~ЏAKC… AЂOмEмЏ~n~~r~ЊOK…мУ‡ …‚PУ", 5000, 1); TaxiCallTime[i] = 0; DisablePlayerCheckpoint(i); } } } if(GotHit[playerid] == true) { if(GetChased[playerid] < 999) { if(IsPlayerConnected(GetChased[playerid])) { send(GetChased[playerid], COLOR_YELLOW, "Ваша цель покинула сервер."); GoChase[GetChased[playerid]] = 999; } } } if(bustation[playerid] == true) bustation[playerid] = false; if(TaxiDuty[playerid] == 1) TaxiDrivers -= 1; if(MedicDuty[playerid] == 1) Medics -= 1; if(MechDuty[playerid] == 1) Mechanics -= 1; AntiFakeKill[playerid] = false; cheatlimit[playerid] = 0; ZashkvarPlayerIsJoinDM(playerid); DisablePlayerRaceCheckpoint(playerid); RemovePlayerVariables(playerid); DeletePVar(playerid,"chatS"); DeletePVar(playerid,"chatPM"); DeletePVar(playerid,"chatM"); DeletePVar(playerid,"chatME"); DeletePVar(playerid,"chatL"); DeletePVar(playerid,"chaD"); return 1; }
Последний раз редактировалось vovandolg; 28.02.2017 в 12:29.
[Anticheat]___Invisible Fly Hack
[Anticheat]____Weapon/Ammo Hack
[Function]______ResetPlayerWeaponSlot
[Function]_______FIX_SetPlayerAmmo
[ServerMod]______TDM | Zombie Apokalypse
Эмм, а как ты проверяешь, что игроков нет на ДМ зоне?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
[Anticheat]___Invisible Fly Hack
[Anticheat]____Weapon/Ammo Hack
[Function]______ResetPlayerWeaponSlot
[Function]_______FIX_SetPlayerAmmo
[ServerMod]______TDM | Zombie Apokalypse
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)