08.12.2010, 16:53
Quote:
ah sim , intendi. Parabens , bom codigo. Usarei-o com seus creditos
manow deu errado ;x que ki eu faзo ? WEIWOUEWIEUWEIO, nao deu erro de erro saka, deu erro na library pawn ;x ai fecha saka ai voltei tudo com ctrl z, compilei e deu ;x colokei tudo nas areas certinhas , |
Coloque primeiro as variбveis globais, no Topo do GM:
pawn Код:
static BarreiraExistente[6];
static Barreira[6];
new nickname[MAX_PLAYER_NAME];
Depois coloque na public OnPlayeCommandText, apenas essa parte:
pawn Код:
if(strcmp("/barcreditos", cmdtext, true, 8) == 0)
{
SendClientMessage(playerid, 0x33FF00FF, "Este Servidor usa o cуdigo de Barreiras.");
SendClientMessage(playerid, 0x33FF00FF, "GM Thug Life City(Fear, Astro, Andre_Felipe e Poderoso_Chefao) pelo ID das Barreiras.");
SendClientMessage(playerid, 0x33FF00FF, "SampWiki por conter muitas informaзхes.");
}
if(strcmp("/criarbarreira", cmdtext, true, 13) == 0)
{
new cstring[256];
new CBar[256];
CBar = KcmD(1, cmdtext);
if(!strlen(CBar)){SendClientMessage(playerid, 0xFFFFFFFF, "Digite /criarbarreira [ ID da Barreira(De 1 б 5) ]");return 1;}
new CBarID = strval(CBar);
if(CBarID > 5 || CBarID < 1) { SendClientMessage(playerid, 0xFFFFFFFF, "Os IDs das Barreiras vгo de 1 б 5."); return 1; }
new Float:BarX, Float:BarY, Float:BarZ, Float:BarA;
GetPlayerPos(playerid, BarX, BarY, BarZ);
GetPlayerFacingAngle(playerid, BarA);
if(BarreiraExistente[CBarID] == 1)
{
SendClientMessage(playerid, 0xFFFFFFFF, "[Server Info]: Jб existe uma barreira com esse ID.");
return 1;
}
Barreira[CBarID] = CreateObject(981, BarX, BarY, BarZ, 0.0, 0.0, BarA+180,0.0);
BarreiraExistente[CBarID] = 1;
SetPlayerPos(playerid, BarX, BarY, BarZ+4);
GameTextForPlayer(playerid, "~r~] Barreira Criada ]", 5000, 3);
GetPlayerName(playerid, nickname, sizeof(nickname));
format(cstring, sizeof(cstring), "[Server Info]: Um barreira foi plantada por %s, e estб marcada por um checkpoint no Mapa.", nickname);
SendClientMessageToAll(0xFF0000FF,cstring);
format(cstring, sizeof(cstring), "[Server Info]: Vocк plantou a barreira de ID %d", CBarID);
SendClientMessage(playerid, 0xFFFFFFFF, cstring);
return 1;
}
if(strcmp("/retirarbarreira", cmdtext, true, 15) == 0)
{
new RBar[256];
new rstring[256];
RBar = KcmD(1, cmdtext);
if(!strlen(RBar)){SendClientMessage(playerid, 0xFFFFFFFF, "Digite /retirarbarreira [ ID da Barreira(De 1 б 5) ]");return 1;}
new RBarID = strval(RBar);
if(BarreiraExistente[RBarID] == 1)
{
GetPlayerName(playerid, nickname, sizeof(nickname));
format(rstring, sizeof(rstring), "[Server Info]: Um barreira foi removida por %s.", nickname);
SendClientMessageToAll(0xFF0000FF,rstring);
format(rstring, sizeof(rstring), "[Server Info]: Vocк retirou a barreira de ID %d", RBarID);
SendClientMessage(playerid, 0xFFFFFFFF, rstring);
DestroyObject(Barreira[RBarID]);//Apenas se a barreira existir
BarreiraExistente[RBarID] = 0;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "[Server Info]: Nгo pode remover uma barreira que nгo existe.");
}
return 1;
}
E depois no final do GM:
pawn Код:
stock KcmD(param, cmdtext[])
{
new string[128], pos, var;
format(string, sizeof(string), "%s ", cmdtext);
while((pos = strfind(string, " ", true)) != -1)
{
if(var == param) return string;
var++;
strdel(string, 0, pos + 1);
if(strcmp(string, " ", true, pos) == 0) goto end;
}
end:
string[0] = '\0';
return string;
}
Testei aqui e funcionou normal