Was ist daran Falsch ?

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
  • Guten Tag,
    Ich arbeite gerade an meinen Script und ich weiß nicht was daran Falsch ist, hier ist der Code:


    Code:
    new string[180];
    format(string,180,"[%s] %s sagt: %s",Spielerrang,SpielerName(playerid),text);


    Hier Spielerrang:
    stock Spielerrang(playerid)
    {
    new rang[54]
    switch(Spielerdatei[playerid][Spielerrang])
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }


    Error´s:
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(144) : error 076: syntax error in the expression, or invalid function call

  • Was Firerfan gesagt hat, und:


    format(string,180,"[%s] %s sagt: %s",Spielerrang,SpielerName(playerid),text);


    zu:
    format(string,180,"[%s] %s sagt: %s",Spielerrang(playerid),SpielerName(playerid),text);


    123marvin123:
    Du kannst in der gleichen Funktion nicht einmal einen string und einmal einen Integer zurückgeben.


  • Doch kann man schon. Aber ist eigentlich nicht nötig, weil er schon etwas im switch zurück gibt

  • Das von 123marvin123 wenn ich das benutze sürtzt mein Compiler ab und wenn ich den Code von Jeffry habe bekomme ich 4 Errors ^^


    stock Spielerrang(playerid)
    {
    switch(Spielerdatei[playerid][Spielerrang])
    {
    case 0:{return "Neuling";}
    case 1:{return "Einwanderer";}
    default:{return "Error";}
    }
    }


    Versuch es mal so

  • Das ist auch falsch. Mach es mit dem format, wie du.
    Edit: Achso, du hast ja kein format :D

    Code
    format(rang, sizeof rang, "Neuling");

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Versuch es so:

    new string[128];
    format(string,sizeof(string),"[%s] %s sagt: %s",Spielerrang(playerid),SpielerName(playerid),text);


    stock Spielerrang(playerid)
    {
    new rang[25];
    switch(Spielerdatei[playerid][Spielerrang])
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }

  • Doch kann man schon. Aber ist eigentlich nicht nötig, weil er schon etwas im switch zurück gibt


    Nein, kann man nicht. :pinch:


    stock Spielerrang(playerid)
    {
    new rang[54];
    switch(Spielerdatei[playerid][Spielerrang])
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }

    Das hast du schon richtig gemacht, nur eben das Semikolon vergessen.


    EDIT:
    Letzteres von 123marvin123 ist das Selbe, das tut.

  • Errors
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(332) : warning 202: number of arguments does not match definition
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(403) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(403) : error 029: invalid expression, assumed zero
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(403) : error 029: invalid expression, assumed zero
    C:\Users\Brandon\Desktop\Selfmade\gamemodes\HGBrandon.pwn(403) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Zeile:
    switch(Spielerdatei[playerid][Spielerrang])

  • stock Register(playerid,key[],rang)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Geld",0);
    dini_IntSet(Spielerdatei,"Spielerrang",rang);
    SetPVarInt(playerid,"eingeloggt",1);
    return 1;
    }

  • stock Spielerrang(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    new rang[54];
    switch(strval(dini_Get(Spielerdatei,"Spielerrang",rang)))
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }


    Ich kann dir aber nur dringends raten, variablen zu benutzen. Normalerweise sage ich ja nichts zur Code-Geschwindigkeit, aber stats nur über files zu verarbeiten, ist EXTREM langsam. ^^