Waffen speichern - Buggt

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
  • Moin;


    ich arbeite zurzeit an einem kleinen Rucksack-System. In diesem teste ich gerade, ob sich meine
    Waffe im Rucksack speichert. Ich habe aber bemerkt, dass da kompletter Humbug rauskommt...
    sowohl InGame als auch Datenbank bzw. der Mist, der InGame zusehen ist, den sieht man auch
    in den Datenbankeinträgen gespeichert:



    enum SPDaten
    {
    //Sind natürlich einige^^ Sachen mehr... hab sie nur raus genommen, um eine Übersicht zu haben.
    Rucksack,
    RobKeys,
    BPGun1,
    BPGun2,
    BPGun3
    }
    new Spieler[MAX_PLAYERS][SPDaten];


    //Der Befehl, mit dem der Rucksack aufgerufen wird:


    ocmd:openbackpack(playerid, params[])
    {
    new string[128];
    format(string, sizeof(string),"Waffe: %d Munition: %d \nWaffe: %d Munition: %d \nWaffe: %d Munition: %d \nDrugs: %d \nBombe(n): %d \nGeld: %d",
    Spieler[playerid][BPGun1], Spieler[playerid][BPGun2], Spieler[playerid][BPGun3], Spieler[playerid][BackDrugs], Spieler[playerid][TBombBack], Spieler[playerid][Money]);
    ShowPlayerDialog(playerid, DIALOG_BACKPACK, DIALOG_STYLE_LIST,"Rucksack",string,"Nehmen","Abbrechen");
    return 1;
    }


    //Die zwei Dialoge, die hauptsächlich am System dran sind:


    if(dialogid == DIALOG_BACKPACK)
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_GUNOPTION1, DIALOG_STYLE_MSGBOX, "Rucksack: Waffe 1","Lege deine gewünschte Waffe hier rein. Dazu musst du nur auf sie scrollen und hier auf >> reinlegen << drücken.\nUm diese wieder >> rauszuholen <<, musst du sie im Menu auswählen und auf >> rausholen << drücken.","Reinlegen","Rausholen");
    }
    }
    }

    if(dialogid == DIALOG_GUNOPTION1)
    {
    //new weaponname = GetPlayerWeapon(playerid), wename = GetWeaponModelIDFromName(weaponname), wammo = GetPlayerAmmo(playerid), ;
    new wammo = GetPlayerAmmo(playerid), weaponid = GetPlayerWeapon(playerid);
    if(response)
    {
    if(weaponid != 0)
    {
    format(Spieler[playerid][BPGun1], 100, "Waffe: %d");
    RemoveWeaponForPlayer(playerid, weaponid);
    }
    }
    else
    {
    GivePlayerWeapon(playerid, weaponid, wammo);
    SendClientMessage(playerid, -1, "Du hast eine solche Waffe nicht im Rucksack.");
    }
    }


    //Ich weiß nicht, wie ich abfragen kann, ob der Slot KEINEN PLATZ zum REINLEGEN hat bzw. NICHTS zum RAUSNEHMEN hat.


    So sieht es dann InGame aus. Wenn ich mir eine Waffe gebe mit 2k Munition und Sie dann reinlege, dann passiert das nur
    mit halbem Erfolg, denn die 2k-Waffe ist zwar weg und im Rucksack stehen auch zahlen, aber das ist einfach zu wenig
    und zudem auch noch falsch verteilt (zweite Reihe spielt mit, obwohl ich es nur der 1. Reihe zuweise - BPGun1):


    Datenabnk-Screen



    InGame-Screen


    Mit freundlichen Grüßen


    Kristik47

  • Du versuchst einen Integer mit "format" zu formatieren


    Ersetze das Dialogresponse für GUNOPTION1 hiermit:


    und beim enum fügst du noch BPAmmo1,BPAmmo2 und BPAmmo3 ein.


    Und am schluss ersetze noch das CMD:


    Code
    ocmd:openbackpack(playerid, params[])
    {
    	new string[128];
    	format(string, sizeof(string),"Waffe: %d Munition: %d \nWaffe: %d Munition: %d \nWaffe: %d  Munition: %d \nDrugs: %d \nBombe(n): %d \nGeld: %d",
     	Spieler[playerid][BPGun1],Spieler[playerid][BPAmmo1], Spieler[playerid][BPGun2],Spieler[playerid][BPAmmo2], Spieler[playerid][BPGun3],Spieler[playerid][BPAmmo3], Spieler[playerid][BackDrugs], Spieler[playerid][TBombBack], Spieler[playerid][Money]);
     	ShowPlayerDialog(playerid, DIALOG_BACKPACK, DIALOG_STYLE_LIST,"Rucksack",string,"Nehmen","Abbrechen");
     	return 1;
    }

    Einmal editiert, zuletzt von Zim30 ()

  • Hab das Dialogresponse nochmal geändert, damit der slot auch resetet wird sobald man eine waffe raus nimmt:


    Einmal editiert, zuletzt von Zim30 ()