queria um sistema que quando a pessoa entrace entroca de tiro com um outro jogador apareзa na tela apenas para os COPs o local da troca de tiro....
e quando a pessoa estivece quase morta a pessoa cai no chao que os COPs tem que levar a vitima da troca de tiro para um dos ps (hosptal) para socorrer...logico tendo um tempo mais ou menos de 1 minuto se passar a pessoa vai direto para o hosptal e fica curando mais ou menos 5 minutos
__________________________________________________ _______________________________________________
Estou fazendo um sistema aqui para o seu segundo pedido.
Talvez hoje ou amanhг de manhг eu poste aqui ... Peзo que seja paciente.
Sei que vocк queria que os policiais fizessem isto, mas achei mais conveniente os mйdicos, para ficar mais Role-Play ...
Fiz o mais rбpido possivel, e devido а hora nгo poderei testar.
PHP код:
new MED[MAX_PLAYERS]; //TROQUE AS VARIAVEIS MED PELAS VARIAVEIS QUE DEFINEM OS MEDICOS NO SEU GM
forward Morte();
forward Sair(playerid);
forward Checar(playerid);
public OnGameModeInit()
{
SetTimer("Morte", 7,5*60000, true);
return 1;
}
public Checar(playerid)
{
if(GetPVarInt(playerid, "Pena") == 1)
{
if(IsPlayerInRangeOfPoint(playerid, 6.0, 2026.6992, -1408.7386, 16.9922) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 416)
{
SendClientMessage(playerid, -1, "Vocк voltou ao veiculo e por isso nгo perdera nenhum dinheiro.");
SetPVarInt(playerid, "Pena", 0);
}
else
{
GivePlayerMoney(playerid, -7500);
SendClientMessage(playerid, -1, "Vocк perdeu 7500 dуlares e caso nгo volte continuarб a perder.");
}
}
return 1;
}
public Sair(playerid)
{
if(GetPVarInt(playerid, "Curando") == 1)
{
SetPlayerPos(playerid, X, Y, Z); //TROQUE PELAS COORDENADAS EM QUE O PACIENTE DEVE FICAR APУS SAIR DO HOSPITAL
SendClientMessage(playerid, -1, "Vocк acaba de ser curado e perdeu 1000 dуlares por isso.");
GivePlayerMoney(playerid, -1000;
DeletePVarInt(playerid, "Curando");
return 1;
}
return 1;
}
public Morte()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
new Float:V, n[24], Float:XYZ[3], id;
if(MED[i] == 0) return GetPlayerHealth(i, Vida);
if(Vida <= 8)
{
ApplyAnimation(i,"CRACK", "crckdeth2", 4.0, 0, 1, 1, 1, 0);
SendClientMessage(i, "Vocк estб quase morrendo ! Chame uma ambulвncia: /ambu.");
SetPVarInt(i,"Med",1);
GetPlayerName(i, n, 24);
GetPlayerPos(i, XYZ[0], XYZ[1], XYZ[2]);
id = i;
return 1;
}
if(MED[i] == 1 && GetPVarInt(i, "SMed") == 1 && GetPVarInt(i, "Ocupado" == 1)
{
new str[128];
format(str, sizeof(str),"%s estб praticamente morrendo ! Siga o checkpoint com uma ambulвncia para salvб-lo.")
SendClientMessage(i, -1, str);
SetPlayerCheckpoint(i, XYZ[0], XYZ[1], XYZ[2], 4.0);
SetPVarInt(i, "Ocupado", 1);
SetPVarInt(i, "User", i);
return 1;
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/smed", true) == 0)
{
if(MED[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк nгo й medico.");
if(GetPVarInt(playerid, "SMed") == 1)
{
SetPVarInt(playerid, "SMed", 0);
new str[100];
format(str, sizeof(str),"ID %d saiu do serviзo mйdico e estб de folga.");
SendClientMessageToAll(-1, str);
else
{
SetPVarInt(playerid, "SMed", 1);
new str[100];
format(str, sizeof(str),"ID %d entrou no serviзo mйdico. Agora ele irб te proteger.");
SendClientMessageToAll(-1, str);
}
}
if(strcmp(cmdtext, "/hospital", true) == 0)
{
if(MED[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк nгo й medico.");
if(GetPVarInt(playerid, "Ocupado") != 2) return SendClientMessage(playerid, -1, "Vocк ainda nгo colocou o paciente na ambulвncia.");
if(GetPVarInt(GetPVarInt(playerid, "User"), "Curando") == 1) return SendClientMessage(playerid, -1, "Este jogador jб estб sendo curado.");
SetPlayerPos(GetPVarInt(playerid, "User"), X, Y, Z); //TROQUE X, Y, Z PELAS COORDENADAS ONDE O PACIENTE DEVE FICAR AO CHEGAR NO HOSPITAL
SendClientMessage(GetPVarInt(playerid, "User"), -1, "Vocк acaba de chegar ao hospital e em instantes serб liberado.");
TogglePlayerControllable(GetPVarInt(playerid, "User"),1);
SendClientMessage(playerid, -1, "Parabйns ! Vocк salvou um paciente. Agora vocк estб livre para salvar outras pessoas.");
SetPVarInt(playerid, "Ocupado", 0);
SetPVarInt(GetPVarInt(playerid, "User"), "Curando", 1);
SetTimerEx("Sair", 300000, false, "i", GetPVarInt(playerid, "User"));
GivePlayerMoney(playerid, 1000);
DeletePVar(playerid, "User");
return 1;
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(GetPVarInt(playerid, "Ocupado") == 1)
{
SendClientMessage(playerid, -1, "Vocк chegou ao paciente ! Agora coloque-o em uma ambulвncia e leve-o ao hospital.");
SetPlayerCheckpoint(playerid, 2026.6992, -1408.7386, 16.9922, 4.0);
return 1;
}
if(GetPVarInt(playerid, "Ocupado") == 2)
{
SendClientMessage(playerid, -1, "Vocк chegou no hospital ! Digite /hospital para colocar o paciente no hospital.");
DisablePlayerCheckpoint(playerid);
return 1;
}
return 1;
}
public OnPlayerStateChange(playerid,newstate,oldstate)
{
if(newstate == 2)
{
if(GetPVarInt(playerid, "Ocupado") == 1)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 416)
{
SendClientMessage(playerid, -1, "Vocк acaba de entrar na ambulвncia e o paciente estб na parte de trбs ! Caso nгo chegue rбpido ao hospital, ele morrerб.");
SendClientMessage(GetPVarInt(playerid, "User"), -1, "Vocк foi colocado dentro da ambulвncia e serб levado ao hospital.");
PutPlayerInVehicle(GetPVarInt(playerid, "User"), GetPlayerVehicleID(playerid), 3);
TogglePlayerControllable(GetPVarInt(playerid, "User"),0);
SetPVarInt(playerid, "Ocupado", 2);
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, "Vocк sу pode levar o paciente em uma ambulвncia !");
}
}
return 1;
}
if(oldstate == 2 && GetPVarInt(playerid, "Ocupado") == 2 && !IsPlayerInRangeOfPoint(playerid, 6.0, 2026.6992, -1408.7386, 16.9922))
{
SendClientMessage(playerid, -1, "Vocк saiu da ambulвncia sem deixar o paciente no hospital.");
SendClientMessage(playerid, -1, "Volte para o veiculo ou vocк serб penalizado em 7500 dуlares !");
SetPVarInt(playerid, "Pena", 1);
SetTimerEx("Checar", 30000, false, "i", playerid);
return 1;
}
return 1;
}