Command erstellen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }

    Suche Scriptlehrer :rolleyes:

  • 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. :thumbup:


    @Luka: Ich dachte du kannst scripten? :whistling: