[Ajuda] Spawn Hospital mais prуximo
#1

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
Reply
#2

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
Reply
#3

se alguйm souber qual й o problema seria de grande ajuda
Reply
#4

https://sampwiki.blast.hk/wiki/SetSpawnInfo
Reply
#5

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

Код:
HospProx(playerid);
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 :_
Reply
#6

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(playeridxyz);
    if(
>= -735.7062 && >= -2954.502 && <= 2931.147 && <= 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(playeridxyz);
    if(
>= 852.4849 && >= 490.4708 && <= 2931.147 && <= 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(playeridxyz);
    if(
>= -1167.788 && >= 502.1487 && <= 922.5522 && <= 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(playeridxyz);
    if(
>= -2942.825 && >= -2931.147 && <= -992.6194 && <= 2931.147) return 1;
    else return 
0;

PUBLIC => OnPlayerDeath

PHP код:
if(IsPlayerInLs(playerid))
{
SetSpawnInfo(playerid0,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(playerid0,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(playerid0,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(playerid0,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
Reply
#7

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(playeridxyz);
    if(
>= -735.7062 && >= -2954.502 && <= 2931.147 && <= 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(playeridxyz);
    if(
>= 852.4849 && >= 490.4708 && <= 2931.147 && <= 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(playeridxyz);
    if(
>= -1167.788 && >= 502.1487 && <= 922.5522 && <= 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(playeridxyz);
    if(
>= -2942.825 && >= -2931.147 && <= -992.6194 && <= 2931.147) return 1;
    else return 
0;

PUBLIC => OnPlayerDeath

PHP код:
if(IsPlayerInLs(playerid))
{
SetSpawnInfo(playerid0,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(playerid0,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(playerid0,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(playerid0,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
Reply
#8

Obrigado amigo, com base em seu cуdigo foi possнvel, fiz umas alteraзхes e deu resultado funcionou muitнssimo obrigado !
Reply
#9

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
Reply
#10

Vк os cуdigo que mandei sу substituir.
Reply
#11

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
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)