Wie scripte ich ein %S

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
  • Du findest am besten den namen durch einen stock raus, der dir den namen returnt...
    dann kannst du texte mit format() formatieren, und danach mit sendclientmessage senden...
    natürlich brauchst du dafür einen stock sName()
    könnte in etwa so ausehen:


    stock sName(playerid)
    {
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName);
    return pName
    }

  • meinst du so?



    public OnPlayerDeath(playerid, killerid, reason)
    {
    new lol[128];
    format(lol,sizeof(lol),"Du wurdest von %s getötet!",sname(killerid));
    SendClientMessage(playerid,ROT,lol);
    return 1;
    }
    stock sname(playerid)
    {
    new lol[MAX_PLAYER_NAME];
    GetPlayerName(playerid,lol,sizeof(lol));
    return lol;
    }


  • also %s sind immer texte wie ein name z.b. diesen rauszufinden hast du ha schon bespiele bekommen.
    du hast. z.b. GetPlayerName(playerid,name,sizeof(name)); und um den namen anzeigen zu lassen benutzt du %s wie in diesem beispiel


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name); das ,name ist dann das %s.


    ich hoffe ich konnte dir helfen.

  • killerid ist schon gescriptet. Ich weiß nicht wie man per Script abfragen kann wer wen getötet hat, OHNE KillerID zu benutzen. Also durch ne If schleife oder so..
    Dafür hast du die fertig gescripteten ja schon. Ich denk mal es kommt drauf an wofür du es brauchst.


    MfG Tomsen

  • Ganz leicht,
    als aller erstes erstellt man ein String :


    new string[64];


    Wenn du das %s einem Spieler geben willst der diesen Befehl etc. ausführt:


    new Spieler[64];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));


    Dann Formatierst du es zu einem Text um :


    format(string,sizeof(string),"Ich bin %s", Spieler); // Der Spieler der den Befeht etc. ausführt ird als %s beschrieben!


    Noch Fragen?

  • Das meint er nicht!


    Er meint wie er zB. abfragen kann ob ein Spieler jmd. getötet hat so das man überhaupt etwas hat um es durch %s zu ersetzen. Aber wie gesagt, man kann es zB. bei selbstgemachten Fragen abfragen, wie ein Adminsystem. Gehst alle Spieler durch und schaust ob das Adminlevel höher ist als 0. Diese sind Admins. So kannst du die dann mit paar anderen Sachen zu nem /Admins Befehl zusammen basteln.


    Aber Sachen wie zB. abfragen ob Spieler A Spieler B getötet hat. Irgentwie müsste es dann ja ne Variable bei Spieler A setzen wer ihn gekillt hat, und eine bei dem Killer.
    Aber wie gesagt, unnötig, weil es gibt ja Killer ID.
    Also wie gesagt, man kann das nicht allgemein sagen ohne zu wissen was du damit dann machen willst.


    MfG Tomsen