28.06.2013, 04:23
(
Последний раз редактировалось andreasbleck; 28.06.2013 в 05:15.
)
Testa e vк se funciona, fis agora so olhando a wiki sem testar, comentei bastante o code pra vocк saber o que ta acontecendo no code e editar do jeito que quiser.
pawn Код:
#include <a_samp>
#define COLOR_WHITE 0xFFFFFFAA //Cor branco pra usar no SendClientMessage
new Carcaca[MAX_VEHICLES]; //Aqui vai ficar o id do objeto criado pra ser destruнdo pelo lixeiro
new Lixeiro[MAX_PLAYERS]; //Essa variбvel guarda se o player й lixeiro ou nгo, vocк pode usar na enum PlayerInfo se quiser
public OnPlayerConnect(playerid)
{
Lixeiro[playerid] = 0; //Aqui vocк pode colocar um code pra carregar do arquivo se o player й lixeiro ou nгo
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
new Float:VehX, Float:VehY, Float:VehZ, Float:VehAngle; //Aqui eu crio umas variбveis pra armazenar a posiзгo do veнculo
GetVehiclePos(vehicleid, VehX, VehY, VehZ); //Pego a posiзгo X, Y e Z do veнculo
GetVehicleZAngle(vehicleid, VehAngle); //E o angulo do veнculo
SetVehicleToRespawn(vehicleid); //E depois respawno o veнculo pra nгo bugar, ficaria melhor usando um timer, porque aqui ele й respawnado bem na hora da explosгo ou se encostar na бgua
Carcaca[vehicleid] = CreateObject(3594, VehX, VehY, VehZ, 0.0, 0.0, VehAngle); //Aqui eu crio o objeto da carcaзa e armazeno o id na variбvel Carcaca[vehicleid]
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/virarlixeiro", true))
{
Lixeiro[playerid] = 1; //Aqui eu seto o player para lixeiro
SendClientMessage(playerid, COLOR_WHITE, "Parabйns, agora vocк й um lixeiro.");
return 1;
}
if(!strcmp(cmdtext, "/limparrua", true))
{
if(!Lixeiro[playerid]) return SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo й um lixeiro.");
new Float:ObjX, Float:ObjY, Float:ObjZ, Limpezas = 0; //Aqui eu crio umas variбveis pra armazenar a posiзгo das carcaзas e o nъmero de carcaзas limpas
for(new i = 0; i < MAX_VEHICLES; i++) //Aqui eu faзo um loop por todos os carros do server
{
if(Carcaca[i]) //E vejo quais tem carcaзa
{
GetObjectPos(Carcaca[i], ObjX, ObjY, ObjZ); //Armazeno as coordenadas da carcaзa
if(IsPlayerInRangeOfPoint(playerid, 20.0, ObjX, ObjY, ObjZ)) //E vejo se o player estб a 20 metros de alguma carcaзa
{
DestroyObject(Carcaca[i]); //Removo a carcaзa
Limpezas++; //E aumento o count de quantas carcaзas limpei
}
}
}
if(!Limpezas)
{
SendClientMessage(playerid, COLOR_WHITE, "Nгo hб nenhuma carcaзa perto pra ser limpa.");
}
else if(Limpezas >= 1)
{
new string[129]; //Variбvel que vai conter a mensagem formatada (128 max characters + 1 EOS character = 129 cells)
format(string, sizeof(string), "Vocк limpou %i carcaзas da rua.", Limpezas);
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
return 0;
}