Chat: blood sagt: wie?

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
  • Guten Tag liebe Com.,
    ich habe da eine kurzte frage.
    Wir kann ich es machen das wenn jemand schreibt Hi das da nichtnur steht:
    Blood: xD Test
    sondern Blood sagt: xD Test
    oder wwenn jemand /s macht das es einen weiter entfernung hat und bei /f eine ganz kleine.
    Ich hoffe ihr wisst was ich meine.
    mfg


    //Edit Überschrift


    Bewerte mich und meine Transaktionen als Mittelsmann

  • if(strfind(text,"Hi",true,0) != -1)
    {
    new string[256];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s sagt: Hi", text, sendername);
    ProxDetector(20.0, playerid, string,Weiss,Weiss,Weiss,Weiss,Weiss);
    return 1;
    }

  • Soweit ich den Code verstehe steht dort nur ... sag: wenn der Spieler Hi sagt.
    Oder versteh ich das falsch?
    Ich kann das wohl schlecht alleine testen.
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Meinee güüte :D XD


    Also


    format(string, sizeof(string), "%s sagt: Hi", text, sendername);


    %s steht für den Spielernamen, also z.b. Blood


    den rest kanst dir ja denken


    Beispiel:


    Blood sagt: Hi


    Das "Hi" musst du Selbstverständlich rausnehmen, sonst steht bei jedem Chat "Hi" davor, Beispiel (ich sage "Hallo")


    Fanta sagt: Hi Hallo



    Also:


    format(string, sizeof(string), "%s sagt: ", text, sendername);

    mfg

  • Habe des jez so:
    if(strfind(text,"Hi",true,0) != -1)
    {
    new string[256];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s sagt:", text, sendername);
    ProxDetector(20.0, playerid, string,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
    return 1;
    }
    Wenn ich jetzt aber was schreibe steht da trotzdem nur blood: text
    Und wenn ich hi schreibe steht da:
    hi sagt:
    Blood:hi
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • format(string, sizeof(string), "%s sagt:", text, sendername);
    Durch
    format(string, sizeof(string), "%s sagt: %s", sendername, text);
    ersetzen ..

    Bin weg, Tschau! (Account kann gelöscht werden)

  • auf onplayertext


    public OnPlayerText(playerid,text[])
    {
    new name[MAX_PLAYER_NAME],string[200];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,sizeof(string),"%s sagt: %s",name,text);
    SendClientMessageToAll(0xDEEE20FF,string);
    return 1;
    }


    //edit sry phenix ^^ haben es gleichzeitig

  • Danke an dich NeoPhoenix und danke an dich Der_Scripter95,
    jedoch soll es ja nicht an alöle gesendet werden sondern nur an
    die Leute im umkreis von 20 Koordinaten.
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • public OnPlayerText(playerid, text[])
    {
    new Float:x,Float:y,Float:z,name;
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,30.0,x,y,z))
    {
    new string[128];
    format(string,sizeof(string),"%s sagt: %s",name, text);
    SendClientMessage(i,0xF0F0F0FF, string);
    }
    }
    return 0;
    }


    Da!

  • Danke schön.
    Es klappt auch alles wunderbar ich habs jedoch ein wenig anders gemacht naja trotzdem danke.
    Jetzt noch 2 Fragen wie mache ich es mit /s [Text] Blood schreit: ______________!!!
    und /p [Text](Public)Blood sagt:________________
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Schreien.
    COMMAND:s(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    new text[128],name;
    if(sscanf(params, "s",text))return SendClientMessage(playerid,0xC8C8C8FF,"/s [Text]");
    GetPlayerPos(playerid,x,y,z);
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,60.0,x,y,z))
    {
    new string[128];
    format(string,sizeof(string),"%s schreit: %s!!!",name,text);
    SendClientMessage(i,0xFFFFFFFF, string);
    }
    }
    return 1;
    }
    Global:
    COMMAND:p(playerid,params[])
    {
    new text[128]name;
    if(sscanf(params, "s",text))return SendClientMessage(playerid,0xC8C8C8FF,"/p [Text]");
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    {
    new string[128];
    format(string,sizeof(string),"%s: (( %s ))",name,text);
    SendClientMessageToAll(0xFFFFFFFF, string);
    }
    return 1;
    }


    */Edit:
    Code geändert, hatte noch ne falsche Zeile bei /p drin.
    Funktioniert es denn?

  • Nein leider nicht.
    Ich habs aber geschafft mir selber zu helfen.
    Wer es brauch hier bitte:
    ocmd:s(playerid,params[])
    {
    new string[128],nachricht,sender[MAX_PLAYER_NAME];
    if(sscanf(params,"s",nachricht))return SendClientMessage(playerid,COLOR_GRAD2,"INFO: /s [Text]");
    GetPlayerName(playerid, sender, sizeof(sender));
    format(string,sizeof(string),"%s schreit: %s !!!",sender,nachricht);
    ProxDetector(50.0, playerid, string,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
    return 1;
    }
    ocmd:ooc(playerid,params[])
    {
    new string[128],nachricht,sender[MAX_PLAYER_NAME];
    if(sscanf(params,"s",nachricht))return SendClientMessage(playerid,COLOR_GRAD2,"INFO: /ooc [Text]");
    if(pInfo[playerid][admin] > 1)
    {
    GetPlayerName(playerid, sender, sizeof(sender));
    format(string,sizeof(string),"(( Admin: %s: %s ))",sender,nachricht);
    SendClientMessageToAll(COLOR_WHITE,string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Admin!");
    }
    return 1;
    }


    Bewerte mich und meine Transaktionen als Mittelsmann