16.10.2013, 14:55
(
Последний раз редактировалось xdarren; 16.10.2013 в 16:05.
)
I have a problem I tried scripting reviving in every possible way and nothing.
This is my code for death.
And this is my restore command. I want it to revive the person who is lying on the ground. But its not working. I tried being medic too, but nothing works. Please help me.
This is my code for death.
Quote:
Код:
#define AFTERLIFE_SECONDS #define AUTODEATH_SECONDS new Float:DeathPosX [MAX_PLAYERS]; new Float:DeathPosY [MAX_PLAYERS]; new Float:DeathPosZ [MAX_PLAYERS]; new IsDead [MAX_PLAYERS]; new SecsToGo [MAX_PLAYERS]; new IsAfterLifing [MAX_PLAYERS]; new AfterLifeTimer; forward AfterLife(playerid); forward AutoDeath(playerid); public AfterLife(playerid) { IsAfterLifing[playerid] = 1; SecsToGo[playerid]--; new string[128]; format(string,sizeof(string),"~r~ ~h~ ~h~You are dead.~n~ ~r~ ~h~ ~h~You will spawn in %d seconds~n~ ~r~ ~h~ ~h~ Your IC memories are lost !",SecsToGo[playerid]); GameTextForPlayer(playerid,string,1100,3); if (SecsToGo[playerid] <= 0) { KillTimer(AfterLifeTimer); SpawnPlayer(playerid); return 1; } return 1; } public AutoDeath(playerid) { if (IsDead[playerid] == 0) { return 0; } else if (IsDead[playerid] == 1) { new name[28]; GetPlayerName(playerid,name,sizeof(name)); IsDead[playerid] = 0; SecsToGo[playerid] = AFTERLIFE_SECONDS; SetPlayerPos(playerid,0, 0, 0); SetPlayerCameraPos(playerid,DeathPosX[playerid],DeathPosY[playerid],DeathPosZ[playerid]); SetPlayerCameraLookAt(playerid,DeathPosX[playerid],DeathPosY[playerid],DeathPosZ[playerid]+50); AfterLifeTimer = SetTimerEx("AfterLife",1000,true,"i",playerid); return 1; } return 1; } public OnPlayerDeath(playerid, killerid, reason) { new Float:pX, Float:pY, Float:pZ; GetPlayerPos(playerid, pX, pY, pZ); DeathPosX[playerid] = pX; DeathPosY[playerid] = pY; DeathPosZ[playerid] = pZ; IsDead[playerid] = 1; return 1; } public OnPlayerSpawn(playerid) { IsAfterLifing[playerid] = 0; if (IsDead[playerid] == 1) { SetPlayerPos(playerid,DeathPosX[playerid],DeathPosY[playerid],DeathPosZ[playerid]); SetPlayerCameraPos(playerid,DeathPosX[playerid],DeathPosY[playerid],DeathPosZ[playerid]+5); SetPlayerCameraLookAt(playerid,DeathPosX[playerid],DeathPosY[playerid],DeathPosZ[playerid]); TogglePlayerControllable(playerid,false); SetTimerEx("AutoDeath",AUTODEATH_SECONDS * 1000,false,"i",playerid); ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0); SetPlayerHealth(playerid, 20.0); SendClientMessage(playerid,COLOR_IRC,"------------------ Health Advise -----------------"); SendClientMessage(playerid,COLOR_WHITE,"You are now laying death. You are bleeding to death."); SendClientMessage(playerid,COLOR_WHITE,"Remember that the medics can revive you."); SendClientMessage(playerid,COLOR_WHITE,"You can type /acceptdeath, if no medics are available."); SendClientMessage(playerid,COLOR_IRC,"--------------------------------------------------------"); return 1; } return 0; } |
Quote:
Код:
CMD:revive(playerid, params[]) { if(strcmp(PlayerInfo[playerid][job],"Medic",true)==0) { new iPlayer; if(IsDead[iPlayer] == 1) { IsAfterLifing[iPlayer] = 0; SecsToGo[iPlayer] = REVIVE_SECONDS; TogglePlayerControllable(iPlayer, true); //AfterLifeTimer = SetTimerEx("AfterLife",1000,true,"i",playerid); SetPlayerBack(iPlayer, 1); } } return 1; } |