Beiträge von Pluto

    Hallo zusammen,
    ich habe hier noch mein selfmade-script aufem rechner rumfliegen, aber möchte damit kein projekt starten da die samp spieler von monat zu monat weniger werden.
    Allerdings möchte ich es auch nich vergammeln lassen :D
    Verkaufen würde nix bringen da man keine käufer findet die mehr als 30 euro zahlen.
    Habt ihr irgendwelche vorschläge was ich damit machen kann/soll?

    Wenn du so weiter machst dann schreibt breadfish dein ganzes script ;)


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


    public OnPlayerCommandText
    {
    dcmd(money,5mcmdtext);


    dann den befehl ganz unter script


    dcmd_money(playerid,params[])
    {
    new pID;
    new Geld2;
    new string[128],string2[128];
    if(Spieler[playerid][Adminlevel] >= 3)
    {
    if(sscanf(params,"ui",pID,Geld2))
    {
    SendClientMessage(playerid,FARBE_WEIS,"Benutze: /money [playerid][Betrag]");
    }
    else if(pID == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid,FARBE_WEIS,"Diesen Spieler gibt es nicht.");
    }
    else if(Spieler[pID][Adminlevel] > Spieler[playerid][Adminlevel])
    {
    }
    else
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(string,sizeof(string),"Du hast das Geld von %s auf %d$ gesetzt. Grund: %s",pname,Geld2,Grund);
    format(string2,sizeof(string2),"Dein Geld wurde auf %d$ von %s gesetzt.",Geld2,name);
    SendClientMessage(playerid,FARBE_HELLBLAU,string);
    SendClientMessage(pID,FARBE_HELLBLAU,string2);
    GivePlayerMoney(pID,-GetPlayerMoney(pID));
    GivePlayerMoney(pID,Geld2);
    }
    }
    }


    falls du sscanf nicht hast dann hier


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

    Guten Tag liebe Breadfisher..


    Ich habe mir eine SMS system erstellt. Es speichert die SMS in den Scriptfiles. Ich speicher alles über dini.


    das Speichern klappt auch aber wenn ich jetzt ingame die sms abrufen will, kommt ein Dialogfenster in dem dann nur "Absender:" steht.


    eigentlich sollte in diesem Dialog stehten: "Absender: "name" und dann der Text"...


    das ist mein Befehl zum sms abrufen.


    Ich finde den doofen Fehler einfach nicht.. bitte helft mir


    if(strcmp("/showsms",cmdtext,true) == 0)
    {
    if(Spieler[playerid][smsanzahl] > 0)
    {
    new smsdatei[64];
    new string2[128];
    for(new i = 0; i<MAX_SMS;i++)
    {
    format(smsdatei,sizeof(smsdatei),"/SMS/%d.txt",i);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(!strcmp(name,dini_Get(smsdatei,"Empfanger"),true))
    {
    smsoffen[playerid] = i;
    if(Smszeigen[playerid] == 0)
    {
    new x = smsoffen[playerid];
    Smszeigen[playerid] = 1;
    new pname[MAX_PLAYER_NAME];
    format(SmsInfo[x][smstext2],128,"%s",dini_Get(smsdatei,"Text"));
    format(pname,32,"%s",dini_Get(smsdatei,"Absender"));
    format(string,sizeof(string),"Absender: %s",pname);
    format(string2,sizeof(string2),"%s",SmsInfo[x][smstext2]);
    format(string3,sizeof(string3),"%s\n%s",string,string2);
    ShowPlayerDialog(playerid,DIALOG_SHOWSMS,DIALOG_STYLE_MSGBOX,"SMSZEIGEN",string3,"Schließen","");
    }
    return 0;
    }
    }
    }
    }