sometimes it works good and sometimes no, when you shot someone or he's died by the server or a fire or anything they spawn in blueberry with 0HP and killed multipe times :@
i don't know what's wrong i had backup working good, and still it doesn't work.
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid))
{
format(QFA[playerid],24,"%s",PlayerName(killerid));
}
PlayerInfo[playerid][pHealth] = 0.0;
PlayerDrunk[playerid] = 0;
gPlayerSpawned[playerid] = 0;
PlayerDrunkTime[playerid] = 0;
UsingDrugs[playerid] = 0;
DeletePVar(playerid, "UsingSprunk");
if(CarryBody[playerid] > 0)
StopCarry(playerid);
if(PlayerInfo[playerid][pDeath] == 1)
PlayerInfo[playerid][pDeath] = 2;
if(PlayerInfo[playerid][pDeath] == 0)
PlayerDeath(playerid,reason,PlayerName(killerid));
foreach(Player, i)
{
if(EMSAccepted[i] < 999)
{
if(EMSAccepted[i] == playerid)
{
EMSAccepted[i] = 999;
GameTextForPlayer(i, "~w~Patient~n~~r~is died", 5000, 1);
EMSCallTime[i] = 0;
DisablePlayerCheckpoint(i);
}
}
}
if(GetPVarInt(playerid, "Injured") == 1)
{
foreach(new i: Player)
{
if(EMSAccepted[i] == playerid)
{
EMSAccepted[i] = INVALID_PLAYER_ID;
GameTextForPlayer(i, "~w~EMS Caller~n~~r~Has Died", 5000, 1);
EMSCallTime[i] = 0;
DisablePlayerCheckpoint(i);
}
}
ProcessDeath(playerid);
KillEMSQueue(playerid);
ResetPlayerWeaponsEx(playerid);
return 1;
}
if(PlayerDraggedBy[playerid] != INVALID_PLAYER_ID)
{
IsCopDragging[PlayerDraggedBy[playerid]] = INVALID_PLAYER_ID;
}
IsCopDragging[playerid] = INVALID_PLAYER_ID;
PlayerDraggedBy[playerid] = INVALID_PLAYER_ID;
PlayerDragged[playerid] = 0;
for(new x;x<MAX_PLAYERTOYS;x++) RemovePlayerAttachedObject(playerid, x);
new caller = Mobile[playerid];
if(caller != INVALID_PLAYER_ID)
{
if(caller < INVALID_PLAYER_ID)
{
SendInfoMessage(caller, 0, "25", "The line has been lost..");
SendInfoMessage(playerid, 0, "25", "The line has been lost.");
CellTime[caller] = 0;
CellTime[playerid] = 0;
Mobile[caller] = INVALID_PLAYER_ID;
}
Mobile[playerid] = INVALID_PLAYER_ID;
CellTime[playerid] = 0;
}
if(gPlayerUsingLoopingAnim[playerid] == 1)
{
gPlayerUsingLoopingAnim[playerid] = 0;
JugadorSentado[playerid] = 0;
TextDrawHideForPlayer(playerid, AnimacionText);
}
if(DrugTimer[playerid]) KillTimer(DrugTimer[playerid]);
return 1;
}
Код:
Function SendEMSQueue(playerid,type)
{
switch(type)
{
case 1:
{
Streamer_UpdateEx(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
SetPlayerPos(playerid, GetPVarFloat(playerid,"MedicX"), GetPVarFloat(playerid,"MedicY"), GetPVarFloat(playerid,"MedicZ"));
SetPlayerVirtualWorld(playerid, GetPVarInt(playerid,"MedicVW"));
SetPlayerInterior(playerid, GetPVarInt(playerid,"MedicInt"));
SetPVarInt(playerid, "EMSAttempt", -1);
ClearAnimations(playerid);
ApplyAnimation(playerid, "CRACK", "crckidle1",4.0,0,1,1,1,-1);
if(GetPlayerInterior(playerid) > 0)
{
CargarObjetos(playerid);
}
GameTextForPlayer(playerid, "~w~Type ~r~/service~n~~w~or ~y~/accept death", 10000, 3);
SetHP(playerid, 100);
SetPlayerArmour(playerid,0);
SetPVarInt(playerid,"MedicCall",1);
}
case 2:
{
SetPVarInt(playerid,"EMSAttempt", 2);
ApplyAnimation(playerid, "SWAT", "gnstwall_injurd", 4.0, 0, 1, 1, 1, 0, 1);
SetHP(playerid, 100);
SetPlayerArmour(playerid,0);
}
}
return 1;
}
Код:
SetPlayerSpawn(playerid)
{
if(IsPlayerConnectedEx(playerid))
{
SetPlayerSkin(playerid, PlayerInfo[playerid][jRopa]);
new Float: x, Float: y, Float: z;
GetPlayerPos(playerid, x, y, z);
if(x == 0.0 && y == 0.0 && z == 0.0)
{
if(PlayerInfo[playerid][jOrigen] == 2)
{
SetPlayerPos(playerid, 1449.5273,-2286.9753,13.5469);
SetPlayerFacingAngle(playerid, 94.1927);
}
else if(PlayerInfo[playerid][jOrigen] == 1)
{
SetPlayerPos(playerid, -1968.9153,137.7357,27.6875);
SetPlayerFacingAngle(playerid, 88.9782);
}
SetPlayerInterior(playerid,0);
SetCameraBehindPlayer(playerid);
}
if(PlayerInfo[playerid][jRegistrado] == 0)
{
gOoc[playerid] = 1; gNews[playerid] = 1; gFam[playerid] = 1;
TogglePlayerControllable(playerid, 0);
Registrar(playerid);
return 1;
}
new rand;
switch(PlayerInfo[playerid][jJaileado])
{
case 1:
{
PhoneOnline[playerid] = 1;
rand = random(sizeof(OOCJail));
CargarObjetos(playerid);
SetPlayerPos(playerid, OOCJail[rand][0], OOCJail[rand][1], OOCJail[rand][2]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
Skin(playerid, 50);
SendInfoMessage(playerid, 2, "0", "You are in a prison, we need to finish out your sentence.");
return 1;
}
case 3:
{
SetPosEx(playerid, 263.4922,77.0915,1001.0391,322.1463,6,0);
SendInfoMessage(playerid, 2, "0", "You had an accident in prison, you're in the last cell.");
return 1;
}
case 4:
{
PhoneOnline[playerid] = 1;
PlayerInfo[playerid][jInterior] = 0;
rand = random(sizeof(OOCJail));
CargarObjetos(playerid);
SetPlayerPos(playerid, OOCJail[rand][0], OOCJail[rand][1], OOCJail[rand][2]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
Skin(playerid, 50);
SendInfoMessage(playerid, 2, "0", "An administrator has prisoned you when you were Disconnected, {FF1B31}Due carry on the forum or lack of RolePlay.");
SendInfoMessage(playerid, 3, "0", "If you think it was a mistake seeking an administrator immediately.");
return 1;
}
case 0: { }
}
if(GetPVarInt(playerid, "FirstSpawn") == 2)
{
SendEMSQueue(playerid,1);
return 1;
}
if(GetPVarInt(playerid, "FirstSpawn") == 1 && GetPVarInt(playerid, "Hospital") != 0)
{
DeletePVar(playerid, "Hospital");
if(PlayerInfo[playerid][jTipoSpawn] == 1)
{
SendInfoMessage(playerid, 2, "0", "All your illegal possessions were taken by hospital security.");
SendClientMessage(playerid, COLOR_VIP, "VIP: You've respawned in home by 'GOLD VIP' Feature enabled.");
for(new i = 0; i < sizeof(InfoCasa); i++)
{
if(PlayerInfo[playerid][jCasaKey] == i)
{
Streamer_UpdateEx(playerid, InfoCasa[i][cInteriorX],InfoCasa[i][cInteriorY],InfoCasa[i][cInteriorZ]);
SetPlayerInterior(playerid,InfoCasa[i][cCInteriorWorld]);
CargarObjetos(playerid);
SetPlayerPos(playerid,InfoCasa[i][cInteriorX],InfoCasa[i][cInteriorY],InfoCasa[i][cInteriorZ]);
GameTextForPlayer(playerid, "~w~Welcome to home", 5000, 1);
PlayerInfo[playerid][jInterior] = InfoCasa[i][cCInteriorWorld];
PlayerInfo[playerid][jVirtualWorld] = i+6000;
SetPlayerVirtualWorld(playerid, i+6000);
}
}
ResetPlayerWeaponsEx(playerid);
return 1;
}
if(PlayerInfo[playerid][pWantedLevel] > 0)
{
PlayerInfo[playerid][jJaileado] = 3; PlayerInfo[playerid][jJailTiempo] = 15*60; GivePlayerCash(playerid, -1000);
SendClientMessage(playerid, COLOR_ROJO2, "You figure as a suspect in the center of the LSPD.");
SendClientMessage(playerid, COLOR_ROJO2, "We find you and we put you in the hands of law enforcement.");
SendClientMessage(playerid, COLOR_ROJO2, "As we find to hurt you, you are only condemned a few days. (15 minutes)");
SetPlayerInterior(playerid, 6);
PlayerInfo[playerid][jInterior] = 6;
SetPosEx(playerid, 263.4922,77.0915,1001.0391,322.1463,6,0);
if(PlayerInfo[playerid][pHungry] > 100) return 1;
if(PlayerInfo[playerid][pHungry] < 101) { if(PlayerInfo[playerid][pHungry] > 100) return 1;}
HungryCheck(playerid, PlayerInfo[playerid][pHungry]);
StopAudioStreamForPlayer(playerid);
ResetPlayerWeaponsEx(playerid);
return 1;
}
else
{
if(PlayerInfo[playerid][jOrigen] == 1)
{
SetPlayerCameraPos(playerid, 2003.2898, -1476.5282, 52.5343);
SetPlayerCameraLookAt(playerid, 2003.6920, -1475.6085, 51.8193);
SetPosEx(playerid, 2032.0820,-1416.0764,16.9922,133.1913,0,0);
}
else if(PlayerInfo[playerid][jOrigen] == 2)
{
SetPlayerCameraPos(playerid, -2560.6887, 578.8904, 75.6639);
SetPlayerCameraLookAt(playerid, -2561.5264, 579.4449, 75.1738);
SetPosEx(playerid, -2656.0825,633.5092,14.4531,178.7625,0,0);
}
SendInfoMessage(playerid, 2, "0", "All your illegal possessions were taken by hospital security.");
SetTimerEx("HospitalFun", 5000, false, "i", playerid); StopAudioStreamForPlayer(playerid);
ResetPlayerWeaponsEx(playerid);
return 1;
}
}
if(GetPVarInt(playerid, "FirstSpawn") == 1 && GetPVarInt(playerid, "Hospital") == 0)
{
SetPlayerPos(playerid,PlayerInfo[playerid][jPosicion_X],PlayerInfo[playerid][jPosicion_Y],PlayerInfo[playerid][jPosicion_Z]);
SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][jVirtualWorld]);
SetPlayerFacingAngle(playerid, PlayerInfo[playerid][jPosicion_R]);
SetPlayerInterior(playerid,PlayerInfo[playerid][jInterior]);
SetHP(playerid, PlayerInfo[playerid][pHealth]);
SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
SetCameraBehindPlayer(playerid);
if(PlayerInfo[playerid][jInterior] > 0 || PlayerInfo[playerid][jVirtualWorld] > 0)
{
SendInfoMessage(playerid, 2, "0", "You disconnected in an interior, wait a moment loading objects.");
CargarObjetos(playerid);
}
return 1;
}
}
return 1;
}
Forget everything i've said, now when you kill someone sometimes it works good and sometimes he get desynced