/strafzettel CMD

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,


    Ich wollte gerne das man jemandem strafzettel geben kann ich hab nur keine ahnung wie ich das machen soll dsa man neben dem auto steht und dan z.b. /strazettel [preis] eingeben muss und so das der strafzettel auch bis zum restart bleibt ich hoffe ihr könnt mir helfen oder hab nen guten link


    MFG Philipp

  • so weit bin ich schonma aber ich weiss nicht weiter ?!!



    if (strcmp("/straffzettel",cmd,true) == 0)
    {
    if(SpielerInfo[playerid][Job] == 1 || SpielerInfo[playerid][Admin] > 4)
    {
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_GRAD2, "INFO: straffzettel [preis]");
    new ppreis = strval(tmp);
    new mess[128];
    new Float:CopX;
    new Float:CopY;
    new Float:CopZ;
    GetPlayerPos(playerid, CopX, CopY, CopZ);
    //Wie find ich jetzt hier das car ??? und wen jmd einsteigt muss er zahlen
    format(mess,sizeof(mess),"Du hast einen Straffzettel in höhe von %s verteilt",ppreis);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"du bist kein Cop /admin");
    }
    return 1;
    }


    Ich weiss echt nich weiter
    ich nutz kein GF ?!
    aber danke für die antwort

  • Wie wärs mit dcmd? Mag ich ja besonders :D
    dcmd_strafzettel(playerid,params[]) {new id, strafgeld;if(sscanf(params, "ud",id,strafgeld)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutze: /strafzettel [ID][Geld]!");
    }
    if (id == INVALID_PLAYER_ID){
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    if (id == playerid){
    return SendClientMessage(playerid,COLOR_RED,"Du kannst dir nicht selber einen Strafzettel geben!");
    }
    new polizist[MAX_PLAYER_NAME], bestrafter[MAX_PLAYER_NAME], string1[128],string2[64];
    if(SpielerInfo[playerid][Job] == 1 || SpielerInfo[playerid][Admin] > 4)


    {
    GetPlayerName(playerid,polizist,sizeof(polizist));
    GetPlayerMoney(id);
    GivePlayerMoney(id,-strafgeld);


    format(string,sizeof(string),"Du hast einen Strafzettel bekommen von %s! (Höhe: %d)",polizist, strafgeld);
    SendClientMessage(id, 0xFF6633FF,string);return 1;}}


    Code ist nicht getestet sollte aber gehen.
    Achja unter OnPlayercommandText muss noch folgendes reindcmd(strafzettel,11,cmdtext);

  • könnte mir jemand das auf strcmp umschreiben ???? wen ichs mach kommen immer errors


    Mit Freundlichsten Grüßen
    Philipp


    Ja ne is kla wenn du denn dcmd Makro nicht hasst diesen findest du hier: Link dort lernst du auch wie dcmd geht.

    "Solange es Menschen gibt, wird es Kriege geben"
    (Albert Einstein)

  • ich brauch da n bischen hilfe


    error:
    C:\Documents and Settings\Owner\My Documents\SamP\gamemodes\reallife.pwn(4550) : error 017: undefined symbol "sscanf"



    dcmd_strafzettel(playerid,params[])
    {
    new id, strafgeld;
    new string[128];
    if(sscanf(params, "ud",id,strafgeld))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutze: /strafzettel [ID][Geld]!");
    }
    if (id == playerid){
    return SendClientMessage(playerid,COLOR_RED,"Du kannst dir nicht selber einen Strafzettel geben!");
    }
    new polizist[MAX_PLAYER_NAME];
    if(SpielerInfo[playerid][Job] == 1 || SpielerInfo[playerid][Admin] > 4)


    {
    GetPlayerName(playerid,polizist,sizeof(polizist));
    GetPlayerMoney(id);
    GivePlayerMoney(id,-strafgeld);


    format(string,sizeof(string),"Du hast einen Strafzettel bekommen von %s! (Höhe: %d)",polizist, strafgeld);
    SendClientMessage(id, 0xFF6633FF,string);
    return 1;
    }
    return 1;
    }


    Ich hab Dcmd noch nie benutz also sry bin absoluter noob in Dcmd


    mfg philipp


    Edit ich habs aber danke. Hier man musses nur definieren xD sehr helle von mir :D


    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;
    }