criar carro colocando a cor - fearsa - 01/02/2023
boa noite. eu estou com um problema no meu sistema de spawnar carro.. ele criar tudo certo.. porém eu quero que ele crie usando assim: /car elegy cor1 cor2 e /car elegy com a cor aleatória.. porém so consigo criar com /car elegy e não consigo criar escolhendo a cor /car elegy 0 0
se eu coloco no sscanf ele fica somente criar colocando a cor mas eu quero que tenha as duas opções..
Código: CMD:car(playerid, params[])
{
new GetVehicle[15],interior;
if(PlayerInfo[playerid][modo] == 2)return SendClientMessage(playerid,Vermelho,"[ ERRO ] Comando bloqueado para este modo!!");
GetPlayerPos(playerid,PlayerInfo[playerid][pPos][0],PlayerInfo[playerid][pPos][1],PlayerInfo[playerid][pPos][2]);
GetPlayerFacingAngle(playerid,PlayerInfo[playerid][pPos][3]);
interior = GetPlayerInterior(playerid);
if(sscanf(params,"s[15]",GetVehicle)) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Digite: /Car [Nome do Veiculo]");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
new bool:existe, VeiculoID;
for(new r = 0;r < 212; r++)
{
if(!strcmp(GetVehicle, VehicleNames[r],true))
{
existe = true;
}
if(!strcmp(GetVehicle, VehicleNames[r],true)) VeiculoID = (r+400);
}
if(!existe) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Esse Veiculo nao existe!");
if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 || VeiculoID == 464 || VeiculoID == 476 || VeiculoID == 447 || VeiculoID == 469 || VeiculoID == 441 || VeiculoID == 465 || VeiculoID == 501 || VeiculoID == 564 || VeiculoID == 594 || VeiculoID == 577)
{
if(GetPlayerVirtualWorld(playerid) == 0 || GetPlayerVirtualWorld(playerid) == 50)
return SendClientMessage(playerid, Vermelho, "[ ERRO ] Esse veiculo esta liberado somente no modo Livre ~> /Modos");
}
if(PegarCarro[playerid] != -1 )
DestroyVehicle(PegarCarro[playerid]);
PegarCarro[playerid] = CreateVehicle(VeiculoID,PlayerInfo[playerid][pPos][0],PlayerInfo[playerid][pPos][1],PlayerInfo[playerid][pPos][2]+1,PlayerInfo[playerid][pPos][3],-1,-1, 0);
LinkVehicleToInterior(PegarCarro[playerid],interior);
SetVehicleVirtualWorld(PegarCarro[playerid] ,GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid,PegarCarro[playerid], 0);
LigarCarro(playerid);
SendClientMessage(playerid,0x799dc9FF,"[ ZP ] {FFFFFF}Veiculo criado com sucesso! ( Nome: {799dc9}%s{FFFFFF} )", VehicleNames[VeiculoID-400]);
return 1;
}
RE: criar carro colocando a cor - xbruno1000x - 01/02/2023
Substitua a linha 3, 9 e 32 respectivamente:
Código: new GetVehicle[15], cor1, cor2, interior;
if(sscanf(params, "s[15]dd", GetVehicle, cor1, cor2)) return SendClientMessage(playerid, Vermelho,"[ ERRO ] Digite: /Car [Nome do Veiculo][COR 1][COR 2]");
PegarCarro[playerid] = CreateVehicle(VeiculoID,PlayerInfo[playerid][pPos][0],PlayerInfo[playerid][pPos][1],PlayerInfo[playerid][pPos][2]+1,PlayerInfo[playerid][pPos][3], cor1, cor2, 0);
RE: criar carro colocando a cor - fearsa - 01/02/2023
(01/02/2023 22:06)xbruno1000x Escreveu: Substitua a linha 3, 9 e 32 respectivamente:
Código: new GetVehicle[15], cor1, cor2, interior;
if(sscanf(params, "s[15]dd", GetVehicle, cor1, cor2)) return SendClientMessage(playerid, Vermelho,"[ ERRO ] Digite: /Car [Nome do Veiculo][COR 1][COR 2]");
PegarCarro[playerid] = CreateVehicle(VeiculoID,PlayerInfo[playerid][pPos][0],PlayerInfo[playerid][pPos][1],PlayerInfo[playerid][pPos][2]+1,PlayerInfo[playerid][pPos][3], cor1, cor2, 0);
Eu fiz assim como falei acima ele só spawna colocando as duas cores.. eu quero isso e quero que ele spawne com a cor aleatória tb.. as duas opções no caso.
RE: criar carro colocando a cor - White_Blue - 01/02/2023
Você não está colocando o ponteiro da cor no sscanf, fora que o código está com alguns erros a mais.
Código totalmente corrigido:
Código PHP: CMD:car(playerid, params[]) { new GetVehicle[15], interior, Angle, Float:X, Float:Y, Float:Z, modelo, bool:existe[MAX_PLAYERS], str[128], cor1, cor2; if(PlayerInfo[playerid][modo] == 2) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Comando bloqueado para este modo!!");
GetPlayerPos(playerid, PlayerInfo[playerid][pPos][0], PlayerInfo[playerid][pPos][1], PlayerInfo[playerid][pPos][2]); interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, Angle); GetPlayerPos(playerid, X, Y, Z);
if(sscanf(params,"s[15]D(-1)D(-1)"/* Esse -1 e D maiúsculo torna os parâmetros das cores opicionais, por padrão a cor vai vir como branco.*/, GetVehicle, cor1, cor2)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Digite: /Car [Nome do Veiculo]"); if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
for(new r = 0; r < 212; r++) { if(!strcmp(GetVehicle, VehicleNames[r],true)) { existe[playerid] = true; } if(!strcmp(GetVehicle, VehicleNames[r], true)) modelo = (r + 400); }
if(!existe) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Esse Veiculo nao existe!");
if(modelo == 520 || modelo == 432 || modelo == 592 || modelo == 425 || modelo == 464 || modelo == 476 || modelo == 447 || modelo == 469 || modelo == 441 || modelo == 465 || modelo == 501 || modelo == 564 || modelo == 594 || modelo == 577) { if(GetPlayerVirtualWorld(playerid) == 0 || GetPlayerVirtualWorld(playerid) == 50) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Esse veiculo esta liberado somente no modo Livre ~> /Modos"); } if(PegarCarro[playerid] != -1 ) DestroyVehicle(PegarCarro[playerid]); PegarCarro[playerid] = AddStaticVehicleEx(modelo, X, Y, Z, Angle, cor1, cor2, 30); // Você não está usando o parâmetro das cores aqui. Está -1, -1 o que é branco. E tomei a liberdade de trocar CreateVehicle por AddStaticVehicleEx por que é melhor. LinkVehicleToInterior(PegarCarro[playerid], interior); SetVehicleVirtualWorld(PegarCarro[playerid], GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid, PegarCarro[playerid], 0); LigarCarro(playerid);
format(str, sizeof(str), "[ ZP ] {FFFFFF}Veiculo criado com sucesso! ( Nome: {799dc9}%s{FFFFFF}", VehicleNames[VeiculoID - 400]);
SendClientMessage(playerid, 0x799dc9FF, str); // Não está formatando a string nessa linha. return 1;
}
RE: criar carro colocando a cor - fearsa - 01/02/2023
(01/02/2023 22:34)White_Blue Escreveu: Você não está colocando o ponteiro da cor no sscanf, fora que o código está com alguns erros a mais.
Código totalmente corrigido:
Código PHP: CMD:car(playerid, params[]) { new GetVehicle[15], interior, Angle, Float:X, Float:Y, Float:Z, modelo, bool:existe[MAX_PLAYERS], str[128], cor1, cor2; if(PlayerInfo[playerid][modo] == 2) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Comando bloqueado para este modo!!");
GetPlayerPos(playerid, PlayerInfo[playerid][pPos][0], PlayerInfo[playerid][pPos][1], PlayerInfo[playerid][pPos][2]); interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, Angle); GetPlayerPos(playerid, X, Y, Z);
if(sscanf(params,"s[15]D(-1)D(-1)"/* Esse -1 e D maiúsculo torna os parâmetros das cores opicionais, por padrão a cor vai vir como branco.*/, GetVehicle, cor1, cor2)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Digite: /Car [Nome do Veiculo]"); if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
for(new r = 0; r < 212; r++) { if(!strcmp(GetVehicle, VehicleNames[r],true)) { existe[playerid] = true; } if(!strcmp(GetVehicle, VehicleNames[r], true)) modelo = (r + 400); }
if(!existe) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Esse Veiculo nao existe!");
if(modelo == 520 || modelo == 432 || modelo == 592 || modelo == 425 || modelo == 464 || modelo == 476 || modelo == 447 || modelo == 469 || modelo == 441 || modelo == 465 || modelo == 501 || modelo == 564 || modelo == 594 || modelo == 577) { if(GetPlayerVirtualWorld(playerid) == 0 || GetPlayerVirtualWorld(playerid) == 50) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Esse veiculo esta liberado somente no modo Livre ~> /Modos"); } if(PegarCarro[playerid] != -1 ) DestroyVehicle(PegarCarro[playerid]); PegarCarro[playerid] = AddStaticVehicleEx(modelo, X, Y, Z, Angle, cor1, cor2, 30); // Você não está usando o parâmetro das cores aqui. Está -1, -1 o que é branco. E tomei a liberdade de trocar CreateVehicle por AddStaticVehicleEx por que é melhor. LinkVehicleToInterior(PegarCarro[playerid], interior); SetVehicleVirtualWorld(PegarCarro[playerid], GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid, PegarCarro[playerid], 0); LigarCarro(playerid);
format(str, sizeof(str), "[ ZP ] {FFFFFF}Veiculo criado com sucesso! ( Nome: {799dc9}%s{FFFFFF}", VehicleNames[VeiculoID - 400]);
SendClientMessage(playerid, 0x799dc9FF, str); // Não está formatando a string nessa linha. return 1;
}
edit: vlw.. eu esqueci do cor1 e cor2 no sscanf.
|