[Resolvido]Spawn Hospital mais prуximo -
Japis - 16.02.2019
Boa noite, estou tendo problemas no cуdigo atual para adicionar o nascimento nos spaws mais prуximos, o cуdigo foi compilado porйm quando morre, simplesmente vai para ъltima posiзгo do jogador salva no arquivo da conta em dof2.
estou usando estes cуdigos
Код:
new Float:menordistancia;//16777215 em decimal
new Float:distactual;
new hospital;
new Float:poshospital[TOTAL_DE_HOSPITAIS][9] = {
{1172.0776, -1323.3926, 15.4031}, // Los Santos
{1610.9330, 1824.2340, -92.7844}, // San Fierro
{1173.0583,-1323.5259,15.3970}, // San Fierro
{1183.0000,-2037.0000,69.0078}, // San Fierro
{-318.9808,1050.2837,20.3403}, // San Fierro
{1242.7745,328.9949,19.7578}, // San Fierro
{-2203.3171,-2309.6345,31.3750}, // San Fierro
{-1514.7710,2519.8286,56.0174}, // San Fierro
{1607.4191, 1815.4803, 10.8203} // Las Venturas
};
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid,playerid,reason);
HospProx(playerid);
return 1;
}
Код:
stock HospProx(playerid)
{
for(new nh=0;nh!=TOTAL_DE_HOSPITAIS;nh++) {
distactual = GetPlayerDistanceFromPoint(playerid,poshospital[nh][0],poshospital[nh][1],poshospital[nh][2]);
if (distactual<menordistancia) {
menordistancia=distactual;
hospital=nh;
SetPlayerPos(playerid,poshospital[hospital][0],poshospital[hospital][1],poshospital[hospital][2]);
}
}
return 1;
}
se alguйm puder ajudar eu agradeзo
Re: Spawn Hospital mais prуximo -
markshelcee0104031995 - 16.02.2019
sir can u get out my warning im sorrie for do killied who`s killied me and killied a 1 admin and i did not do again
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
se alguйm souber qual й o problema seria de grande ajuda
Re: Spawn Hospital mais prуximo -
Lovejoy - 16.02.2019
https://sampwiki.blast.hk/wiki/SetSpawnInfo
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
Quote:
Originally Posted by Lovejoy
|
A stock ficou assim
Код:
stock HospProx(playerid)
{
for(new nh=0;nh!=TOTAL_DE_HOSPITAIS;nh++) {
distactual = GetPlayerDistanceFromPoint(playerid,poshospital[nh][0],poshospital[nh][1],poshospital[nh][2]);
if (distactual<menordistancia) {
menordistancia=distactual;
hospital=nh;
SetSpawnInfo(playerid,-1,PlayerInfo[playerid][pSkin],poshospital[hospital][0],poshospital[hospital][1],poshospital[hospital][2],0,0,0,0,0,0);
}
}
return 1;
}
O SetSpawnInfo compilou tudo certo.
Na public OnPlayerDeath coloquei
Da mesma forma quando morre, volta para a ъltima posiзгo ao invйs de nascer no hospital mais prуximo
se alguйm souber como resolver isto ficaria feliz :_
Re: Spawn Hospital mais prуximo -
HelderPT - 16.02.2019
Opa eu tenho isso num gm aq velho
Tipo vc esta na regiгo LS e morre e vai para ls, morre em sf nasce em sf serб isso?
PHP код:
stock IsPlayerInLs(playerid)
{
new Float:x,Float:y,Float:z;//-735,7062, -2954,502, 2931,147, 373,692);
GetPlayerPos(playerid, x, y, z);
if(x >= -735.7062 && y >= -2954.502 && x <= 2931.147 && y <= 373.692) return 1;
else return 0;
}
stock IsPlayerInLv(playerid)
{
new Float:x,Float:y,Float:z;//-2143,608, -151,5365, -2043,178, -76,58216 sf
GetPlayerPos(playerid, x, y, z);
if(x >= 852.4849 && y >= 490.4708 && x <= 2931.147 && y <= 2896.113) return 1;
else return 0;
}
stock IsPlayerInFc(playerid)
{
new Float:x,Float:y,Float:z;//-1167,788, 502,1487, 922,5522, 2942,825);
GetPlayerPos(playerid, x, y, z);
if(x >= -1167.788 && y >= 502.1487 && x <= 922.5522 && y <= 2942.825) return 1;
else return 0;
}
stock IsPlayerInSf(playerid)
{
new Float:x,Float:y,Float:z;//-2942,825, -2931,147, -992,6194, 2931,147);;
GetPlayerPos(playerid, x, y, z);
if(x >= -2942.825 && y >= -2931.147 && x <= -992.6194 && y <= 2931.147) return 1;
else return 0;
}
PUBLIC => OnPlayerDeath
PHP код:
if(IsPlayerInLs(playerid))
{
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), 1175.1531,-1312.8925,13.9880,266.1378,0,0,0,0,0,0); // Spawn Quando Morre
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInLv(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), 1607.0583,1821.1628,10.8280,356.5667,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInFc(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), -316.3103,1053.5731,20.2879,1.6997,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInSf(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), -2652.3159,636.1181,14.4531,179.9128,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
Use como base nem sei se funciona pois a gm aqui nгo compila
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
Quote:
Originally Posted by HelderPT
Opa eu tenho isso num gm aq velho
Tipo vc esta na regiгo LS e morre e vai para ls, morre em sf nasce em sf serб isso?
PHP код:
stock IsPlayerInLs(playerid)
{
new Float:x,Float:y,Float:z;//-735,7062, -2954,502, 2931,147, 373,692);
GetPlayerPos(playerid, x, y, z);
if(x >= -735.7062 && y >= -2954.502 && x <= 2931.147 && y <= 373.692) return 1;
else return 0;
}
stock IsPlayerInLv(playerid)
{
new Float:x,Float:y,Float:z;//-2143,608, -151,5365, -2043,178, -76,58216 sf
GetPlayerPos(playerid, x, y, z);
if(x >= 852.4849 && y >= 490.4708 && x <= 2931.147 && y <= 2896.113) return 1;
else return 0;
}
stock IsPlayerInFc(playerid)
{
new Float:x,Float:y,Float:z;//-1167,788, 502,1487, 922,5522, 2942,825);
GetPlayerPos(playerid, x, y, z);
if(x >= -1167.788 && y >= 502.1487 && x <= 922.5522 && y <= 2942.825) return 1;
else return 0;
}
stock IsPlayerInSf(playerid)
{
new Float:x,Float:y,Float:z;//-2942,825, -2931,147, -992,6194, 2931,147);;
GetPlayerPos(playerid, x, y, z);
if(x >= -2942.825 && y >= -2931.147 && x <= -992.6194 && y <= 2931.147) return 1;
else return 0;
}
PUBLIC => OnPlayerDeath
PHP код:
if(IsPlayerInLs(playerid))
{
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), 1175.1531,-1312.8925,13.9880,266.1378,0,0,0,0,0,0); // Spawn Quando Morre
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInLv(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), 1607.0583,1821.1628,10.8280,356.5667,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInFc(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), -316.3103,1053.5731,20.2879,1.6997,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
if(IsPlayerInSf(playerid)){
SetSpawnInfo(playerid, 0,DOF2_GetInt(file2, "Skin"), -2652.3159,636.1181,14.4531,179.9128,0,0,0,0,0,0);
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
}
Use como base nem sei se funciona pois a gm aqui nгo compila
|
Irei testar aqui obrigado pelo apoio
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
Obrigado amigo, com base em seu cуdigo foi possнvel, fiz umas alteraзхes e deu resultado funcionou muitнssimo obrigado !
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
Amigo como posso criar mais hospitais ? Angel Pine, la perto de bs, no interior de Ls proximo a palominio, tentei criar mas as coordenadas entraram em conflito e nгo funcionou, nгo entendi a lуgica da verificaзгo de distвncia das coordenadas, se puder me ajudar a criar mais seria уtimo. O player morre em Angel pine e vai pra Sf
Re: Spawn Hospital mais prуximo -
HelderPT - 16.02.2019
Vк os cуdigo que mandei sу substituir.
Re: Spawn Hospital mais prуximo -
Japis - 16.02.2019
O problema foi adicionar mais regiхes, pois acredito que entrou em conflito com as бreas que jб tem, nгo sei como pegar as coordenadas para fazer esta parte, pois as que coloquei geraram conflitos