Hi,
ich möchte gerne den Comand /Resetweapons [id] erstellen.
Ein Rcon-Admin kann von irgendeinem Spieler die Waffen löschen!
Bitte macht viele Erklären dabei dabei damit ich weiß wie man so CMDS erstellt.
MfG ~Luka~
Hi,
ich möchte gerne den Comand /Resetweapons [id] erstellen.
Ein Rcon-Admin kann von irgendeinem Spieler die Waffen löschen!
Bitte macht viele Erklären dabei dabei damit ich weiß wie man so CMDS erstellt.
MfG ~Luka~
if(strcmp(cmd, "/unarm", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "HILFE: /unarm [SpielerID]");
return 1;
}
gPlayer = strval(tmp);
if(IsPlayerAdmin(playerid) || (pInfo[playerid][pAdmin] >= 1) || pInfo[playerid][pSupporter] == 1)
{
if(!IsPlayerConnected(gPlayer))
{
SendClientMessage(playerid,COLOR_GREY,"Spieler ist nicht online!");
return 1;
}
if(gPlayer != INVALID_PLAYER_ID)
{
ResetPlayerWeapons(gPlayer);
GetPlayerName(gPlayer, gName, sizeof(gName));
GetPlayerName(playerid, pName, sizeof(pName));
format(fm,sizeof(fm), "Du hast %s entwaffnet!", gName);
SendClientMessage(playerid, COLOR_BLUE, fm);
format(fm,sizeof(fm), "Du wurdest von %s entwaffnet!", pName);
SendClientMessage(gPlayer, COLOR_BLUE, fm);
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Dazu hast du nicht genügend Rechte!");
}
}
return 1;
}
kannste natürlich beliebig abändern, aber so sieht er bei mir aus
// Unter OnPlayerCommandText
dcmd(resetweapons,12,cmdtext)
// Außerhalb eines CallBacks
dcmd_resetweapons(playerid, params[])
{
new name[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME];
new string3[64],string4[64];
new playa = strval(params);
if(!strlen(params))
{
SendClientMessage(playerid,COLOR_RED,"Verwende:/resetweapons [ID]");
return 1;
}
if(IsPlayerConnected(playa))
{
if(IsPlayerAdmin(playerid))
{
ResetPlayerWeapons(playa);
GetPlayerName(playerid, name, sizeof name);
GetPlayerName(playa,name2, sizeof name2);
format(string3,sizeof string3, "%s hat dir deine Waffen genommen",name);
SendClientMessage(playa,COLOR_RED,string3);
format(string4,sizeof string4,"Du hast %s seine Waffen genommen",name2);
SendClientMessage(playerid,COLOR_RED,string4);
return 1;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Angegebner User nicht online!");
return 1;
}
}
//Hier nochmal eine etwas veränderte Form
if(strcmp(cmd, "/unarm", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "HILFE: /unarm [SpielerID]");
return 1;
}
new gName[MAX_PLAYER_NAME];
new fm[61];
new pName[MAX_PLAYER_NAME];
new gPlayer;
gPlayer = ReturnUser(tmp);
if(IsPlayerAdmin(playerid))
{
if(!IsPlayerConnected(gPlayer))
{
SendClientMessage(playerid,COLOR_GREY,"Spieler ist nicht online!");
return 1;
}
if(gPlayer != INVALID_PLAYER_ID)
{
ResetPlayerWeapons(gPlayer);
GetPlayerName(gPlayer, gName, sizeof(gName));
GetPlayerName(playerid, pName, sizeof(pName));
format(fm,sizeof(fm), "Du hast %s entwaffnet!", gName);
SendClientMessage(playerid, COLOR_BLUE, fm);
format(fm,sizeof(fm), "Du wurdest von %s entwaffnet!", pName);
SendClientMessage(gPlayer, COLOR_BLUE, fm);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Falscher Name");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Dazu hast du nicht genügend Rechte!");
}
}
return 1;
}
Ist ja ansich ja sehr gut dass du dcmd verwendest Kayer. Aber ich habe ein bisschen was dran auszusetzen was die Art wie du den Code schreibst betrifft.
Paar Tipps:
Warum immer solche endlos langen If Abfragen mit anschließender else Regelung?
Mach doch einfach etwas wie:
if(!IsPlayerAdmin(playerid)) {
return SendClientMessage(playerid, 0xFF0000FF, "Du bist kein Admin!"); }
Geht viel schneller und ist genauso gut.
Ansonsten ganz gut. Weiter so.
@Luka: Ich dachte du kannst scripten?