Nekem csak úgy sikerült megoldani, hogy gyakorlatilag végrehajtjuk a meglévõ parancsot de az áldozat hajtja végre.
A dolgok hátulütõje hogy minden parancshoz külön meg kell csinálni az admint és a sima parancsot
(megjegyzem:a sima parancs is lehet csak adminként használható és akkor nincs probléma hogy a sok bolond nyomkodja)
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define piros 0x7b00b8AA
#define lila 0x7b00b8AA
#define zöld 0x0dff00AA
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#endif
CMD:fakecmdkill(playerid, params[])
{
new celpont;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x7b00b8AA, \"Csak RCON admin hesználhatja\");
{
if(sscanf(params, \"u\", celpont)) return SendClientMessage(playerid, 0x7b00b8AA, \"Használat: /fakecmdkill [név/ID]\");
{
return cmd_kill(celpont, params);
}
}
return 1;
}
CMD:kill(playerid, params[])
{
SetPlayerHealth(playerid, 0);
return 1;
}
AZ ALAP:
CMD:kill(playerid, params[])
{
SetPlayerHealth(playerid, 0);
return 1;
}
AZ ADOTT JÁTÉKOSRA HATÓ:
CMD:fakecmdkill(playerid, params[])
{
new celpont;
new parancs[64];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x7b00b8AA, \"Csak RCON admin hesználhatja\");
{
if(sscanf(params, \"u\", celpont, parancs)) return SendClientMessage(playerid, 0x7b00b8AA, \"Használat: /fakecmdkill [név/ID]\");
{
return cmd_kill(celpont, params);
}
}
return 1;
}
Remélem tudsz majd kezdeni vele valamit... :)
CMD:fakecmd(playerid, params[]) {
if(PlayerInfo[playerid][Level] >= 5) { // Mondjuk 5-ös szint.
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, \"HASZNÁLAT: /fakecmd [játékosid] [parancs]\");
new player1 = strval(tmp);
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,\"HIBA: Te nem használhatod ezt a parancsot nagyobb szintû admin ellen.\");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,\"FAKECMD\");
CallRemoteFunction(\"OnPlayerCommandText\", \"is\", player1, tmp2);
return SendClientMessage(playerid,blue,\"Fake command sent\");
} else return SendClientMessage(playerid,red,\"HIBA: A játékos nincs csatlakozva\");
} else return SendClientMessage(playerid,red,\"HIBA: Te nem vagy elég magas szinten hogy, ezt a parancsot használd.\");
}
Ezt a LAdminból vettem ki.
CMD:fakecmd(playerid, params[]) {
if(PlayerInfo[playerid][Level] >= 5) { // Mondjuk 5-ös szint.
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, \"HASZNÁLAT: /fakecmd [játékosid] [parancs]\");
new player1 = strval(tmp);
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,\"HIBA: Te nem használhatod ezt a parancsot nagyobb szintû admin ellen.\");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,\"FAKECMD\");
CallRemoteFunction(\"OnPlayerCommandText\", \"is\", player1, tmp2);
return SendClientMessage(playerid,blue,\"Fake command sent\");
} else return SendClientMessage(playerid,red,\"HIBA: A játékos nincs csatlakozva\");
} else return SendClientMessage(playerid,red,\"HIBA: Te nem vagy elég magas szinten hogy, ezt a parancsot használd.\");
}
Ezt a LAdminból vettem ki.
Ezt hiába vetted ki belõle mert a sok \"#define\" meg a sok \"new ;\" nélkül semmit nem ér :S
Ezzel nem azt akarom mondani, hogy akkor most tedd bele azokat is mert a végén egy 321323523 warning-os scriptet kapnál ami futna de azért eléggé irritáló lenne ehhez valami sajátot kell írni nem innen-onnan összeszedni...
CMD:fakecmd(playerid, params[]) {
if(PlayerInfo[playerid][Level] >= 5) { // Mondjuk 5-ös szint.
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, \"HASZNÁLAT: /fakecmd [játékosid] [parancs]\");
new player1 = strval(tmp);
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,\"HIBA: Te nem használhatod ezt a parancsot nagyobb szintû admin ellen.\");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,\"FAKECMD\");
CallRemoteFunction(\"OnPlayerCommandText\", \"is\", player1, tmp2);
return SendClientMessage(playerid,blue,\"Fake command sent\");
} else return SendClientMessage(playerid,red,\"HIBA: A játékos nincs csatlakozva\");
} else return SendClientMessage(playerid,red,\"HIBA: Te nem vagy elég magas szinten hogy, ezt a parancsot használd.\");
}
Ezt a LAdminból vettem ki.
Ha lesz iõm tesztelem. Am ezt fórumon zcmd konverterrel írtad át?? :O