[Hilfe] Command zum entfernen der Waffen

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
  • Heyho Community,
    Ich möchte gerne einen Command erstellen der folgendes tun soll.


    Wenn ich Waffen bei mir trage und ich möchte mich evtl. ergeben dann möchte ich das so machen das wenn ich z.B.
    /deleteweapons (o.ä) eingebe, dass alle Waffen die ich derzeit bei mir trage entfernt werden, dann soll der Spieler eine ClientMessage bekommen,
    indem ihm bestätigt wird das er seine Waffen weggeworfen hat.Es wäre auch nice, wenn eine /me Message (/me Der Spieler hat seine Waffen weggeworfen und ergibt sich!") erscheint.


    Pawn Beispiel:



    if (strcmp("/dguns", cmdtext, true, 10) == 0)
    {
    // Hier der Befehl zum entfernen der Waffen
    SendClientMessage(playerid,GELB,"Du hast deine Waffen weggeworfen);
    // Hier die /me Message, damit es jeder weiß
    return 1;
    }


    Kann mir da jemand weiterhelfen, sorry bin anfänger ? :)


    Greetz,
    xCHiCkz

  • Hallo,
    also zu allererst musst du noch einen Stock erstellen, der es überhaupt ermöglicht eine Nachricht in einem bestimmten Radius zu senden.


    if (strcmp("/dguns", cmdtext, true, 10) == 0)
    {
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GELB,"Du hast deine Waffen weggeworfen);
    // Hier die /me Message, damit es jeder weiß
    return 1;
    }

  • wenn du den Befehl /me bereits hast, mach es so

    if (strcmp("/dguns", cmdtext, true, 10) == 0)
    {
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GELB,"Du hast deine Waffen weggeworfen");
    OnPlayerCommandText(playerid,"/me hat seine Waffen weggeworfen");
    return 1;
    }

  • wenn du den Befehl /me bereits hast, mach es so

    Versteh ich nicht ganz, habe deine Zeile mit OnPlayerCommandText hinzugefügt, aber es
    erscheint sobald ich den Befehl /dgun eingebe keine /me Message ?


    Wie gesagt, bin neuling und habe nicht wirklich viel Ahnung, aber der Rest funktioniert einwandfrei , danke ^^

  • den Chat Radius kannste mit


    Ganz oben,
    #define pkoords new Float:x,Float:y,Float:z;\
    GetPlayerPos(playerid,x,y,z);
    pkoords
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
    {
    new string[128],pname[500];
    GetPlayerName(playerid,pname,sizeof pname);
    format(string,sizeof string,"%s sagt: %s",pname,text);
    SendClientMessage(i,GRAU,string);
    }
    }


    Unter OnPlayerText (Code schnipsel bitte anpassen ;))

  • Habe alles jetzt ins Script eingefügt, doch es erscheint immernoch keine /me Nachricht sobald ich /dgun eingebe ?
    So siehts bei mir jetzt aus


    Oben Definiert
    #define pkoords new Float:x,Float:y,Float:z;\
    GetPlayerPos(playerid,x,y,z);


    Der Command
    if (strcmp("/dgun", cmdtext, true, 10) == 0)
    {
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GELB,"Du hast deine Waffen weggeworfen und ergibst dich!");
    OnPlayerCommandText(playerid,"/me hat seine Waffen weggeworfen und ergibt sich!"); // Wird i-wie nicht abgesendet ?
    return 1;
    }


    So siehts bei OnPlayerText aus
    pkoords
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
    {
    new string[128],pname[500];
    GetPlayerName(playerid,pname,sizeof pname);
    format(string,sizeof string,"%s sagt: %s",pname,text);
    SendClientMessage(i,WEISS,string);
    }
    }


    Es kommen keine Errors/Warnings ?(


    //EDIT: Wenn ich jetzt etwas im Server schreibe (abgesehen von Commands) kommt die Nachricht 2 mal ?

    2 Mal editiert, zuletzt von xCHiCkz ()

  • Zitat

    Hallo,
    also zu allererst musst du noch einen Stock erstellen, der es überhaupt ermöglicht eine Nachricht in einem bestimmten Radius zu senden.


    dazu sagen wir ma nix, sowas lächerliches hab ich lang net mehr gehört


    zum TE


    machs doch einfach so


    if (strcmp("/dgun", cmdtext, true, 10) == 0)
    {
    new string[128],pname[500];
    GetPlayerName(playerid,pname,sizeof pname);
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GELB,"Du hast deine Waffen weggeworfen und ergibst dich!");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
    {
    format(string,sizeof string,"%s sagt: %s",pname,text);
    SendClientMessage(i,WEISS,string);
    }
    }
    return 1;
    }


    ka wer dir diesen code den du nutzt gegeben hast aber 1 geht das net un 2tens totaler misst
    btw definier nicht sowas sinnloses


    #define pkoords new Float:x,Float:y,Float:z;\
    GetPlayerPos(playerid,x,y,z);


    irgendwann machste dadurch fehler


    mfg


    tobi

  • Vielen Dank hat funktioniert! :D
    Sagt mal, hat jemand die (originale) blaue Schriftfarbe z.B. wenn man auf
    einen Server Connected steht dort "Connection to XXX.XXX.XX.XXX:XXXX".