06.04.2014, 18:41
(
Последний раз редактировалось hard_dalzot; 06.04.2014 в 20:14.
)
Boa tarde, estou tendo uns probleminhas aqui no qual eu nгo estou conseguindo resolver, pois nгo sou expert em programaзгo, enfim o problema й o seguinte, estou criando um servidor de Race/RP, no qual as corridas serгo espalhadas pela cidade e talz e para acessar a corrida vocк tem que ir no нcone e buzinar pra ver se a corrida ta acessнvel ou nгo.
Nota que na Posiзгo 1 deveria tar escrito o PCdeTestes la na dialog, e ta aparecendo o meu nome sendo que eu nem tinha entrado na corrida ainda.
Segue as funзхes:
o outro problema й que nгo consigo fazer aparecer o veнculo do corredor, ele pega como se foce o meu veнculo e poe nas 4 posiзхes da corrida.
Aqui estгo as imagens
Nota que na Posiзгo 1 deveria tar escrito o PCdeTestes la na dialog, e ta aparecendo o meu nome sendo que eu nem tinha entrado na corrida ainda.
Segue as funзхes:
pawn Код:
//Aqui estб a dialog responsбvel por tais funзхes
if(response == 1)
{
if(listitem == 0)
{
if(Info_SprintDeserto1[Lotacao] == 4)
{
MP(playerid, cinza, "[AVISO] "Branco"Esta corrida jб estб lotada!");
}
if(Info_SprintDeserto1[Pos1Ocupada] == 1)
{
MP(playerid, vermelho, "Esta posiзгo jб estб sendo ocupada, favor escolha outra!");
MostrarDialogosCorridas(playerid, 1);
}
else
{
new carro1 = GetPlayerVehicleID(playerid);
strmid(Info_SprintDeserto1[Pos1], Nome(playerid), 0, strlen(Nome(playerid)), 24);
EstaEmCorrida[playerid] = 1;
Info_SprintDeserto1[Lotacao] += 1;
Info_SprintDeserto1[Corredor1] = playerid;
Info_SprintDeserto1[Pos1Ocupada] = 1;
SetPlayerVirtualWorld(playerid, 10);
SetVehicleVirtualWorld(carro1, 10);
PutPlayerInVehicle(playerid, carro1, 0);
TogglePlayerControllable(playerid, 1);
SetPlayerPos(playerid, -170.6189,2638.7058,63.1811);
SetPlayerFacingAngle(playerid, 270.0);
SetVehicleZAngle(carro1, 270.0);
SetVehiclePos(carro1, -170.6189,2638.7058,63.1811);
MP(playerid, cinza, "Testando as posiзхes da pista! Posiзгo 1!");
}
}
if(listitem == 1)
{
if(Info_SprintDeserto1[Lotacao] == 4)
{
MP(playerid, cinza, "[AVISO] "Branco"Esta corrida jб estб lotada!");
}
if(Info_SprintDeserto1[Pos2Ocupada] == 1)
{
MP(playerid, vermelho, "Esta posiзгo jб estб sendo ocupada, favor escolha outra!");
MostrarDialogosCorridas(playerid, 1);
}
else
{
new carro2 = GetPlayerVehicleID(playerid);
strmid(Info_SprintDeserto1[Pos2], Nome(playerid), 0, strlen(Nome(playerid)), 24);
EstaEmCorrida[playerid] = 1;
Info_SprintDeserto1[Lotacao] += 1;
Info_SprintDeserto1[Corredor2] = playerid;
Info_SprintDeserto1[Pos2Ocupada] = 1;
SetPlayerVirtualWorld(playerid, 10);
SetVehicleVirtualWorld(carro2, 10);
PutPlayerInVehicle(playerid, carro2, 0);
TogglePlayerControllable(playerid, 1);
SetPlayerPos(playerid, -179.6542,2638.8572,63.0746);
SetPlayerFacingAngle(playerid, 270.0);
SetVehicleZAngle(carro2, 270.0);
SetVehiclePos(carro2, -179.6542,2638.8572,63.0746);
MP(playerid, cinza, "Testando as posiзхes da pista! Posiзгo 2!");
}
}
if(listitem == 2)
{
if(Info_SprintDeserto1[Lotacao] == 4)
{
MP(playerid, cinza, "[AVISO] "Branco"Esta corrida jб estб lotada!");
}
if(Info_SprintDeserto1[Pos3Ocupada] == 1)
{
MP(playerid, vermelho, "Esta posiзгo jб estб sendo ocupada, favor escolha outra!");
MostrarDialogosCorridas(playerid, 1);
}
else
{
new carro3 = GetPlayerVehicleID(playerid);
strmid(Info_SprintDeserto1[Pos3], Nome(playerid), 0, strlen(Nome(playerid)), 24);
Info_SprintDeserto1[Corredor4] = playerid;
EstaEmCorrida[playerid] = 1;
Info_SprintDeserto1[Lotacao] += 1;
Info_SprintDeserto1[Pos3Ocupada] = 1;
SetPlayerVirtualWorld(playerid, 10);
SetVehicleVirtualWorld(carro3, 10);
PutPlayerInVehicle(playerid, carro3, 0);
TogglePlayerControllable(playerid, 1);
SetPlayerPos(playerid, -170.9876,2631.5212,63.1758);
SetPlayerFacingAngle(playerid, 270.0);
SetVehicleZAngle(carro3, 270.0);
SetVehiclePos(carro3, -170.9876,2631.5212,63.1758);
MP(playerid, cinza, "Testando as posiзхes da pista! Posiзгo 3!");
}
}
if(listitem == 3)
{
if(Info_SprintDeserto1[Lotacao] == 4)
{
MP(playerid, cinza, "[AVISO] "Branco"Esta corrida jб estб lotada!");
}
if(Info_SprintDeserto1[Pos4Ocupada] == 1)
{
MP(playerid, vermelho, "Esta posiзгo jб estб sendo ocupada, favor escolha outra!");
MostrarDialogosCorridas(playerid, 1);
}
else
{
new carro4 = GetPlayerVehicleID(playerid);
strmid(Info_SprintDeserto1[Pos4], Nome(playerid), 0, strlen(Nome(playerid)), 24);
Info_SprintDeserto1[Corredor4] = playerid;
EstaEmCorrida[playerid] = 1;
Info_SprintDeserto1[Lotacao] += 1;
Info_SprintDeserto1[Pos4Ocupada] = 1;
SetPlayerVirtualWorld(playerid, 10);
SetVehicleVirtualWorld(carro4, 10);
PutPlayerInVehicle(playerid, carro4, 0);
TogglePlayerControllable(playerid, 1);
SetPlayerPos(playerid, -179.2103,2631.3040,63.0766);
SetPlayerFacingAngle(playerid, 270.0);
SetVehicleZAngle(carro4, 270.0);
SetVehiclePos(carro4, -179.2103,2631.3040,63.0766);
MP(playerid, cinza, "Testando as posiзхes da pista! Posiзгo 4!");
}
}
//Aqui estб a funзгo para ver os veнculos e players que estгo na corrida
forward MostrarDialogosCorridas(playerid, corrida);
public MostrarDialogosCorridas(playerid, corrida)
{
if(corrida == 1)
{
new str[512];
new corredor1 = Info_SprintDeserto1[Corredor1];
new corredor2 = Info_SprintDeserto1[Corredor2];
new corredor3 = Info_SprintDeserto1[Corredor3];
new corredor4 = Info_SprintDeserto1[Corredor4];
// TogglePlayerControllable(playerid, 0);
if(Info_SprintDeserto1[Pos1Ocupada] == 1) { strmid(Info_SprintDeserto1[Pos1], Nome(playerid), 0, strlen(Nome(playerid)), 24); } else {
strmid(Info_SprintDeserto1[Pos1], "Ninguem", 0, strlen("Ninguem"), 24); }
if(Info_SprintDeserto1[Pos2Ocupada] == 1) { strmid(Info_SprintDeserto1[Pos2], Nome(playerid), 0, strlen(Nome(playerid)), 24); } else {
strmid(Info_SprintDeserto1[Pos2], "Ninguem", 0, strlen("Ninguem"), 24); }
if(Info_SprintDeserto1[Pos3Ocupada] == 1) { strmid(Info_SprintDeserto1[Pos3], Nome(playerid), 0, strlen(Nome(playerid)), 24); } else {
strmid(Info_SprintDeserto1[Pos3], "Ninguem", 0, strlen("Ninguem"), 24); }
if(Info_SprintDeserto1[Pos4Ocupada] == 1) { strmid(Info_SprintDeserto1[Pos4], Nome(playerid), 0, strlen(Nome(playerid)), 24); } else {
strmid(Info_SprintDeserto1[Pos4], "Ninguem", 0, strlen("Ninguem"), 24); }
format(str, sizeof str, "Posiзгo 1: %s - Carro: %s\n\
Posiзгo 2: %s - Carro: %s\n\
Posiзгo 3: %s - Carro: %s\n\
Posiзгo 4: %s - Carro: %s",Info_SprintDeserto1[Pos1], NomeVeiculos[GetVehicleModel(GetPlayerVehicleID(corredor1))-400],
Info_SprintDeserto1[Pos2], NomeVeiculos[GetVehicleModel(GetPlayerVehicleID(corredor2))-400],
Info_SprintDeserto1[Pos3], NomeVeiculos[GetVehicleModel(GetPlayerVehicleID(corredor3))-400],
Info_SprintDeserto1[Pos4], NomeVeiculos[GetVehicleModel(GetPlayerVehicleID(corredor4))-400]);
SprintDeserto1[playerid] = 0;
ShowPlayerDialog(playerid, D_Sprint_Deserto_1, dlista, ""Cinza"Sprint do Deserto "Verde"Dificuldade 01", str, "Correr", "Sair");
}
return 1;
}
//e aqui estб o que faz entrar na dialog
if(newkeys == KEY_HORN)
{
if(PlayerToPoint(10.0, playerid, -164.8420,2635.1248,63.5164))
{
new carro = GetPlayerVehicleID(playerid);
if(!CarrosNivel01(carro)) { MP(playerid, cinza, "[AVISO] "Branco"Vocк nгo estб em um carro de nнvel 1! Verifique as concessionбrias!"); }
if(!IsPlayerInAnyVehicle(playerid)) { MP(playerid, cinza, "[ERRO] "Branco"Vocк deve estar em um carro para entrar na corrida!"); }
MostrarDialogosCorridas(playerid, 1);
}
}
Aqui estгo as imagens