[ajuda] Sistema de placas do samp 0.3c -
Sonic Hero - 03.05.2011
Tipo da pra defini um certo carro com a placa dele? pq tipo eu queria que quando os cop digitace /multar usace tipo /multar (placadocarro) (preзo) ai o ultimo cara que piloto o carro com essa placa toma multa,entende?
Re: [ajuda] Sistema de placas do samp 0.3c -
Macintosh - 03.05.2011
Tem sim.
Faзa o sistema de placas e poste-o aqui para que o adaptemos.
Re: [ajuda] Sistema de placas do samp 0.3c -
Shadoww5 - 03.05.2011
pawn Код:
for(new placas=1; placas<MAX_VEHICLES; placas++)
{
new stringer[12];
format(stringer, sizeof(stringer), "BRL - %d", placas);
SetVehicleNumberPlate(placas, stringer);
}
Esse й o codigo para colocar as placas.
Mas eu nгo sei se dar para verificar a placa do veiculo. Caso alguem saiba, posta ai.
OBS: Uma duvida: Eu nгo deveria colocar que placas = 0 ? Sгo assim que todos tutoriais mostram ... E por que estб como 1 entгo ?
Re: [ajuda] Sistema de placas do samp 0.3c -
Josma_cmd - 03.05.2011
Isso que vocк fez vai setar a placa de todos os carros do servidor pra BRL - %d, outra coisa, pelo que sei й preciso o veiculo dar Respawn pra placa ser aplicada.
estude sobre o laзo for.
Placas = 1 vai comeзar do carro ID 1 e nгo do carro ID 0 ou seja sу um carro no servidor vai continuar cm a mesma placa.
Noticia: Nгo sei pra que vocк quer, mas seu cуdigo estб errado. =)
Re: [ajuda] Sistema de placas do samp 0.3c -
Shadoww5 - 03.05.2011
Nгo estб errado, nгo. Aqui funciona perfeitamente.
E descobri aqui que se placas for igual a um numero, somente o carro que estiver o ID superior ou igual a este numero terб uma placa.
Aqui o codigo estб numa public com SetTimer.
Re: [ajuda] Sistema de placas do samp 0.3c -
Sonic Hero - 03.05.2011
Galera eu percebi que tem um sistema de placa aqui ele й assim:
Код:
PlayerInfo[playerid][pVeiculo]
agora eu queria sabe como eu faзo para aplicar a multa dos policias o ultimo player que usou o veiculo
pq tipo pros cop sabe qual era a placa do veiculo й sу eu usar esse comando que fiz agora:
Код:
if(strcmp(cmd, "/verplaca", true) == 0)
{
if(IsPlayerConnected(playerid) || IsPlayerInAnyVehicle(playerid) || Isequipando(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /verplaca [ id ]");
return 1;
}
new playa;
playa = ReturnUser(tmp);
if (Ispolicia(playerid))
{
if(OnDuty[playerid]==1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo bateu o cartгo! (/batercartao)");
return 1;
}
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
TogglePlayerControllable(playa, 0);
format(string, sizeof(string), "ADMIN CMD: %s Congelou %s",sendername, giveplayer);
printf("%s",string);
format(string, sizeof(string), "A placa do veiculo usado por %s й %s",playa,PlayerInfo[playa][pVeiculo]);
SendClientMessage(playerid,TEAM_GROVE_COLOR,string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Voce nгo esta autorizado a usar este comando!");
}
}
return 1;
}
e agora como eu adapito pro comando de multa:
Код:
if(strcmp(cmd, "/multar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid) && !IsACopSF(playerid) && !IsAPF(playerid) && IsHeroes(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Voce nao e policial !");
return 1;
}
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMembro] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Voce nao esta em servico !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /multar [ID] [Custo] [Razao]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /multar [ID] [Custo] [Razao]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 10000) { SendClientMessage(playerid, COLOR_GREY, "Custo entre 1 e 10000 !"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /multar [ID] [Custo] [Razao]");
return 1;
}
format(string, sizeof(string), "* Voce multou %s por $%d, Razao: %s", giveplayer, moneys, (result));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* Oficial %s lhe deu uma multa no valor de $%d, Razao: %s", sendername, moneys, (result));
SendClientMessage(giveplayerid, COLOR_WHITE, string);
SendClientMessage(giveplayerid, COLOR_WHITE, "* Use /aceitar multa, para aceitar ela.");
TicketOffer[giveplayerid] = playerid;
TicketMoney[giveplayerid] = moneys;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "O jogador esta longe !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "O jogador esta Offline !");
return 1;
}
}
return 1;
}
esse comando de multa ao inves de ser o id do player ser a placa do carro dele?
Re: [ajuda] Sistema de placas do samp 0.3c -
Shadoww5 - 03.05.2011
Vocк deveria multar o player e nгo o "carro". Assim seria mais facil ...
Re: [ajuda] Sistema de placas do samp 0.3c - rjjj - 04.05.2011
Isto deve resolver o seu problema

.
Antes de tudo, instale a include KveH:
https://sampforum.blast.hk/showthread.php?tid=228434
Depois, certifique-se de nгo estar usando nenhuma vez a funзгo
SetVehicleNumberPlate, mas sim
SetVehiclePlate, funзгo da include

.
Por fim, coloque:
pawn Код:
//No Topo do GM:
new UltimoVeiculoPlayer[MAX_VEHICLES];
//No OnPlayerExitVehicle
UltimoVeiculoPlayer[vehicleid] = playerid;
//Na sua public OnPlayerCommandText, junto com os outros comandos:
if(strcmp(cmd, "/multar", true) == 0)
{
new placatexto[35], multa;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFAA, "Digite: /multar (placadocarro) (preзo)");
format(placatexto,35,tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFAA, "Digite: /multar (placadocarro) (preзo)");
multa = strval(tmp);
for(new x = 0; x < MAX_VEHICLES; ++x)
{
if(!strcmp(GetVehiclePlate(x),placatexto,true))
{
SendClientMessage(UltimoVeiculoPlayer[x],0xFFFFFFAA,"Encontraram seu Ъltimo Veнculo quebrando regras e Por isso vocк Recebeu uma Multa !");
GivePlayerMoney(UltimoVeiculoPlayer[x], (-1*multa));
}
}
return true;
}
Espero ter ajudado

.