format+SendClientMessage im Doppelpack?

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 bin es Leid dauernd diese formatierungen + SendClientMessage zu schreiben
    und wollte so eine Art "formatEx" scripten, aber ich bekomme nur Errors :D
    Könnt ihr mir sagen, wie ich das machen kann?
    Ich habe es so versucht:


    Code
    stock formatEx(playerid,color,output[], len, const format[], {Float,_}:...) {format(output, len, const format, {Float,_}:...); SendClientMessage(playerid,color,format);}


    /e:
    Hier die Errors:


  • So würde das einfach nur verdammt umständlich werden
    Machs als Define oben:

    new sendstring[128];
    #define SendFormatMessage(%1,%2,%3,%4) format(sendstring,128,(%3),%4); SendClientMessage(%1,%2,sendstring)


    Ungetestet, müsste aber gehen.

  • mach es dir doch ganz leicht


    #define SendFormatedMessage(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
    new bool:FALSE=false;


    wenn du deine eigenen formatexe stock schreiben willst verwendet man dazu
    numargs();
    getarg(arg, index=0);
    setarg(arg, index=0, value);

  • Manno es geht nicht ;(


    Firerfan's Version
    Code

    Spoiler anzeigen
    new sh12string[128]; //formatEx
    #define formatEx(%1,%2,%3,%4) format(sendstring,128,(%3),%4); SendClientMessage(%1,%2,sh12string)

    Spoiler anzeigen
    formatEx(playerid,bBlau,"Du bist ein Level aufgestiegen! Du bist nun Level %i",PlayerInfo[playerid][pLevel]);


    Error

    Code
    C:\Users\Narushi\Desktop\samp\New-Evolution-Reallife\gamemodes\SelfmadeBT.pwn(1001) : error 076: syntax error in the expression, or invalid function callPawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase1 Error.


    Prototype's Version
    Code

    Spoiler anzeigen

    #define SendFormatedMessage(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
    new bool:FALSE=false;

    Spoiler anzeigen
    formatEx(playerid,bBlau,"Du bist ein Level aufgestiegen! Du bist nun Level %i",PlayerInfo[playerid][pLevel]);


    Errors

    Code
    C:\Users\Narushi\Desktop\samp\New-Evolution-Reallife\pawno\include\sh12.inc(21) : error 012: invalid function call, not a valid addressC:\Users\Narushi\Desktop\samp\New-Evolution-Reallife\pawno\include\sh12.inc(21) : error 017: undefined symbol "output"C:\Users\Narushi\Desktop\samp\New-Evolution-Reallife\pawno\include\sh12.inc(21) : error 029: invalid expression, assumed zeroC:\Users\Narushi\Desktop\samp\New-Evolution-Reallife\pawno\include\sh12.inc(21) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase4 Errors.

  • formatEx(playerid,bBlau,"Du bist ein Level aufgestiegen! Du bist nun Level %i",PlayerInfo[playerid][pLevel]);

    klar das es nicht geht:


    #define SendFormatedMessage(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
    new bool:FALSE=false;


    zu


    #define formatEx(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
    new bool:FALSE=false;


    was auch noch gehen würde wäre das.



    new str2[128];
    #define formatEx(%0,%1,%2,%3) format(str2,128,%2,%3) && SendClientMessage(%0, %1, str2)