Schreien Befehl

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
  • Hey ich habe ein Befehl versucht zu erstellen doch es kommt wenn ich /s eingebe nur xXx schreit:


    Mein Befehl:


    ocmd:s(playerid,params[])
    {
    new Float:xs,Float:ys,Float:zs;
    new string[128], text[128];
    GetPlayerPos(playerid, xs, ys, zs);
    format(string,sizeof(string), "%s schreit: %s", SpielerName(playerid), text);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_SCHREI, xs, ys, zs))continue;
    SendClientMessage(i, WEISS, string);
    }
    return 1;
    }


    Keine Errors oder sonstiges


  • ocmd:s(playerid,params[])
    {
    new Float:xs,Float:ys,Float:zs;
    new string[128], text[128];
    GetPlayerPos(playerid, xs, ys, zs);
    if(sscanf(params, "s[128]", text))return SendClientMessage(playerid, WEISS, "Benutze /s [Text]");
    format(string,sizeof(string), "%s schreit: %s", SpielerName(playerid), text);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_SCHREI, xs, ys, zs))continue;
    SendClientMessage(i, WEISS, string);
    }
    return 1;
    }

    • Offizieller Beitrag

    liegt daran, dass der String Text nicht gefüllt wird. Ich empfehle hier die Nutzung von sscanf 2.0


  • Danke dafür ihr beiden aber musste das s[128] zu s ändern


    @Whice.


    Weißt du zufällig wie das andere Server z.B machen z.B wenn sie /f eingeben das dann da steht /(f)amily das sie dann z.B auch /family eingeben können um den f chat zu benutzen? denn ich habe jetzt auch noch einen flüstern chat erstellt aber es kommt die fehlermeldung das es halt ocmd:f schon gibt aber will gerne f auch fürs flüstern benutzen...

    Einmal editiert, zuletzt von KinGRaPTiiC ()

  • Vllt geht es mit mein Code.



    ocmd:s(playerid, params[])
    {
    new result[128], text[145];
    if(sscanf(params, "s", result))return SendClientMessage(playerid, 0xF50000FF, "Befehl:{FFFFFF} /schreien [Nachricht]");
    new name[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    GetPlayerPos(playerid, x, y, z);
    format(text, sizeof (text), "%s schreit: %s", name, result);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i,50.0, x, y, z))
    {
    SendClientMessage(i, 0xBEBEBEFF, text);
    }
    }
    return 1;
    }

    • Offizieller Beitrag

    z.B auch /family eingeben können um den f chat zu benutzen?

    Einfach statt ocmd:f(playerid, params[]) folgendes ocmd@2:f,family(playerid, params[])
    Jenes geht nur wenn du das neueste OCMD Include nutzt.



    ocmd:f schon gibt aber will gerne f auch fürs flüstern

    Für das fällt mir ehrlich gesagt keine Lösung ein, da du ja nicht abfragen kannst ob der Spieler grade mit der Fraktion oder Flüstern möchte, es sei denn du musst bei /f noch etwas weiteres ergänzen

  • Weiß einer was Falsch ist?


    ocmd:w(playerid,params[])
    {
    new Float:xf,Float:yf,Float:zf;
    new string1[128], text[128],string2[128], pID;
    if(sscanf(params, "ss", pID,text)) return SendClientMessage(playerid, WEISS, "Verwendung: /f [playerid/name] [Text]");
    format(string1,sizeof(string1), "%s flüstert zu %s", SpielerName(playerid), SpielerName(pID));
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_FLUESTER, xf, yf, zf))continue;
    SendClientMessage(i, WEISS, string1);
    format(string2,sizeof(string2), "%s flüstert zu dir: %s", SpielerName(playerid), text);
    SendClientMessage(playerid,WEISS,string2);
    }
    return 1;
    }


    Wenn ich /w [id] text eingebe kommt einfach garnichts...

    • Offizieller Beitrag

    Du musst die Position noch auslesen, sonst ist es halt 0, 0, 0. Weiterhin hast du bei der sscanf Abfrage was verwechselt und die Message geht an den falschen.



    //Edit Die Nachricht würde so auch gespammt werden also lieber so