Was muss diese Funktion returnen?

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
  • Ja wie gesagt ich habe bei folgender Funktion einen Warning und weiß nicht wie ich ihn behebe
    Funktion:
    stock getINI(playerid,pfad)
    {
    switch(pfad)
    {
    case 0:
    {
    new accountdatei[64];
    format(accountdatei,30,"Accounts/%s.ini",Spielername(playerid));
    return accountdatei;
    }
    case 1:
    {
    new autodatei[64];
    format(autodatei,30,"Privatfahrzeuge/%s.ini",Spielername(playerid));
    return autodatei;
    }
    }
    }
    Warning:
    C:\Users\ALEX_DSL\Desktop\SAMP Server\gamemodes\Reallife_Reloaded_V1.pwn(1312) : warning 209: function "getINI" should return a value


    Ist diese Funktion so überhaupt möglich?


    Ich hab gerade kein Plan und hoffe auf Hilfe


    /edit: Achso sieht die Funktion eigentlich aus
    stock getINI(playerid)
    {
    new accountdatei[64];
    format(accountdatei,30,"Accounts/%s.ini",Spielername(playerid));
    return accountdatei;
    }
    Ich wollte sie halt "modifizieren"^^


    MfG [COE]CodeX

  • stock getINI(playerid,pfad)
    {
    switch(pfad)
    {
    case 0:
    {
    new accountdatei[64];
    format(accountdatei,30,"Accounts/%s.ini",Spielername(playerid));
    return accountdatei;
    }
    case 1:
    {
    new autodatei[64];
    format(autodatei,30,"Privatfahrzeuge/%s.ini",Spielername(playerid));
    return autodatei;
    }
    }
    return 0;
    }

  • ne dann bekomm ich folgenden Error in der Zeile von Return 0;


    C:\Users\ALEX_DSL\Desktop\SAMP Server\gamemodes\Reallife_Reloaded_V1.pwn(1312) : error 079: inconsistent return types (array & non-array)


    Sowas wie return =/1/-1 hab ich schon ausprobiert aber der Error kommt immer

  • kannst du vllt die Verwendung deiner Nebenfunktion posten


    Ja natürlich das gehört zum Speichersystem(SII) aber sieh selbst:


    OnPlayerConnext(playerid)
    {
    if(fexist(getINI(playerid,0)))
    {
    ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte logge dich ein","Einloggen","Abbrechen");
    }
    else if(!fexist(getINI(playerid,0)))
    {
    ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_INPUT,"Registration","Dein Account wurde nicht gefunden. Bitte gib dein gewünschtest Passwort ein um dich zu registrieren.","Registrieren","Abbrechen");
    }
    return 1;
    }
    OnPlayerDisconnect(playerid)
    {
    if(INI_Open(getINI(playerid,0)))
    {
    Eingeloggt[playerid] = 0;
    INI_WriteInt("Level",GetPlayerScore(playerid));
    INI_WriteInt("Bargeld",GetPlayerCash(playerid));
    INI_WriteInt("Bankguthaben",pInfo[playerid][Bankguthaben]);
    INI_WriteInt("Adminlevel",pInfo[playerid][Adminlevel]);
    INI_WriteInt("Zeit bis Payday",pInfo[playerid][ZbP]);
    INI_WriteInt("Spielzeit Insgesamt",pInfo[playerid][SzI]);
    INI_WriteInt("Fraktion",pInfo[playerid][Fraktion]);
    INI_WriteInt("Nebenjob",pInfo[playerid][Nebenjob]);
    INI_WriteInt("TruckerCP",pInfo[playerid][TruckerCP]);
    INI_WriteInt("BauerCP",pInfo[playerid][BauerCP]);
    INI_WriteInt("PilotCP",pInfo[playerid][PilotCP]);
    INI_Save();
    INI_Close();
    }
    return 1;
    }


    Das sind z.B 2Verwendungen

  • Hey,
    ich glaube du hast diese Funktion aus einem englischen SII Login/Register Tutorial.
    Schreib das einfach mal so um:

    stock getINI(playerid)
    {
    new acc[64];
    format(account,sizeof acc,"Accounts/%s.ini",SpielerName(playerid));
    return acc;
    }

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.


  • stock getINI(playerid,pfad)
    {
    new PfadStr[64];
    switch(pfad)
    {
    case 0:
    {
    format(PfadStr, sizeof(PfadStr), "Accounts/%s.ini", Spielername(playerid));
    return PfadStr;
    }
    case 1:
    {
    format(PfadStr, sizeof(PfadStr), "Privatfahrzeuge/%s.ini", Spielername(playerid));
    return PfadStr;
    }
    }
    return PfadStr;
    }


  • Ja genau da hab ich sie her und so wie du es schreibst sah meine Funktion auch aus
    Aber ich möchte nun noch auf einen anderen Pfad zugreifen und hab die Funktion selbst so umgeschrieben


    Ich hätte natürlich auch sowas machen können:
    stock getINIA(playerid)
    {
    new auto[64];
    format(auto,sizeof acc,"Auto/%s.ini",SpielerName(playerid));
    return auto;
    }


    Aber ich wollte eben beides in eine Funktion


    /edit: @Pain aka. DeaThHoPe Danke Ich hab gar nicht daran gedacht für beide "typen" den gleichen Pfadstring zu benutzen^^
    @IPrototypeI Auch dir ist mein Dank geschuldet


    #Erledigt



  • stock getINI(playerid,pfad)
    {
    new string[40];
    if(pfad == 0)format(string,40,"Accounts/%s.ini",Spielername(playerid));
    else if(pfad == 1)format(string,40,"Privatfahrzeuge/%s.ini",Spielername(playerid));
    return string;
    }


    hier bitte sollte so gehen er will halt nun einen string zurück haben bei deiner Funktion besser gesagt in der weiter verwendung INI_Open