Beiträge von Keine_Person

    Geht das irgendwie noch schneller zu speichern oder zu laden ohne das Dini Land zu verlassen? Und würde das zu lange dauern wenn man ein flüssiges Spiel liefern will?
    for(new i = 0; i<100; i++)
    {
    if(Inventar[playerid][pCannabis][i] > 0.00){format(string,sizeof(string),"Cannabis Qualität: %d%:",i);dini_FloatSet(file,string,Inventar[playerid][pCannabis][i]);}
    if(Inventar[playerid][pCrystalMeth][i] > 0.00){format(string,sizeof(string),"Crystal Qualität: %d%:",i);dini_FloatSet(file,string,Inventar[playerid][pCrystalMeth][i]);}
    if(Inventar[playerid][pHeroin][i] > 0.00){format(string,sizeof(string),"Heroin Qualität: %d%:",i);dini_FloatSet(file,string,Inventar[playerid][pHeroin][i]);}
    if(Inventar[playerid][pCocaine][i] > 0.00){format(string,sizeof(string),"Kokain Qualität: %d%",i);dini_FloatSet(file,string,Inventar[playerid][pCocaine][i]);}
    }



    for(new i = 0; i<100; i++)
    {
    format(string,sizeof(string),"Cannabis Qualität: %d%:",i);
    if(dini_Float(file,string) > 0.00){Inventar[playerid][pCannabis][i] = dini_Float(file,string);}
    format(string,sizeof(string),"Crystal Qualität: %d%:",i);
    if(dini_Float(file,string) > 0.00){Inventar[playerid][pCrystalMeth][i] = dini_Float(file,string);}
    format(string,sizeof(string),"Heroin Qualität: %d%:",i);
    if(dini_Float(file,string) > 0.00){Inventar[playerid][pHeroin][i] = dini_Float(file,string);}
    format(string,sizeof(string),"Kokain Qualität: %d%:",i);
    if(dini_Float(file,string) > 0.00){Inventar[playerid][pCocaine][i] = dini_Float(file,string);}
    }

    Würde ja nicht dazu kommen das jemand 100 Drogen bei sich hat. Es wäre immer nur eine kleine Menge im Umlauf. Aber was genau funktioniert denn da jetzt nicht? Oder funkt es aber frisst es einfach zu viel?



    Hab den Fehler jetzt auch gesehen. Ich speicher wirklich nur das i ab :D Ist jetzt umgeschrieben. Und meine Frage wär halt ob das zu belastend so ist von der Perfomance her und ob es schneller geht mit Dini.

    Die Droge kann 100 Qualitätsstufen haben die ich mit "i" Abfrage und wenn eine der Qualitätsstufen vorhanden ist soll diese gespeichert werden. Und bei der Speicherung speichert er doch den Wert oder nicht?

    Code
    for(new i = 0; i<100; i++)
        {
            if(Inventar[playerid][pCannabis][i] > 0.00){format(string,sizeof(string),"Cannabis %f   %d%:",Inventar[playerid][pCannabis][i],i);dini_FloatSet(file,string,Inventar[playerid][pCannabis][i]);}
            if(Inventar[playerid][pCrystalMeth][i] > 0.00){format(string,sizeof(string),"Crystal %f   %d%:",Inventar[playerid][pCannabis][i],i);dini_FloatSet(file,string,Inventar[playerid][pCrystalMeth][i]);}
            if(Inventar[playerid][pHeroin][i] > 0.00){format(string,sizeof(string),"Heroin %f   %d%:",Inventar[playerid][pCannabis][i],i);dini_FloatSet(file,string,Inventar[playerid][pHeroin][i]);}
            if(Inventar[playerid][pCocaine][i] > 0.00){format(string,sizeof(string),"Kokain %f   %d%",Inventar[playerid][pCannabis][i],i);dini_FloatSet(file,string,Inventar[playerid][pCocaine][i]);}
        }

    Geht das auch schneller


    Edit: Eine AQbfrage vergessen sorry

    Ich möchte ein INventarsystem per Listen Dialog entwerfen bei dem nur das Inventar angezeigt wird das man auch besitzt. Ist das mit einem Dialog machbar oder nur über selbstgeschriebene Textdraws?


    Bisher hab ich das über einen String gedacht den ich per Abfrage erweitere, aber kann man dann auch 2 Strings in ein Dialog machen oder musss ich da eine Funktion nutzen mit der man eine zweite Seite haben kann oder so?




    So hab ich mir das gedacht:

    Code
    if(Inventar[playerid][pCannabis] > 0.00){format(string2,sizeof(string2),"Cannabis: %f\n",Inventar[playerid][pCannabis]);}
    if(Inventar[playerid][pCannabis] > 0.00){format(string2,sizeof(string2),"%sCrystal: %f\n",string2,Inventar[playerid][pCrystal]);}
    Code
    forward Float:GetPos(playerid);
    stock Float:GetPos(playerid)
    {
        new Float:x,y,z;
        GetPlayerPos(playerid, x,y,z);
        return x,y,z;
    }

    Bei OnPlayerTakeDamage:

    Code
    if(IsPlayerInRangeOfPoint(playerid, 6.0, GetPos(issuerid)))


    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(306) : warning 202: number of arguments does not match definition
    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(306) : warning 202: number of arguments does not match definition
    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(484) : warning 213: tag mismatch
    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(484) : warning 213: tag mismatch
    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(485) : warning 213: tag mismatch

    Code
    new file[128], string[128];
    format(file,sizeof(file),"/Accounts/%s.ini",GetName(playerid));
    format(string,sizeof(string),"Character free %d",Info[playerid][CharacterFrei][listitem]);
    Info[playerid][CharacterFrei][listitem] = dini_Bool(file,string);
    if(Info[playerid][CharacterFrei][listitem] == true)

    Error bei Zeile 4:
    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(291) : warning 213: tag mismatch

    Code
    ShowPlayerDialog(playerid,DIALOG_LOGIN_2,DIALOG_STYLE_LIST,string,"Login","Abbrechen");

    C:\Program Files\Grand Theft Auto San Andreas\gamemodes\ganmore.pwn(293) : warning 202: number of arguments does not match definition




    So jetzt ist das richtig, eben um eine Zeile verrutscht
    .