cop 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
  • Ich hab mal ocmd benutzt:


    Über OnGameModeInit:
    new dasgeld;
    new dercop[MAX_PLAYER_NAME];
    new derspieler[MAX_PLAYER_NAME];
    new dercopid;


    ocmd:ticket(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,3))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Cop!");
    new player, cop[MAX_PLAYER_NAME], user[MAX_PLAYER_NAME], money, reason[512];
    new chatu[512], chata[512];
    if(sscanf(params,"uis",player,money,reason))return SendClientMessage(playerid, 0xA0A0A0FF, "Benutze: /ticket [Name/ID] [Preis] [Grund]");
    if(isPlayerInFrakt(player,3))return SendClientMessage(playerid,0xA0A0A0FF,"Du kannst keinem Cop ein Ticket ausstellen!");
    if(!IsPlayerConnected(player))return SendClientMessage(playerid,0xA0A0A0FF,"Dieser Spieler ist nicht online!");
    if(money < 0 || money > 99999)return SendClientMessage(playerid,0xA0A0A0FF,"Das Ticket kann nicht weniger als $0 oder mehr als $99999 betragen!");
    GetPlayerName(playerid,cop,sizeof(cop));
    GetPlayerName(player,user,sizeof(user));
    format(chatu,sizeof(chatu),"Polizist %s hat dir ein Ticket in Höhe von $%d ausgestellt. Grund: %s",cop,money,reason);
    format(chata,sizeof(chata),"Du hast %s ein Ticket in Höhe von $%d ausgestellt. Grund: %s",user,money,reason);
    SendClientMessage(player,0x00CDFFFF,chatu);
    SendClientMessage(playerid,0x00CDFFFF,"Tippe /acceptticket um das Ticket zu akzeptieren!");
    SendClientMessage(playerid,0x00CDFFFF,chata);
    SetPVarInt(player,"ticketbek",1);
    dercop = cop;
    derspieler = user;
    dercopid = playerid;
    dasgeld = money;
    return 1;
    }


    ocmd:acceptticket(playerid,params[])
    {
    if(GetPVarInt(playerid,"ticketbek")!=1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast kein Ticket bekommen!");
    new chatu[256], chata[256];
    format(chatu,sizeof(chatu),"Spieler %s hat das Ticket in höhe von $%d bezahlt!",derspieler,dasgeld);
    format(chata,sizeof(chata),"Du hast das Ticket in Höhe von $%d bezahlt.",dasgeld);
    GivePlayerMoney(playerid,-dasgeld);
    SendClientMessage(dercopid,0x00CDFFFF,chatu);
    SendClientMessage(playerid,0x00CDFFFF,chata);
    SetPVarInt(playerid,"ticketbek",0);
    return 1;
    }


    Sscanf Code:
    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':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    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;
    }

    Einmal editiert, zuletzt von n0skillg3t ()