Lazarus1988 8 Posted August 21, 2016 Share Posted August 21, 2016 (edited) Hi, because i'm making my server on game 34k and prevent from yang-bug i wrote simple quest to store player gold in lump of gold. Some dude managed to replicate this item from 1 to 200 and I'd like to know how could he do it? How to perform this bug? And the quest quest item_gold_piece begin state start begin when 80008.use begin local curr_gold = pc.get_gold() local value = 100000000 if curr_gold >= 1900000000 then syschat("I cannot sell it because you have too much money on account.") return end pc.remove_item(80008, 1) pc.change_gold(value) end when kill or enter or login with pc.get_gold() >= 100000000 begin pc.change_gold(-100000000) pc.give_item2(80008, 1) end end end Edited August 21, 2016 by Lazarus1988 Cutted post Link to comment Share on other sites More sharing options...
VegaS 1101 Posted August 21, 2016 Share Posted August 21, 2016 I have not read what you wrote but I read the title, but if you will not help this idea can give others. xD Some protection may be next: if false == pc.can_warp() then syschat("<Info> Wait 10 seconds before taking this quest!") return end Make checks can_warp function such as: - Private shop window && npc - Your store window - Window deposit - Window refinery If they were open 10 seconds behind them you will not be able to run quest. As much praise, can fraud merchant window and bug at SS and other prizes etc. if pc.getqf("value_qf") > 0 then syschat("<Info> You have already done this!") return end And another check return in case your quest is finished to be unable to use because there are many quests that can operate in server and reopen. if pc.countitem(itemVnum) < 1 then syschat("<Info> You do not have this item!") return end If you can not find any item in your inventory will have a function return, this is for quests with rewards if you receive items collected x x item. if pc.count_item(item.get_vnum()) >= 1 then syschat(string.format("<Info> Succes arg %d)", itemVnum)) pc.give_item2(itemVnum, value) item.remove() end A check correct to initiate an item and get a reward of item. local szForbidden = {110, 111, 112, 113} if table_is_in(szForbidden, pc.get_map_index()) then syschat("<Info> You can not do that in these maps!") return end Running some quests in certain maps to be banned because some quests is mandatory that. If you want to protect it much easier to check if you can do in a dungeon or on a map that is in game99. if table_is_in(szForbidden, pc.get_map_index()) or pc.in_dungeon() or pc.get_channel_id() == 99 then [...................................................] There are plenty of checks made for proper security for all quests, if you ever need anything please give me a pm. Link to comment Share on other sites More sharing options...
Lazarus1988 8 Posted August 21, 2016 Author Share Posted August 21, 2016 Thank you @VegaS but I know about that. Let's explain again... My server has very low exp and gold drop rates (about 1 - 100 gold per mob (depending by level and rank) and 5 - 600 exp), so non-cheating player shoud have on 17lv approx 30.000 gold, as you see, in my quest players gold turns into lump of gold when he reaches 100.000.000 gold, which is impossible to get it on that low level without bug-using, one of my players (precisely 17lv) showed me on trade window he has 200x Lump of gold. I don't have any GM's on server and only I have access to database. That's why I asked you hoping you know what kind of bug this is and how to eliminate. PS: Also one of other my players told me rumour that bug is also on global servers, but It's hardly to believe me in that rumour. Link to comment Share on other sites More sharing options...
VegaS 1101 Posted August 21, 2016 Share Posted August 21, 2016 (edited) That would need to block all bullshit. quest item_gold_piece begin state start begin when 80008.use begin if not pc.can_warp() or pc.countitem(item.get_vnum()) == 0 then syschat("<Debug> There was a problem, wait 10 seconds or perhaps you did not item to inventory!") return elseif get_time() < pc.getqf("use_goldbar") then syschat("<Debug> The last time you did this recently, waiting a few seconds for can make that again!") return elseif pc.get_money() <= 1900000000 then pc.remove_item(item.get_vnum(), 1) pc.give_gold(100000000) pc.setqf("use_goldbar", get_time() +5) syschat(string.format("<Debug> Succes gold added: + %d", 100000000)) else syschat("<Debug> I cannot sell it because you have too much money on account.") end end when kill or enter or login with pc.get_gold() > 100000000 and pc.can_warp() == true begin pc.change_gold(-100000000) pc.give_item2(80008, 1) syschat(string.format("<Debug> Succes gold withdrawn: - %d", 100000000)) end end end Edited August 21, 2016 by VegaS + time check Link to comment Share on other sites More sharing options...
Denis 1477 Posted August 21, 2016 Share Posted August 21, 2016 54 minutes ago, Lazarus1988 said: Thank you @VegaS but I know about that. Let's explain again... My server has very low exp and gold drop rates (about 1 - 100 gold per mob (depending by level and rank) and 5 - 600 exp), so non-cheating player shoud have on 17lv approx 30.000 gold, as you see, in my quest players gold turns into lump of gold when he reaches 100.000.000 gold, which is impossible to get it on that low level without bug-using, one of my players (precisely 17lv) showed me on trade window he has 200x Lump of gold. I don't have any GM's on server and only I have access to database. That's why I asked you hoping you know what kind of bug this is and how to eliminate. PS: Also one of other my players told me rumour that bug is also on global servers, but It's hardly to believe me in that rumour. If he just received the lamp from another player? Link to comment Share on other sites More sharing options...
Lazarus1988 8 Posted August 21, 2016 Author Share Posted August 21, 2016 Nope, I have few players and nobody reached even 30lv, thanks @VegaS for update 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now