13.10.2013, 14:39
(
Последний раз редактировалось WLSF; 14.10.2013 в 21:53.
)
Como muitos perceberam, foram lanзados variados tipos de includes que atuariam
no processo de manipulaзгo de dados, processamento de comandos, hooks de callbacks,
juntando tudo isto eu decidi fazer um sistema de administraзгo simples
demonstrando como ficaria se o mesmo fizesse uso de todos esses benefнcios disponibilizados.
Source code:
Ela estб muito simples, porйm ele foi feito utilizando as novas includes lanзadas para melhoria e desempenho.
Ao terminar esse cуdigo eu fiz uma simples comparaзгo entre um cуdigo utilizando os mesmos comandos,
a mesma lуgica, sу que sem a ajuda do ibits, sem icmd, sem whooks.
Percebo que o peso do AMX ficou em um valor elevado ao normal, e isto й porque o cуdigo й pequeno...
Entгo vocкs podem tirar por ai, a diferenзa que faria em um cуdigo grande,
de dimensхes muito maiores.
Por tanto, para aqueles que ainda nгo testaram, recomendo o teste.
Dъvidas nгo sгo problemas, pois jб foram lanзados vбrios tуpicos para este tipo de ocasiгo.
Tуpicos relacionados:
@Atualizado. - 14/10/2013
- Implementaзгo das novas includes da IPSI, iLoops/iEach.
beta iBits
beta iCmd 7.0(rбpido)
beta iLoops
beta iEach
w!hooks
w!loops
Truques com icmd 7.0
no processo de manipulaзгo de dados, processamento de comandos, hooks de callbacks,
juntando tudo isto eu decidi fazer um sistema de administraзгo simples
demonstrando como ficaria se o mesmo fizesse uso de todos esses benefнcios disponibilizados.
Source code:
pawn Код:
#include <a_samp>
#include <icmd>
#include <ibits>
#include <iloops>
register <public>OnPlayerConnect(playerid)
{
SendClientMessage(playerid, -1, "Conectado !");
return 1;
}
register <public>OnPlayerDisconnect(playerid, reason)
{
SendClientMessage(playerid, -1, "Desconectado !");
return 1;
}
new bit1:level<MAX_PLAYERS>;
public OnPlayerEnterVehicle(playerid, vehicleid)
{
if (!getBit1(level, playerid))
{
SendClientMessage(playerid, -1, "Vocк nгo й um admin...");
return 0;
}
return 1;
}
public OnPlayerCommandText(playerid, commandid, params[])
{
switch(commandid)
{
case iscmd("r,e,s,p,a,w,n"):
{
if (getBit1(level, playerid))
{
for (new i = 0; i < getMaxVehicles(); ++i)
{
SetVehicleToRespawn(i);
}
SendClientMessageToAll(-1, "Veнculos respawnados.");
}
return 1;
}
case iscmd("g,m,x"):
{
if (getBit1(level, playerid))
{
SendClientMessageToAll(-1, "GMX, aguardem !");
SendRconCommand("gmx");
}
return 1;
}
case iscmd("t,a,p,a"), iscmd("h,i,t"):
{
if (getBit1(level, playerid))
{
if (!params[0]) SendClientMessage(playerid, -1, "Syntax /tapa [id]");
new Float:x, Float:y, Float:z;
GetPlayerPos(strval(params), x, y, z);
SetPlayerPos(strval(params), x, y, z+15);
}
return 1;
}
case iscmd("b,a,n"), iscmd("b,a,n,i,r"):
{
if (getBit1(level, playerid))
{
if (!params[0]) SendClientMessage(playerid, -1, "Syntax /ban [id]");
Ban(strval(params));
}
return 1;
}
case iscmd("k,i,c,k"), iscmd("c,h,u,t,a,r"):
{
if (getBit1(level, playerid))
{
if (!params[0]) SendClientMessage(playerid, -1, "Syntax /kick [id]");
Kick(strval(params));
}
return 1;
}
case iscmd("c,c"), iscmd("c,a,r"):
{
if (getBit1(level, playerid))
{
if (!params[0]) SendClientMessage(playerid, -1, "Syntax: /cc [id]");
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
CreateVehicle(strval(params), x, y, z, a, -1, -1, cellmax);
}
return 1;
}
case iscmd("l,o,g,a,r"):
{
setBit1(level, playerid, !getBit1(level, playerid));
if (getBit1(level, playerid)) SendClientMessage(playerid, -1, "Vocк fez logon.");
else SendClientMessage(playerid, -1, "Vocк fez logoff.");
return 1;
}
case iscmd("o,n,l,i,n,e"):
{
new string[30] = "jogadores online.";
format(string, sizeof(string), "%d %s", GetPlayersConnected(), string);
SendClientMessage(playerid, -1, string);
return 1;
}
case iscmd("c,a,r,r,o,s"):
{
new string[30] = "carros criados.";
format(string, sizeof(string), "%d %s", GetNumberofCarsCreated(), string);
SendClientMessage(playerid, -1, string);
return 1;
}
}
return 0;
}
Ao terminar esse cуdigo eu fiz uma simples comparaзгo entre um cуdigo utilizando os mesmos comandos,
a mesma lуgica, sу que sem a ajuda do ibits, sem icmd, sem whooks.
Percebo que o peso do AMX ficou em um valor elevado ao normal, e isto й porque o cуdigo й pequeno...
Entгo vocкs podem tirar por ai, a diferenзa que faria em um cуdigo grande,
de dimensхes muito maiores.
Por tanto, para aqueles que ainda nгo testaram, recomendo o teste.
Dъvidas nгo sгo problemas, pois jб foram lanзados vбrios tуpicos para este tipo de ocasiгo.
Tуpicos relacionados:
@Atualizado. - 14/10/2013
- Implementaзгo das novas includes da IPSI, iLoops/iEach.
beta iBits
beta iCmd 7.0(rбpido)
beta iLoops
beta iEach
w!hooks
w!loops
Truques com icmd 7.0