Nachricht an Alle Spieler in der nähe

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, die Überschrift sagt alles!
    Ich hoffe ihr könnt mir helfen!


    MFG
    CAPO


    2. Frage:
    Wie mache ich sowas wie /name [hier ein Text]
    und wenn jemand dann /name [text] geschrieben hast dann wird an den Spieler gesendet:
    SendClientMessage(playerid,ROT,"Du hast /name (Hier den Text den er eingetragen hat anzeigen) eingegeben");

  • Zu 1.:


    • Schleife für alle Spieler
    • Spielerposition rausfinden
    • Abfragen ob die Spieler sich im Radius der ID befinden (IsPlayerInRangeOfPoint)


    Zu 2.:


    (in zcmd)


    COMMAND:name(playerid,params[])
    {
    if(isnull(params)) return SendClientMessage(playerid,farbe,"/name (Text)");


    format(params,128,"Du hast /name (%s) eingegeben!",params);
    SendClientMessage(playerid,farbe,params);
    return 1;
    }


    LG

  • ocmd:name(playerid,params[])
    {
    if(sscanf(params,"u"))return SendClientMessage(playerid,ROT,"/name (Text)");
    format(params,128,"Du hast /name (%s) eingegeben!",params);
    SendClientMessage(playerid,ROT,params);
    return 1;
    }
    Funktuniert das so? Hab es in ocmd umgeschrieben!

  • @ Capo: Nein... wenn du einen String zurückgeben willst muss das so aussehen:


    new string[128];
    if(sscanf(params,"s",string)) ...


    "u" gibt einen Spielernamen/eine ID zurück.


    ??? XD Ich versteh i-wie nur Bahnhof
    Also ist das was ich gescriptet habe falsch also das


    ocmd:name(playerid,params[])
    {
    if(sscanf(params,"s"))return SendClientMessage(playerid,ROT,"/name (Text)");
    format(params,128,"Du hast /name (%s) eingegeben!",params);
    SendClientMessage(playerid,ROT,params);
    return 1;
    }
    Wenn ja kannst du mir zeigen/erklären wie es richtig ist?

  • Als Beispiel - /healme - ein Befehl ohne Parameter


    Und - /heal (ID) - ein Befehl mit Parameter


    diese Parameter kann man mit Hilfe von sscanf splitten.


    new ID; // nötig
    if(sscanf(params,"i",ID)) ...


    Das "i" steht für Integer, weil ID eine Nummer ist. Da du bei deinem Befehl (/name (text)) einen String ausgeben willst, benötigst du "s".


    Also:


    new string[128];
    if(sscanf(params,"s",string)) ...
    Params = Parameter
    In diesem Fall ist String unser Parameter ( String = Der text, den der Spieler nach /name eingibt.


    Es gibt hier im Forum übrigens gut erklärte Tutorials zu Befehlen mit Parametern^^

  • Mal ein kleiner Spaß neben bei aber ist ja sehr social von dir das du den Spieler noch mal dran errinserst was er geschrieben hat ;)


    format(params,128,"Du hast /name (%s) eingegeben!",params);

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen