[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Warum entdekce ich keinen fehler trotzdem errors?:
    D:\Users\Admin\Desktop\gg.pwn(14536) : error 029: invalid expression, assumed zero
    D:\Users\Admin\Desktop\gg.pwn(14536) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(14536) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(14536) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(14536) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(14536) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(14536) : error 001: expected token: ";", but found ")"
    D:\Users\Admin\Desktop\gg.pwn(14536) : error 029: invalid expression, assumed zero
    D:\Users\Admin\Desktop\gg.pwn(14536) : fatal error 107: too many error messages on one line


    Zeile:
    if(PlayerInfo[i][pLevel] == 1 && PlayerInfo[i][pRespekt] == 4)
    {
    SendClientMessage(i, COLOR_LIGHTBLUE, "Info).");
    ShowPlayerDialog(i, DIALOG_gg, DIALOG_STYLE_MSGBOX, "Info", "Testn" ,"Annehmen", "Abbrechen");
    return 1;
    }


    #define DIALOG_gg


    if(dialogid == DIALOG_gg)
    {
    if(response == 0)
    {
    SendClientMessages(playerid, COLOR_LIGHTBLUE, "wf.");
    }
    if(response == 1)
    {
    SendClientMessages(playerid, COLOR_LIGHTBLUE, "few.");
    }
    } Danke im vorraus

  • #define DIALOG_gg
    Du musst dem Dialog auch einer Zahl zuweisen.
    Wenn du das nicht machen möchtest, kannst du das auch ganze einfach so machen:
    enum
    {
    DIALOG_gg
    };
    Bei weiteren musst du den vorherigen immer mit einem Komma von einander trennen, der letzte braucht allerdings kein Komma.

  • Was daran falsch?
    if(strcmp("/job", cmd, true) == 0 || strcmp("/j", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[84];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: (/j)ob");
    return 1;
    }
    if(PlayerInfo[playerid][pJob] != -1)
    {
    format(string, sizeof(string), "**%s %s: %s",PlayerInfo[playerid][pJob]),sendername, result);//Error Zeile
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast keinen Job !");
    return 1;
    }
    }
    return 1;
    }


    forward SendJobMessage(job, color, string[]);


    D:\Users\Admin\Desktop\gg.pwn(16975) : warning 215: expression has no effect
    D:\Users\Admin\Desktop\gg.pwn(16975) : error 001: expected token: ";", but found ")"

  • format(string, sizeof(string), "**%s %s: %s",PlayerInfo[playerid][pJob],sendername, result);
    Da war eine Klammer zu viel ;)

  • Warum bekommt man massen an Geld?
    else if(!PlayerInfo[i][pFestPD] && PlayerInfo[i][pFestgeld] != 0){
    new Float:tmp_brx = PlayerInfo[i][pFestgeld]*0.035;
    format(string,sizeof(string),"Die Bank dir $%d überwiesen + einen Zinssatz von ca. 3%(%d)", PlayerInfo[i][pFestgeld], tmp_brx);
    SendClientMessage(i,-1,string),PlayerInfo[i][pBank]+=tmp_brx;
    PlayerInfo[i][pFestgeld]=0, PlayerInfo[i][pFestPD]=0;
    }


  • dur darfst keine Float und ein Integer zusammen addieren


    Das

    PlayerInfo[i][pBank]+=tmp_brx;


    zu


    PlayerInfo[i][pBank]+= floatround(tmp_brx, floatround_ceil);

  • else if(!PlayerInfo[i][pFestPD] && PlayerInfo[i][pFestgeld] != 0)
    {
    new Float:tmp_brx = PlayerInfo[i][pFestgeld]*0.035;
    format(string,sizeof(string),"Die Bank dir $%0.2f überwiesen + einen Zinssatz von ca. 3%% ($%0.2f)", PlayerInfo[i][pFestgeld], tmp_brx);
    SendClientMessage(i,-1,string),PlayerInfo[i][pBank]+=tmp_brx;
    PlayerInfo[i][pFestgeld]=0, PlayerInfo[i][pFestPD]=0;
    }


    Unter der Voraussetzung, dass pFestgeld als Float deklariert wurde.


  • Wie kann ich das anderst machen?

  • JobDaten[jobid][cpTextLabel] ist ein Integer. Der Fehler trat auf, als ich "JobDaten[jobid][cpTextLabel] = " davorgeschrieben habe.

    Code
    warning 213: tag mismatch


    JobDaten[jobid][cpTextLabel] = Create3DTextLabel(str, 0xFFFF00FF, JobDaten[jobid][cpPickupPosX], JobDaten[jobid][cpPickupPosY], JobDaten[jobid][cpPickupPosZ], 50, 0);