Jump to content

Quest Affect Problem


Recommended Posts

Spoiler

quest bonusmanager begin
    state start begin
        when 9009.chat."Bonus-Manager-Panel" with pc.is_gm() begin
            say(col.gold("Bonus-Manager:[ENTER]"))
            say("Bonus-Manager ".. ({'offline','online'})[game.get_event_flag("skill_tree")+1])
            say()
            if select("Bonus-Manager "..({'anschalten','ausschalten'})[game.get_event_flag("skill_tree")+1], "Nichts") == 2 then return end
            notice_all("Der Bonus-Manager ist jetzt "..({"erreichbar","nicht erreichbar"})[game.get_event_flag("skill_tree")+1])
            if game.get_event_flag("skill_tree") == 0 then
                game.set_event_flag("skill_tree", 1)
            else
                game.set_event_flag("skill_tree", 0)
            end
        end
        
        when 33002.chat."Bonus-Manager" with game.get_event_flag("skill_tree") == 1 begin
            local bonis = {}
            local tree = {
            --    [Bonus-Managerlevel]//Bonus Name//Flag_name//Bonus pro up//Bonus Name//Benötigtes Item//Anzahl
                 [0] = {
                    {"Stark gegen Monster","tree_monster", 2, apply.ATT_BONUS_TO_MONSTER, 19, 1},
                },
                [1] = {
                    {"Stark gegen Tiere","tree_animals", 2, apply.ATTBONUS_ANIMAL, 19, 1},
                    {"Stark gegen Teufel","tree_devil", 2, apply.ATTBONUS_DEVIL, 19, 1},
                    {"Stark gegen Untote","tree_undead", 2, apply.ATTBONUS_UNDEAD, 19, 1},
                },
                [2] = {
                    {"Chance auf EXP-Bonus","tree_exp", 2, apply.EXP_DOUBLE_BONUS, 19, 1},
                    {"Chance, eine doppelte Menge Yang fallen zu lassen","tree_yang", 2, apply.GOLD_DOUBLE_BONUS, 19, 1},
                    {"Chance, eine doppelte Menge von Gegenständen fallen zu lassen","tree_item", 2, apply.ITEM_DROP_BONUS, 19, 1},
                },
                [3] = {
                    {"Magieverteidigung","tree_magic", 1, apply.RESIST_MAGIC, 19, 1},
                    {"Schwertverteidigung","tree_sword", 1, apply.RESIST_SWORD, 19, 1},
                    {"Zweihänderverteidigung","tree_tsword", 1, apply.RESIST_TWOHAND, 19, 1},
                    {"Glockenverteidigung","tree_bell", 1, apply.RESIST_BELL, 19, 1},
                    {"Fächerverteidigung","tree_fan", 1, apply.RESIST_FAN, 19, 1},
                    {"Dolchverteidigung","tree_dagger", 1, apply.RESIST_DAGGER, 19, 1},
                    {"Pfeilverteidigung","tree_bow", 1, apply.RESIST_BOW, 19, 1},
                },
                [4] = {
                    {"Stark gegen Krieger","tree_warrior", 1, apply.ATT_BONUS_TO_WARRIOR, 19, 1},
                    {"Stark gegen Ninja","tree_assasine", 1, apply.ATT_BONUS_TO_ASSASSIN, 19, 1},
                    {"Stark gegen Sura","tree_sura", 1, apply.ATT_BONUS_TO_SURA, 19, 1},
                    {"Stark gegen Schamenen","tree_shaman", 1, apply.ATT_BONUS_TO_SHAMAN, 19, 1},
                    {"Stark gegen Halbmenschen","tree_hm", 3, apply.ATTBONUS_HUMAN, 19, 1},
                },
            }
            say(col.gold("Hallo "..pc.get_name()..","))
            say("bei mir kannst du im Tausch von")
            say("Gegenständen verschiedene Boni freischalten und aufwerten.")
            say("Möchtest du fortfahren?")
            if select("Forfahren","Abbruch") == 2 then return end
            say(col.gold("Bonus-Manager:[ENTER]"))
            say("Gut, ich werde dir Auflisten")
            say("was du alles aufwerten kannst.")
            wait()
            say(col.gold("Bonus-Manager:[ENTER]"))
            for i = 1, table.getn(tree[pc.getqf("tree_level")]), 1 do
                if pc.getqf(tree[pc.getqf("tree_level")][2]) >= 10 then
                    table.insert(bonis, tree[pc.getqf("tree_level")][1].." - Beendet")
                else
                    table.insert(bonis, tree[pc.getqf("tree_level")][1])
                end
            end
            local menu = select3(bonis)
            if menu == -1 then return end
            local rnd = math.random(1, 100)
            say(col.gold("Bonus-Manager:[ENTER]"))
            say("Du hast den Bonus bereits auf "..pc.getqf(tree[pc.getqf("tree_level")][menu][2]))
            say()
            say("Du möchtest also "..tree[pc.getqf("tree_level")][menu][1].." aufwerten?")
            if select("Aufwerten","Abbruch") == 2 then return end
            if pc.getqf(tree[pc.getqf("tree_level")][menu][2]) < 10 then
                if get_time() > pc.getqf("tree_time") then    
                    if pc.count_item(tree[pc.getqf("tree_level")][menu][5]) >= tree[pc.getqf("tree_level")][menu][6] then
                        if rnd > 1 then -- Chance ob klappen soll immoment 50%
                            say(col.gold("Bonus-Manager:[ENTER]"))
                            say("Glückwunsch dein Bonuspunkt")
                            say("wurde erfolgreich gesetzt.[ENTER]")
                            say(col.lightgreen("Erfolgreich!![ENTER]"))
                            wait()
                            pc.remove_item(tree[pc.getqf("tree_level")][menu][5], tree[pc.getqf("tree_level")][menu][6])
                            affect.add_collect(tree[pc.getqf("tree_level")][menu][4], tree[pc.getqf("tree_level")][menu][3], 60*60*24*365*60)
                            chat("Du hast "..tree[pc.getqf("tree_level")][menu][3].." mehr "..tree[pc.getqf("tree_level")][menu][1].." erhalten.")
                            pc.setqf(tree[pc.getqf("tree_level")][menu][2], pc.getqf(tree[pc.getqf("tree_level")][menu][2])+1)
                            pc.setqf("tree_time", get_time()+0)    -- Warte Zeit
                            if pc.getqf(tree[pc.getqf("tree_level")][menu][2]) >= 10 then
                                local tree_skill = table.getn(tree[pc.getqf("tree_level")])*1
                                say(col.gold("Bonus-Manager:[ENTER]"))
                                say("Glückwunsch dein Bonus,")
                                say("wurde erfolgreich auf die max.")
                                say("Stufe gestuft.")
                                say()
                                say(col.lightgreen("Mach weiter so!"))
                                say()
                                wait()
                                pc.setqf("tree_level_skill", pc.getqf("tree_level_skill")+1)
                                if pc.getqf("tree_level_skill") == tree_skill then
                                    pc.setqf("tree_level", pc.getqf("tree_level")+1)
                                    say(col.gold("Bonus-Manager[ENTER]"))
                                    say("Glückwunsch du hast das Level")
                                    say("erfolgreich absolviert.")
                                    say()
                                    say(col.lightgreen("Aufstieg: Level "..pc.getqf("tree_level")))
                                    wait()
                                    pc.setqf("tree_time", get_time()+0)
                                end    
                            end
                        else
                            say(col.gold("Bonus-Manager:[ENTER]"))
                            say("Leider ist der Bonuspunkt")
                            say("nicht gut genung gewesen.")
                            say()
                            say_reward("Fehlgeschlagen!!")
                            pc.remove_item(tree[pc.getqf("tree_level")][menu][5], tree[pc.getqf("tree_level")][menu][6])
                            say()
                            return
                        end
                    else
                        say(col.gold("Bonus-Manager:"))
                        say()
                        say("Leider fehlt dir ein")
                        say_item_vnum(tree[pc.getqf("tree_level")][menu][5])
                        say()
                        return
                    end    
                else
                    say(col.gold("Bonus-Manager:[ENTER]"))
                    say("Du musst noch warten")
                    say("bevor du wieder skillen kannst.")
                    say()
                    return
                end    
            else
                say(col.gold("Bonus-Manager"))
                say("Leider ist der Skill")
                say("bereits auf dem Maximum.")
                say()
                return
            end
        end
    end
end

When i skill a bonus (for example strong vs monster) at once - server/quest save this. i can warp/relog and the bonus/affect remains preserved. But when i skilled 2-10 (maximum is 10 by Quest) and i logged out or i warp to an another map - the affect reset to 1(2 strong vs monster). Also i havent (for example) 4-6-8-10-20 strong vs monster. i have after relog/warp etc 2 strong vs monster. Is the affect part broken? What is broken in the affect-part? i need help... Thank you for reading. :) 

Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.