03.09.2011, 17:02
tou com um probleminha....
meu gm tem a funcao de comprar so um carro, eu arrumei isso e pus pra comprar infinitos
O problema й que o comando que voce pode executar quando voce esta em seu carro,ta vendendo todos os carros em ves de o carro q estas dentro
Comando que o player tem acesso se tiver em seu carro:
Dialog do /meucarro :
Comando que o adm criar o carro a venda:
Parte DO CODE que chama a dialog de comprar se o carro tiver a venda
Dialog comprarcarromenu do code acima :
public chamada no /ccar
meu gm tem a funcao de comprar so um carro, eu arrumei isso e pus pra comprar infinitos
O problema й que o comando que voce pode executar quando voce esta em seu carro,ta vendendo todos os carros em ves de o carro q estas dentro
Comando que o player tem acesso se tiver em seu carro:
pawn Код:
if(strcmp(cmdtext, "/meucarro", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
new resultados;
new string2[256];
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(dini_Exists(string)){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
format(string2, sizeof(string2), "Meu Carro(Id:%d)", carro);
ShowPlayerDialog(playerid, 4501, DIALOG_STYLE_LIST, string, "Salvar Posiзгo \nAlterar cor 1 \nAlterar cor 2 \nRespawnar Carro \nVender Carro", "OK", "Cancelar");
resultados = 0;
} else {
resultados = 1;
}
}
}
if(resultados == 1){
SendClientMessage(playerid, Vermelho, "Vocк nгo estб no seu carro.");
}
return 1;
}
pawn Код:
if(dialogid == 4501) // Menu
{
if(response)
{
if(listitem == 0) //Salvar posiзгo
{
if(IsPlayerInAnyVehicle(playerid)){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
new Float:carroX,Float:carroY,Float:carroZ,Float:carroA;
new vid;
vid = GetPlayerVehicleID(playerid);
GetVehiclePos(vid, carroX, carroY, carroZ);
GetVehicleZAngle(vid, carroA);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
dini_FloatSet(string, "CordX", Float:carroX);
dini_FloatSet(string, "CordY", Float:carroY);
dini_FloatSet(string, "CordZ", Float:carroZ);
dini_FloatSet(string, "Angulo", Float:carroA);
//SendClientMessage(playerid, Verde, "Seu carro foi salvo na sua posiзгo.");
}
}
SendClientMessage(playerid, Verde, "Seu carro foi salvo na sua posiзгo.");
} else {
SendClientMessage(playerid, Vermelho, "Para salvar a posiзгo vocк presisa estar em um carro.");
}
}
if(listitem == 1) //Alterar cor 1
{
format(STRX, sizeof(STRX), "Alterar Cor 1\n\nDigite o nъmero da cor desejada e aperte \"Alterar\".\n\n ~ Sanchez!");
ShowPlayerDialog(playerid, 4502, DIALOG_STYLE_INPUT, "Meu Carro", STRX, "Alterar", "Cancelar");
}
if(listitem == 2) //Alterar cor 2
{
format(STRX, sizeof(STRX), "Alterar Cor 2\n\nDigite o nъmero da cor desejada e aperte \"Alterar\".\n\n ~ Sanchez!");
ShowPlayerDialog(playerid, 4503, DIALOG_STYLE_INPUT, "Meu Carro", STRX, "Alterar", "Cancelar");
}
if(listitem == 3) // Respawnar carro
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
DestroyVehicle(dini_Int(string, "Id"));
new carroid;
carroid = AddStaticVehicle(dini_Int(string, "Modelo"), dini_Float(string, "CordX"), dini_Float(string, "CordY"), dini_Float(string, "CordZ"), dini_Float(string, "Angulo"), dini_Int(string, "Cor1"), dini_Int(string, "Cor2"));
dini_IntSet(string, "Id", carroid);
}
}
SendClientMessage(playerid, Amarelo, "Carro respawnado !");
}
if(listitem == 4) // Vender carro
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
dini_Set(string, "Dono", "Nenhum");
dini_IntSet(string, "TDono", 0);
GivePlayerGrana(playerid, dini_Int(string, "Preco"));
}
}
}
}
}
pawn Код:
if(strcmp(cmd, "/ccar", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
if(IsPlayerAdmin(playerid)|| pAdmin[playerid] == 5){
new tmp[256];
new carid, Float:ang, preco, cor1, cor2;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
return 1;
}
carid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
return 1;
}
preco = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
return 1;
}
cor1 = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
return 1;
}
cor2 = strval(tmp);
if(carid >= 400 && carid <= 611){
if(IsPlayerInAnyVehicle(playerid)){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
format(string, sizeof(string), "carro%d.ini", proximocarro);
if(!dini_Exists(string)){
dini_Create(string);
dini_IntSet(string, "Modelo", carid);
dini_FloatSet(string, "CordX", Float:X);
dini_FloatSet(string, "CordY", Float:Y);
dini_FloatSet(string, "CordZ", Float:Z);
dini_FloatSet(string, "Angulo", Float:ang);
dini_IntSet(string, "Cor1", cor1);
dini_IntSet(string, "Cor2", cor2);
dini_IntSet(string, "TDono", 0);
dini_Set(string, "Dono", "Ninguem");
dini_IntSet(string, "Preco", preco);
}
SetTimerEx("CriarVeiculo2",5000,false,"dffffdd",carid,X,Y,Z,ang,cor1,cor2);
format(string, sizeof(string), "(INFO) Veiculo criado com sucesso!");
SendClientMessage(playerid, Azul, string);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo estб em um veiculo!");
}
}
else{
SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
return 1;
}
} else {
SendClientMessage(playerid, Cinza, "(ERRO) Vocк nгo tem permissгo para isso");
return 1;
}
}
pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
{
new string[256];
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for(new carro = 0; carro < MAX_CARROS; carro++)
{
new vid;
vid = GetPlayerVehicleID(playerid);
format(string, sizeof(string), "carro%d.ini", carro);
if(dini_Exists(string)){
if(vid == dini_Int(string, "Id")){
if(dini_Int(string, "TDono") == 1){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
SendClientMessage(playerid, Azul, "Brasil Games RPG - Este carro й seu, seja bem vindo !");
} else {
format(string, sizeof(string), "Brasil Games RPG - Este carro nгo й seu, й de: %s", dini_Get(string, "Dono"));
SendClientMessage(playerid, Azul, string);
for(new i=0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
new nome[MAX_PLAYER_NAME];
GetPlayerName(i, nome, sizeof(nome));
if(strcmp(dini_Get(string, "Dono"), nome, true) == 0 && GetPlayerVehicleID(playerid) == dini_Int(string, "Id")){
format(string, sizeof(string), "Brasil Games RPG - ALARME: %s(Id:%d) tentou roubar seu carro.", pname, playerid);
SendClientMessage(i, tcadm, string);
}
}
}
RemovePlayerFromVehicle(playerid);
}
} else {
//format(string, sizeof(string), "Brasil Games RPG - Este carro estб a venda ! Preзo: %d reais, use /comprarcarro", dini_Int(string, "Preco"));
//SendClientMessage(playerid, Amarelo, string);
//SendClientMessage(playerid, Vermelho, "Para sair do carro aperte F.");
format(string, sizeof(string), "Comprar carro: R$%d",dini_Int(string, "Preco"));
ShowPlayerDialog(playerid, comprarcarromenu, DIALOG_STYLE_LIST, "Menu Comprar carro", string, "Comprar", "Cancelar");
incar[playerid] = 1;
TogglePlayerControllable(playerid, 0);
}
}
}
}
Dialog comprarcarromenu do code acima :
pawn Код:
if(dialogid == comprarcarromenu) // Menu de comprarcarro
{
if(response)
{
if(listitem == 0) { // comprarcarro
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
/*if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
SendClientMessage(playerid, Vermelho, "Vocк jб tem um carro");
return 1;
}*/
if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id")){
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco")){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
dini_IntSet(string, "TDono", 1);
dini_Set(string, "Dono", aname);
SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
TogglePlayerControllable(playerid, 1);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
return 1;
}
}
}
}
}
}
Код:
public CriarVeiculo2(m,Float:x,Float:y,Float:z,Float:r,c,d) { new string[256]; format(string, sizeof(string), "carro%d.ini", proximocarro); new carroid; carroid = AddStaticVehicle(m, x, y, z, r, c, d); dini_IntSet(string, "Id", carroid); proximocarro++; }