07.03.2018, 00:57
Quote:
Programador de GF Bruno13? Humildгo vocк ein ?!
Ele pediu um exemplo e dei um exemplo. Agora se vocк tem o tempo disponнvel pra implementar a gamemode dele, fique a vontade! Ajuda sempre й bem vinda! Mas nгo venha desmerecer ou julgar os outros, principalmente por motivo torpe. Poucos sгo, os que olham para o lado para ajudar ao prуximo. Mas como eu jб tinha te dito Cauк, estude, se interesse e vб criando e evoluindo, independente do que te falarem, o importante й aprender sempre! Boa sorte vйio! |
Quote:
Agora funcionou , pelos meus teste sу desaparece se for um Hydra agora!
PHP код:
|
- Vocк precisa indexar a variбvel Hydra com MAX_PLAYERS, se nгo serб impossнvel ter um controle, uma vez que todos jogadores estarгo dependentes dessa variбvel. Assim que outro jogador usar o comando, o Hydra do primeiro nгo serб deletado e assim sucessivamente.
- Porque formatou a variбvel HydraExit? Variбveis definidas com limite MAX_PLAYERS sгo destinadas a armazenar valores de jogadores usando o нndice dela como o id do jogador. Nгo tem sentido o que vocк fez, pois vocк formatou uma variбvel que em uma estrutura lуgica nгo estб declarada como string.
- Nгo й mais fбcil usar apenas uma variбvel para definir o id do Hydra e ao mesmo tempo verificar se o jogador jб criou um? Isso й lуgica de programaзгo que estou lhe aconselhando a estudar. Segue um exemplo:
PHP код:
/*
* Variбvel que armazenarб o id do Hydra que o jogador criar.
* INVALID_VEHICLE_ID caso tenha sido deletado ou nгo criado.
*/
new playerHydra[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
/*
* Reseta a variбvel de controle do Hydra.
*/
playerHydra[playerid] = INVALID_VEHICLE_ID;
return 1;
}
CMD:hydra(playerid)
{
/*
* Verifica se a variбvel nгo estб com valor padrгo de INVALID_VEHICLE_ID.
* Isso significa que o jogador criou algum Hydra.
*/
if(playerHydra[playerid] != INVALID_VEHICLE_ID)
return SendClientMessage(playerid, Vermelho, "[]Vocк jб spawnou a hydra!");
new Float:POS[4];
GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
/*
* Armazena o id do Hydra que foi criado.
*/
playerHydra[playerid] = CreateVehicle(520, POS[0], POS[1], POS[2], POS[3], -1, -1, 60);
SendClientMessage(playerid, Verde, "[]Vocк spawnou a hydra!");
PutPlayerInVehicle(playerid, Hydra, 0);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
/*
* Chama a funзгo para deletar o Hydra do jogador.
*/
DestroyPlayerHydra(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
/*
* Chama a funзгo para deletar o Hydra do jogador.
*/
DestroyPlayerHydra(playerid);
return 1;
}
/*
* Crie funзхes para cуdigos que irб utilizar mais que uma vez.
* Este й um princнpio DRY, aconselho que veja este link sobre:
* https://pt.wikipedia.org/wiki/Don%27t_re...0.18414850
*/
static DestroyPlayerHydra(playerid)
{
if(playerHydra[playerid] != INVALID_VEHICLE_ID)
{
DestroyVehicle(playerHydra[playerid]);
playerHydra[playerid] = INVALID_VEHICLE_ID;
}
}