GetVehiclePos / OnPlayerEnterVehicle -
Ely Manning - 13.10.2012
Bem estou tentando fazer com que
certa funзгo seja executa se o
veнculo estar em
tal posiзгo.. Parti de GetVehiclePos, pois ele detecta a posiзгo do veнculo, mas nгo cheguei a um cуdigo final, tentei e parei aqui:
pawn Код:
SendClientMessage(playerid, 0xFFFFFFAA, "Muito bem vamos comeзar o transporte, pegue uma das vans que se encontram no estacionamento.");
new Float:vehx1, Float:vehy1, Float:vehz1;
GetVehiclePos(vcrack1, vehx1, vehy1, vehz1);
if(GetVehiclePos(vcrack1, 197.8399, -243.1895, 1.6034) // ERRO
{
SetVehicleParamsForPlayer(vcrack1, playerid, 1, 0);
}
new Float:vehx2, Float:vehy2, Float:vehz2;
GetVehiclePos(vcrack2, vehx2, vehy2, vehz2);
if(GetVehiclePos(vcrack2, 203.6481, -252.7208, 1.6034) // ERRO
{
SetVehicleParamsForPlayer(vcrack2, playerid, 1, 0);
}
new Float:vehx3, Float:vehy3, Float:vehz3;
GetVehiclePos(vcrack3, vehx3, vehy3, vehz3);
if(GetVehiclePos(vcrack3, 209.0737, -252.7017, 1.6034) //ERRO
{
SetVehicleParamsForPlayer(vcrack3, playerid, 1, 0);
}
O erro retornado й:
pawn Код:
C:\Users\Erika\Desktop\Servidor\Projeto Serron\filterscripts\DEM.pwn(96) : error 035: argument type mismatch (argument 2)
C:\Users\Erika\Desktop\Servidor\Projeto Serron\filterscripts\DEM.pwn(100) : error 035: argument type mismatch (argument 2)
C:\Users\Erika\Desktop\Servidor\Projeto Serron\filterscripts\DEM.pwn(104) : error 035: argument type mismatch (argument 2)
A linha estб na callback
public OnPlayerSelectedMenuRow(playerid, row), pois quero que estes comandos sejam executados apуs o jogador selecionar a opзгo em um menu, se alguйm souber, por favor.
//-------------------------------------------------------------
O segundo problema seria mais uma ajuda do que um pedido, na
public OnPlayerEnterVehicle, de fato os cуdigos
nгo estгo retornando
nenhum erro de compilaзгo, porйm, quando adentro no determinado veнculo especificado na
public, nada acontece, nenhuma das funзхes й executada, seja texto, respawn, ou re-set de parвmetro.
pawn Код:
new van;
van = GetPlayerVehicleID(playerid);
if(van == vcrack1)
{
GameTextForPlayer(playerid,"~w~Pegue as caixas de crack e carregue a van.", 5000, 1);
SetPlayerCheckpoint(playerid, 204.852279, -233.177963, 1.778618, 5.0);
SetVehicleParamsForPlayer(vcrack2, playerid, 0, 1);
SetVehicleParamsForPlayer(vcrack3, playerid, 0, 1);
SetVehicleToRespawn(vcrack2);
SetVehicleToRespawn(vcrack3);
}
Dados adicionais:
pawn Код:
new vcrack1, vcrack2 ,vcrack3;
pawn Код:
//Vans
vcrack1 = AddStaticVehicleEx(498, 197.8399, -243.1895, 1.6034, -90.0000, -1, -1, -1);
vcrack2 = AddStaticVehicleEx(498, 203.6481, -252.7208, 1.6034, 0.0000, -1, -1, -1);
vcrack3 = AddStaticVehicleEx(498, 209.0737, -252.7017, 1.6034, 0.0000, -1, -1, -1);
Considerando que isto й um pedido, se o autor requisitar, seus direitos poderгo ser adicionados no final deste FS.
Obrigado desde jб.
Re: GetVehiclePos / OnPlayerEnterVehicle -
arakuta - 13.10.2012
Sobre a public OnPlayerEnterVehicle ela й executada quando se pressiona a tecla enter ou F, nгo quando entra de fato no veнculo. Aн no seu codigo ele checa o veнculo do player, logo o player nгo estarб em nenhum veнculo no momento da execuзгo da callback.
Sugiro que use OnPlayerStateChange que executa assim que o player Entra/sair de fato de um veнculo.
Sobre os erros, quais as linhas exatamente?
Re: GetVehiclePos / OnPlayerEnterVehicle -
Ely Manning - 13.10.2012
Grande arakuta, vou estudar sobre essa callback agora mesmo.
As linhas dos erros foram explicitadas no primeiro post.
Re: GetVehiclePos / OnPlayerEnterVehicle -
arakuta - 13.10.2012
pawn Код:
new vcrack[3];
vcrack[0] = AddStaticVehicleEx(498, 197.8399, -243.1895, 1.6034, -90.0000, -1, -1, -1);
vcrack[1] = AddStaticVehicleEx(498, 203.6481, -252.7208, 1.6034, 0.0000, -1, -1, -1);
vcrack[2]= AddStaticVehicleEx(498, 209.0737, -252.7017, 1.6034, 0.0000, -1, -1, -1);
E substitua todo o resto... onder tem vcrack1 por vcrack[0], vcrack2 por vcrack[1] e vcrack3 por vcrack [2];
Testa ai
@EDIT agora que vi...
Faz isso aque (Caso nгo utilizar o jeito que ensinei nesse mesmo post)
pawn Код:
GetVehiclePos(vcrack1, vehx1, vehy1, vehz1);
if(vehx1 == 197.8399 && vehy1 == -243.1895 && vehz1 == 1.6034
Se fez como eu disse antes, entгo usa vcrack[0] no lugar no vrack1
quando vocк obtem a posiзгo vocк coloca a posiзгo obtida nas varнaveis, entгo й sу compara-las com as posiзхes desejadas... testa ai, abraзos
Re: GetVehiclePos / OnPlayerEnterVehicle -
Ely Manning - 13.10.2012
Fail
Apesar de na hora da compilaзгo nгo haver erros, os comandos nгo sгo executados, como se a checagem da posiзгo do veнculo acontecesse, porйm, ele em 100% dos casos identifica o veнculo fora da posiзгo original.