Wanted Level Script

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
  • Hi habe schon "suche genutzt" aber nichts passendes gefunden...


    Also^^
    Kann mir jemand helfen ein Wanted level script zu machen wo man den befehl hat /wanted playerid sterne 0-6
    Und die Sterne sollen am besten wie in sp angezeigt werden^^
    Der Befehl soll natürlich nur für admins sein und wen ein spieler von admin ein wanted level kriegt soll das in chat an alle geschrieben werden und nochwas!
    Ich habe in meinem server schon überall wanted Sterne als Pickups plaziert und wen man dan einen einsammelt soll man dan wieder ein Stern verlieren und wen man stirbt soll man alle verlieren.
    Bitte helft mir :D


  • #include <a_samp>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    #define WHITE 0xFFFFFF00


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(wlevel, 6, cmdtext);
    return false;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPlayerWantedLevel(playerid, 0);
    return true;
    }


    dcmd_wlevel(playerid, params[])
    {
    new typ, wanteds, s[128];
    if(!IsPlayerAdmin(playerid)) return false;
    if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
    if(typ == INVALID_PLAYER_ID)
    {
    format(s,sizeof(s),"* Die ID %d ist nicht vergeben.",typ);
    SendClientMessage(playerid, WHITE, s);
    return true;
    }


    SetPlayerWantedLevel(typ, wanteds);


    format(s, sizeof (s), "* %s hat %s (ID: %d) %d WantedLevel gegeben.", GetPlayerName(playerid,s, sizeof(s)),GetPlayerName(typ,s, sizeof(s)),typ, s);
    SendClientMessageToAll(WHITE, s);
    return true;
    }


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {
    setarg(paramPos, 0, _:floatstr(string[stringPos]));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

  • WOW sieht ja schonmal super geil aus! Ej das ging aber schnell ich meine so ein großer command und so schnell^^ WOW echt danke probiere ich gleich mal aus!! 8o8o8o


    Edit:


    Also das geht schonmal ganz gut nur noch 3 Sachen :rolleyes:


    1.Wen ich egal wie viele wanted level gebe steht "* hat (id0) 83 Wanted level gegeben also es steht immer 83 und der Name fehlt oder manchaml steht id statt den namen.
    Und wen ich falsche id oder namen eingebe dan steht immer id 255 ist nicht vergeben auch wen ich id sagen wir mal 13 nehme dan steht wen es die nicht giebt id 255 nicht vergeben.


    2. Es soll bitte nur bis 6 Wanted sterne gehen und wen man 6 oder mehr macht dan kommt nochmal die narchicht wie das funkt also /wlevel id/name 1-6


    3. Und 3. und letzens wen ich ein wanted Stern pickup einsammel soll man ein level verlieren und wieder die massage zu allen kommen das ... jetzt nun so und soviel level hat...
    Wie mach ich das dan?

    new wanted1;


    wanted1 = CreatePickup(1247, 3, X, Y, Z);


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == wanted1)
    {
    SetPlayerWantedLevel(playerid, -1);
    }

    Oder wie?


    Auf jedenfall schonmal sehr großes danke schön für das script und ich wäre sehr dankbar falls du noch die 3 Sachen machst! :thumbup::thumbup::thumbup:

    2 Mal editiert, zuletzt von SkaterDenis ()

  • Ungetestet, ist ein Filterscript.



    #include <a_samp>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    #define WHITE 0xFFFFFF00


    new WantedPickup;


    public OnGameModeInit()
    {
    WantedPickup = CreatePickup(1247, 3, X, Y, Z);
    }



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(wlevel, 6, cmdtext);
    return false;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPlayerWantedLevel(playerid, 0);
    return true;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == WantedPickup && GetPlayerWantedLevel(playerid) > 0)
    {
    SetPlayerWantedLevel(playerid, --);
    }
    }


    dcmd_wlevel(playerid, params[])
    {
    new typ, wanteds, name[MAX_PLAYER_NAME],tname[MAX_PLAYER_NAME], s[128];
    if(!IsPlayerAdmin(playerid)) return false;
    if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
    if(typ == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, WHITE, "* Diese ID ist nicht vergeben.");
    return true;
    }
    if(wanteds < 0 || wanteds > 6) return SendClientMessage(playerid, WHITE, "* Es darf nicht weniger als 0 und nicht mehr als 6 Wanteds vergeben werden.");
    SetPlayerWantedLevel(typ, wanteds);
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(playerid, name, sizeof(name));
    format(s, sizeof (s), "* %s hat %s (ID: %d) WantedLevel %d gegeben.", name, tname, typ, wanteds);
    SendClientMessageToAll(WHITE, s);
    return true;
    }


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {
    setarg(paramPos, 0, _:floatstr(string[stringPos]));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

  • Ok hier schonmal ein großes Dankeschön aber ein bug ist noch da!
    Wen ich 0 wanted sterne habe und ein wantedpickup einsammle dan passiert garnichts das ist ja gut!
    Aber wen ich 1 oder mehrere Sterne habe und ein wantedpickup einsammle dan kriege ich auf einmal 6 Sterne statt -1...

  • Da ist noch eine kleine unwichtige Sache aber trotzdem^^


    Wen man Pickup einsammelt verschwindet es nicht... aber man kann es nicht nochmal benutzen...


    Also nochmal wen man das erste mal reingeht verliert man nen Wanted stern aber das Pickup verschwindet nicht sondern bleibt da nur wen man nochmal reingeht passiert nichts!


    Sonst ist es fertig und alles andere Funktioniert super gut!

    3 Mal editiert, zuletzt von SkaterDenis ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wieso verschwinden die überhaupt nicht? Erst wen man weiter weg fährt dan sind die weg... aber so lange man da ist verschwindet wanted level pickup nciht nachdem man es einsammelt... woran kann das überhaupt liegen?

  • Also geht der Fehler nicht mehr zu korigieren?...
    Naja schade auf jedenfall!




    ABER SONST DANKE AN ALLE DIE MITGEHOLFEN HABEN!!!
    Es funktioniert jetzt einwandfrei! Mit euch allen zusammen haben wir jetzt meiner Meinung nach das beste Wanted-Level script gemacht das es gibt^^
    Also nochmal das komplette script ohne Errors:



    #include <a_samp>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    #define WHITE 0xFFFFFF00


    new WantedPickup;


    public OnFilterScriptInit()
    {
    // WantedPickup = CreatePickup(1247, 3, X, Y, Z);
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == WantedPickup && GetPlayerWantedLevel(playerid) > 0)
    {
    if(GetPlayerWantedLevel(playerid) > 0 ) { SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)-1); }
    }
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(wlevel, 6, cmdtext);
    return false;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPlayerWantedLevel(playerid, 0);
    return true;
    }


    dcmd_wlevel(playerid, params[])
    {
    new typ, wanteds, name[MAX_PLAYER_NAME],tname[MAX_PLAYER_NAME], s[128];
    if(!IsPlayerAdmin(playerid)) return false;
    if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
    if(typ == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, WHITE, "* Diese ID ist nicht vergeben.");
    return true;
    }
    if(wanteds < 0 || wanteds > 6) return SendClientMessage(playerid, WHITE, "* Es darf nicht weniger als 0 und nicht mehr als 6 Wanteds vergeben werden.");
    SetPlayerWantedLevel(typ, wanteds);
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(playerid, name, sizeof(name));
    format(s, sizeof (s), "* %s hat %s (ID: %d) WantedLevel %d gegeben.", name, tname, typ, wanteds);
    SendClientMessageToAll(WHITE, s);
    return true;
    }


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {
    setarg(paramPos, 0, _:floatstr(string[stringPos]));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }


    Sehr großes danke schön! :thumbup: :thumbup: :thumbup: