05.12.2011, 22:00
1є- Ola galera o pharrel criou um comando para mim de veiculos ex: /v [id] [cor1] [cor2] ate ai funciona perfeitamente cria o carro com a cor certinha mais as vezes quando crio um carro ai o outro player cria tbm o meu some eo dele aparece oque poderia ser isso ?
2є- Esse bug e com o anti-cheat ele kicka o xiter depois ele comeзa kickar varios players que entra no servidor..
1є:
2є:
2є- Esse bug e com o anti-cheat ele kicka o xiter depois ele comeзa kickar varios players que entra no servidor..
1є:
pawn Код:
//topo
new VeiculoCriado [MAX_PLAYERS];
if(strcmp(cmd, "/v", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
new id = strval(tmp);
tmp = strtok(cmdtext, idx);
if(id < 400 || id > 611 || id == 425 || id == 520 || id == 432) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}ID invalido ou estб bloqueado os ids sгo de 400 atй 611.");
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
new cor1 = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
new cor2 = strval(tmp);
new Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
VeiculoCriado[playerid] = CreateVehicle(id, Pos[0], Pos[1], Pos[2], 0.0, cor1, cor2, -1);
PutPlayerInVehicle(playerid, VeiculoCriado[playerid], 0);
new string[100];
format(string, sizeof(string), "{EE3B3B}[INFO]: {FFFFFF}Veiculo ''{EE3B3B} %d {FFFFFF}'' criado com sucesso.", id);
SendClientMessage(playerid, 0xFF0000AA,string);
return 1;
}
public OnPlayerStateChange(playerid,newstate,oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER) {
if(VeiculoCriado[playerid] != 0)
DestroyVehicle(VeiculoCriado[playerid]);
}
return 1;
}
2є:
pawn Код:
stock AntiCheatUpdate(playerid)
{
new slot = GetMaxPlayers();
while(slot--) {
if(IsPlayerConnected(slot) && !IsPlayerAdmin(slot) && !GetPVarInt(playerid, "BlockCheat")) {
new pName[MAX_PLAYER_NAME];
new ArmaNome[35];
new string[128];
GetPlayerName(slot, pName, sizeof(pName));
switch(GetPlayerWeapon(slot)) {
case 17: ArmaNome = #Granada de Gбs;
case 18: ArmaNome = #Molotov Cocktail;
case 35: ArmaNome = #Lanзador de Mнsseis;
case 36: ArmaNome = #Lanзador de Mнsseis Automбtico;
case 37: ArmaNome = #Lanзador de Chamas;
case 38: ArmaNome = #Minigun;
case 39: ArmaNome = #Carga Explosiva;
case 40: ArmaNome = #Detonador;
case 44: ArmaNome = #Visгo Noturna;
case 45: ArmaNome = #Visгo Tйrmica;
default: goto stop;
}
format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(%s)",pName,ArmaNome);
SendClientMessageToAll(0xFF0000AA,string);
Kick(slot);
stop:
}
}
return true;
}
forward OnPlayerUpdateCheat(playerid);
public OnPlayerUpdateCheat(playerid)
{
AntiCheatUpdate(playerid);
return 1;
}
//onplayerconnect
UpdateCheat[playerid] = SetTimerEx("OnPlayerUpdateCheat",1000,1,"i",playerid);
SetPVarInt(playerid, "BlockCheat", true);
//onplayerspawn
SetPVarInt(playerid, "BlockCheat", false);