[Beispiel] Safebox/Banksystem

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
  • Huhu liebe Community, ich wollte mich daran machen ein Safeboxsystem zu machen, nur weiss ich nicht wie ich es nun so. zB. in den Befehl einarbeiten kann das wenn SpielerID "/nehmen [anzahl]"(Hier nur ein beispiel) eintippt aber nicht genug davon in der Box/Bank hat es anzeigt das er nicht genügend davon hätte. Die Bank/Safebox ist in dem Falle die Spieler.ini in der der Wert gespeichert wird. Ich habe hier schonmal etwas angefangen, weiss leider nicht wie ich weitermachen soll.


    if(!strcmp(strget(cmdtext, 0), "/nehmen")
    )
    if(gTeam[playerid] == TEAM_COP)
    { // wdmats = Die summe an mats welche der Spieler bekommen soll
    new spielerid = strval(strget(cmdtext, 1));
    new wdmats = strval(strget(cmdtext, 2));
    pInfo[spielerid][mats] += wdmats;
    pInfo[spielerid][bankmats] -= wdmats;
    dini_IntSet(Datei(spielerid),"Materials",pInfo[spielerid][mats]);
    dini_IntSet(Datei(spielerid),"BankMaterials",pInfo[spielerid][bankmats]);
    SendClientMessage(spielerid, COLOR_LIGHTBLUE, "Du hast %s von der Safebox genommen.");
    {
    if(pInfo[playerid][bankmats] <= wdmats)
    {
    SendClientMessage(playerid, COLOR_RED, "Soviel Mats hast du nicht.");
    }
    return 1;
    }
    }


    Das habe ich eben gemacht, es ergibt keine errors, aber stimmt das so in etwas mit dem Verhältnis, wenn man weniger hat als man eingibt das dann die Message "Soviel Mats hast du nicht." kommt?, ist der befehl in etwa richtig aufgebaut? Oder ist etwas Falsch positioniert?


    Das IsPlayerInRagenOfPoint hab ich jetzt einfach erstmal weggelassen, ich wollt nur wissen ob der das so richtig abspeichert, und ob das so richtig geschrieben wurde, würde mich freuen wenn ihr mir da helfen würdet :)



    LG
    BoB

  • Versuch es mal so..
    Nicht getestet..


    if(!strcmp(strget(cmdtext, 0), "/nehmen")
    )
    if(gTeam[playerid] == TEAM_COP)
    {
    // wdmats = Die summe an mats welche der Spieler bekommen soll
    new spielerid = strval(strget(cmdtext, 1));
    new wdmats = strval(strget(cmdtext, 2));
    if(pInfo[playerid][bankmats]>= wdmats)
    {
    pInfo[spielerid][mats] += wdmats;
    pInfo[spielerid][bankmats] -= wdmats;
    dini_IntSet(Datei(spielerid),"Materials",pInfo[spielerid][mats]);
    dini_IntSet(Datei(spielerid),"BankMaterials",pInfo[spielerid][bankmats]);
    format(sString,sizeof(sString),"Du hast %d Mats rausgenommen.",wdmats);
    SendClientMessage(playerid,COLOR_WHITE,sString);
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Du hast nicht genug dabei.");
    }
    }