Waffen löschen

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
  • Hallo liebes Samp Forum,
    ich scripte nun seit heute und habe auch gleich mal was probiert..


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/removeweapons", cmdtext, true) == 0)
    {


    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid, 0xFFFFFFAA, "Deine Waffen wurden geloescht!");

    return 1;
    }
    return 0;
    }


    Das funktiniert auch alles.
    Ich kann die Waffen des jeweiligen User mit /removeweapons löschen.
    Nun habe ich aber noch eine Frage.
    Der Text wird irgendwie nur mir angezeigt, aber wie kann ich das Folgende machen:
    Text bei mir: Du hast die Waffen gelöscht.
    Text bei dem User: Deine Waffen wurden gelöscht.


    ----


    Ich weiß, dass das einfach ist, aber für mich nicht, da ich es seit heute mache.. xD
    Ich will auch keinen Server aufmachen, sondern ganz einfach aus Langerweile vor mich hinscripten.. :)


    MfG
    SemTeX

  • hier als DCMD


    Das in OnPlayerCommandText
    dcmd(removeweapons,13,cmdtext);


    Befehl (unter OnPlayerCommandText)
    dcmd_removeweapons(playerid,params[])
    {
    new Reason[256], pID;
    if(sscanf(params,"us",pID,Reason)){
    return SendClientMessage(playerid,0x999999FF,"Nutzung: /removeweapons [playerid] [reason]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,0x999999FF,"Niemand mit der ID Online!");
    }
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID,name,sizeof(name));
    new Aname[MAX_PLAYER_NAME],string2[256];
    GetPlayerName(playerid,Aname,sizeof(Aname));
    format(string,sizeof(string),"%s hat deine Waffen gelöscht. [Grund: %s]",Aname,Reason);
    format(string2,sizeof(string2),"Du hast die Waffen von %s gelöscht [Grund: %s]",name,Reason);
    SendClientMessage(pID,0x33AA33AA,string);
    ResetPlayerWeapons(pID);
    return 1;
    }


    Falls du kein DCMD definiert hast dann das ganz oben hin (unter den include...)
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

  • Ich will dich mal was fragen Hell oder asuch an alle!


    was hat da eigentlich die Zahl zu bedeuten? ich habe ja eineige DCMDS aber auch immer unterschiedliche Zahlen..


    dcmd(removeweapons,13,cmdtext);
    #


    --13-- :S :huh:

  • Die 13 ist die Länge von dem Command.. also wen ich jetzt einen Command habe z.B /Hallo muss anstadt der 13 eine 5 stehen.
    Also ganz klar wieviele "Slots" der command braucht..^^^^

  • jo genau richtig :) wenn man weniger hinmacht dann wird ein blöder fehler kommen^^

  • Ja dann kommt "Server: unknown command"


    Aber okay, jedee Zahl = ein Buchstabe.. 8o :rolleyes: :huh: :D


    danke euch.

  • Erstmal danke für die schnelle Hilfe.
    Ich würde mich freuen, wenn du mir das alles ein wenig erklärst, dann könnte ich das gleich lernen.
    Da ich das ja erst seit heute mache, weiß ich kaum was ein "DCMD" ist, o.Ä..


    MfG


  • Ein dcmd ist z.B. ein Befehl:


    /jail [id] [zeit]


    oder
    kick [id] [grund]



    und z.B. /help, /rules


    sind cmd´s


    also Dcmds sind Commands mit parametern.

  • Ah, ok..
    Kannst du mir vielleicht den Aufbau eines DCMD erklären bzw. etwas, was immer dabei sein muss?
    Oder kennst du zufällig eine gute Seite, wo es erklärt wird?


    Edit: Ich habe mal ein Script erstellt.. :


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(kill, 4, cmdtext);
    return 0;
    }
    dcmd_kill(playerid, params[])
    {
    new id;
    if (strlen(params))

    id = strval (params);
    if (IsPlayerConnected(id))

    {
    SetPlayerHealth(id, 100.0);
    SendClientMessage(id, 0xFFFFFFAA, "Du wurdest getötet, Opfer!";
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast den Spieler getötet!";
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "Der Spieler wurde nicht gefunden!";
    }
    }
    else
    {

    SendClientMessage(playerid, 0xFFFFFFAA, "Nutzung: /kill ID"

    }

    return 1;
    }
    return 0;
    }


    Aber irgendwie funktioniert das nicht so ganz, bekomme 6 Errors.
    Kann mir jmd. helfen? :)

    Einmal editiert, zuletzt von SemTeX ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich hab das Script jetzt umgeschrieben:


    public OnPlayerCommandText(playerid, cmdtext[])
    {


    dcmd(kill, 4, cmdtext);
    return 0;
    }
    dcmd_kill(playerid, params[]) {


    new ID


    pID;
    if(sscanf(params,"u",pID)) {
    return SendClientMessage(playerid, 0xFFFFFF, "Nutzung: /kill ID");
    }

    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid, 0xFFFFFF, "Kein Spieler mit dieser ID online!");
    }

    Kill(pID);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast ihn gekillt!");

    return 1;
    }
    return 0;
    }


    Ich bekomm trotzdem 2 Errors, need help. :(