OnPlayerClickPlayerTextDraw - L10motos - 05/01/2024
Alguém sabe me informar o que estou fazendo de errado? Não funciona
Código: public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
for(new i = 3; i < 19; i++)
{
if(playertextid == Wheels[playerid][i])
{
new wheel;
if(Wheels[playerid][3]) wheel = 1073;
if(Wheels[playerid][4]) wheel = 1074;
if(Wheels[playerid][5]) wheel = 1075;
if(Wheels[playerid][6]) wheel = 1076;
if(Wheels[playerid][7]) wheel = 1077;
if(Wheels[playerid][8]) wheel = 1078;
if(Wheels[playerid][9]) wheel = 1079;
if(Wheels[playerid][10]) wheel = 1080;
if(Wheels[playerid][11]) wheel = 1081;
if(Wheels[playerid][12]) wheel = 1082;
if(Wheels[playerid][13]) wheel = 1083;
if(Wheels[playerid][14]) wheel = 1084;
if(Wheels[playerid][15]) wheel = 1085;
if(Wheels[playerid][16]) wheel = 1025;
if(Wheels[playerid][17]) wheel = 1096;
if(Wheels[playerid][18]) wheel = 1097;
if(Wheels[playerid][19]) wheel = 1098;
new s = get_player_sbiz_action2(playerid);
if(s < 0 || s >= sizeof(SBizzInfo) || strcmp("oficina de tunagem", get_sbizz_typename(s), true))
return SendClientMessage(playerid, COLOR_GREY, "Você não está em uma oficina de tunagem.");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlaySoundForPlayersInRange(1133, 10.0, X, Y, Z);
new price = 5000;
if(GetPlayerMoneyEx(playerid) < price)
return SendClientMessage(playerid, COLOR_GREY, "Você não tem dinheiro suficiente com você.");
new car = GetPlayerVehicleID(playerid);
if(car_player_owned[car] != -1)
{
new slot = car_player_owned[car];
if(strcmp(car_player_owner[car], Name(playerid), false))
return 1;
if(player_car_vehicle[playerid][slot] != car)
return 1;
GivePlayerMoneyEx(playerid, -price);
PayCompany(s, price, 15);
player_car_wheels[playerid][slot] = wheel;
AddVehicleComponent(car, player_car_wheels[playerid][slot]);
}
else if(CarTeam(car) >= 1 && CarTeam(car) < MAX_TEAMS)
{
new slot = -1;
new f = CarTeam(car);
for(new c = 0; c < MAX_ORG_CARS; ++c)
{
if(car == ORG_VEHICLE[f][c])
slot = c;
}
if(slot == -1)
return 1;
GivePlayerMoneyEx(playerid, -price);
PayCompany(s, price, 15);
ORG_VEHICLE_WHEELS[f][slot] = wheel;
AddVehicleComponent(car, ORG_VEHICLE_WHEELS[f][slot]);
}
}
}
RE: OnPlayerClickPlayerTextDraw - Calasans - 05/01/2024
Antes do código de mostrar os textdraws, você adicionou o SelectTextDraw(playerid, cor); ?
Verifique também se o PlayerTextDrawSetSelectable(playerid, variável, true); do seu textdraw é true, se for true, não há nada de errado, mas se for false, troque por true.
RE: OnPlayerClickPlayerTextDraw - L10motos - 06/01/2024
Não, está retornando no ultimo modelo de roda:
if(Wheels[playerid][19]) wheel = 1098;
preciso que retorne no qual o jogador clicou
RE: OnPlayerClickPlayerTextDraw - Calasans - 06/01/2024
(06/01/2024 00:18)L10motos Escreveu: Não, está retornando no ultimo modelo de roda:
if(Wheels[playerid][19]) wheel = 1098;
preciso que retorne no qual o jogador clicou
Veja se este da certo:
Código PHP: public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) { for(new i = 3; i < 19; i++) { if(playertextid == Wheels[playerid][i]) { new wheel; if(Wheels[playerid][3]) wheel = 1073; else if(Wheels[playerid][4]) wheel = 1074; else if(Wheels[playerid][5]) wheel = 1075; else if(Wheels[playerid][6]) wheel = 1076; else if(Wheels[playerid][7]) wheel = 1077; else if(Wheels[playerid][8]) wheel = 1078; else if(Wheels[playerid][9]) wheel = 1079; else if(Wheels[playerid][10]) wheel = 1080; else if(Wheels[playerid][11]) wheel = 1081; else if(Wheels[playerid][12]) wheel = 1082; else if(Wheels[playerid][13]) wheel = 1083; else if(Wheels[playerid][14]) wheel = 1084; else if(Wheels[playerid][15]) wheel = 1085; else if(Wheels[playerid][16]) wheel = 1025; else if(Wheels[playerid][17]) wheel = 1096; else if(Wheels[playerid][18]) wheel = 1097; else if(Wheels[playerid][19]) wheel = 1098;
new s = get_player_sbiz_action2(playerid); if(s < 0 || s >= sizeof(SBizzInfo) || strcmp("oficina de tunagem", get_sbizz_typename(s), true)) return SendClientMessage(playerid, COLOR_GREY, "Você não está em uma oficina de tunagem.");
new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); PlaySoundForPlayersInRange(1133, 10.0, X, Y, Z);
new price = 5000; if(GetPlayerMoneyEx(playerid) < price) return SendClientMessage(playerid, COLOR_GREY, "Você não tem dinheiro suficiente com você.");
new car = GetPlayerVehicleID(playerid); if(car_player_owned[car] != -1) { new slot = car_player_owned[car];
if(strcmp(car_player_owner[car], Name(playerid), false)) return 1;
if(player_car_vehicle[playerid][slot] != car) return 1;
GivePlayerMoneyEx(playerid, -price); PayCompany(s, price, 15);
player_car_wheels[playerid][slot] = wheel; AddVehicleComponent(car, player_car_wheels[playerid][slot]); } else if(CarTeam(car) >= 1 && CarTeam(car) < MAX_TEAMS) { new slot = -1; new f = CarTeam(car); for(new c = 0; c < MAX_ORG_CARS; ++c) { if(car == ORG_VEHICLE[f][c]) slot = c; } if(slot == -1) return 1;
GivePlayerMoneyEx(playerid, -price); PayCompany(s, price, 15);
ORG_VEHICLE_WHEELS[f][slot] = wheel; AddVehicleComponent(car, ORG_VEHICLE_WHEELS[f][slot]); } } }
RE: OnPlayerClickPlayerTextDraw - Vel - 06/01/2024
Código PHP: for(new i = 3; i <= 19; i++) { if(playertextid == Wheels[playerid][i]) { static const wheels[] = { 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1025, 1096, 1097, 1098 };
new wheel = wheels[i - 3];
// ...
RE: OnPlayerClickPlayerTextDraw - L10motos - 06/01/2024
Agora eu clico na roda que eu quero e o sistema coloca a primeira roda sendo que foi outra roda, tah colocando só a primeira roda, se clicar na segunda por exemplo, retorna na primeira roda...
(06/01/2024 00:43)Vel Escreveu: Código PHP: for(new i = 3; i <= 19; i++) { if(playertextid == Wheels[playerid][i]) { static const wheels[] = { 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1025, 1096, 1097, 1098 };
new wheel = wheels[i - 3];
// ...
Vou testar agora...
@edit
Do Vel funcionou, reputado!
|