Frakmats

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hey
    Bin gerade dabei einen Befehl zu Scripten mit dem Mann Fraktionsmats einzahlen kann.
    Das System soll folgendermasen funktionieren:
    - Spieler der im Team 6 ist kauft sich Fmats (Befehl noch nicht da) und legt die in die Frakmats kammer der Fraktion Yakuza.(Frak id 9).
    Hier der Befehl:
    ocmd:yput(playerid,params[])
    {
    new YMats,Frakmatspfad[9];
    if(Spieler[playerid][Team] == 6)
    {
    if(sscanf(params,"d",YMats))return SendClientMessage(playerid,0xFFFFFFFF,"BENUTZE: /yput [Mats]");
    if(GetPlayerMoney(playerid)>=YMats)
    {
    FrakMats[Spieler[playerid][Team]][Kasse]+=YMats;
    GivePlayerCash(playerid, -Mats);
    format(Frakmatspfad,sizeof(Frakmatspfad),"/Frakmats/%d.ini",Spieler[playerid][Team]);
    if(dini_Exists(Frakmatspfad))return dini_IntSet(Frakmatspfad,"FraktionMats",FrakMats[Spieler[playerid][Team]][FraktionMats]);
    format(Frakmatspfad,sizeof(Frakmatspfad),"Du hast %d$ Mats hineingelegt",Mats);
    SCM(playerid,COLOR_GREEN,Frakmatspfad);
    }
    else return SCM(playerid,ROT,"Du hast nicht genug Mats dabei!");
    }
    else return SCM(playerid,ROT,"Du bist in keiner Fraktion!");
    return 1;
    }
    Wie muss ich das jetzt Scripten das er die Mats in die Frakkammer der Fraktion 9 legt?


    Hier der Code wie ich die Kammern erstellt habe.
    enum FraktionMats
    {
    Frakid,
    FMats
    }
    new FrakMats[20][FraktionMats];
    for(new i=1;i<20;i++)
    {
    new Frakmatspfad[20];
    format(Frakmatspfad,sizeof(Frakmatspfad),"/FrakMats/%d.ini",i);
    if(dini_Exists(Frakmatspfad))
    {
    FrakMats[i][Frakid] = dini_Int(Frakmatspfad,"Frakid");
    FrakMats[i][Kasse] = dini_Int(Frakmatspfad,"FraktionMats");
    }
    else
    {
    dini_Create(Frakmatspfad);
    dini_IntSet(Frakmatspfad,"Frakid",i);
    dini_IntSet(Frakmatspfad,"FraktionMats",0);
    FrakMats[i][Frakid]=i;
    FrakMats[i][FMats]=0;
    }
    }
    for(new i=1;i<20;i++)
    {
    new Frakmatspfad[200];
    format(Frakmatspfad,sizeof(Frakmatspfad),"/FrakMats/%d.ini",i);
    dini_Create(Frakmatspfad);
    dini_IntSet(Frakmatspfad,"Frakid",i);
    dini_IntSet(Frakmatspfad,"FraktionMats",0);
    FrakMats[i][Frakid]=i;
    FrakMats[i][FMats]=0;
    }
    return 1;
    Danke im vorraus.

  • Hey :),


    ocmd:yput(playerid,params[])
    {
    new YMats,Frakmatspfad[9];
    if(Spieler[playerid][Team] == 6)
    {
    if(sscanf(params,"d",YMats))return SendClientMessage(playerid,0xFFFFFFFF,"BENUTZE: /yput [Mats]");
    if(SpielerInfo[playerid][pMats] < YMats) return SendClientMessage(playerid,0xFFFFFFFF,"Du hast nicht genügend Mats"); //Anpassen
    FrakMats[9][FraktionMats] += YMats;
    SpielerInfo[playerid][pMats] -= YMats
    }
    else return SCM(playerid,ROT,"Du bist nicht in der Fraktion 6!");
    return 1;
    }


    Wusste jetzt nichts anzufangen mit der Abfrage ob das Geld größer ist als die vorhanden Mats ergibt für mich keinen Sinn.


    Zudem solltest du das enum überarbeiten.


    enum FraktionMats
    {
    FMats
    }
    new FrakMats[MAX_FRAKTIONEN][FraktionMats];//Anpassen falls du MAX_FRAKTIONEN nicht definiert hast


    Das ganze ist ungetestet falls Fehler auftreten einfach melden, wollte dir nur nen kleinen Gedankenanstoß geben :)


    Mfg