Jump to content

Syreldar

Premium
  • Posts

    1298
  • Joined

  • Last visited

  • Days Won

    38
  • Feedback

    100%

Everything posted by Syreldar

  1. 1. You had to test it way before opening a server my dear. 2. Yes.
  2. Ok this is gonna blow your mind, have you thought about Lowering the bonuses? This bonus already exists in the game, it's called Resistance to average damage +x%.
  3. Hello! Thank you to all the people who contacted me during those holidays, you guys are awesome. The 10% discount on all my services is still valid until December 31st, 11:59 PM. Don't miss this opportunity! Happy holidays.
  4. What sources are you using? Did you implement the dead trigger for your quests?
  5. All those random errors will get you nowhere. The only way you've got to help us human beings pinpoint the root of an error is you describing as precisely as possible: What happens, When does it happen, How it happens.
  6. This usually happens if that core is offline or crashed.
  7. Did you seriously just bump a 5 years old topic for this? Holy cow. It doesn't find the column text inside the string table. Add it. That's all.
  8. Nobody is going to help you for free, especially if you're not even willing (or able?) to listen nor properly apply suggestions/advice by yourself, I'm afraid.
  9. If he wanted the players in the party to have specific difference in coordinates then it's also simple to do it, like this. local pids = {party.get_member_pids()}; local difference = { [1] = {["x"] = 0, ["y"] = -50}, [2] = {["x"] = 50, ["y"] = -50}, [3] = {["x"] = -50, ["y"] = -50}, [4] = {["x"] = 0, ["y"] = 50}, [5] = {["x"] = 50, ["y"] = 50}, [6] = {["x"] = -50, ["y"] = 50}, [7] = {["x"] = 0, ["y"] = 0}, [8] = {["x"] = 50, ["y"] = 0} }; for index, pid in ipairs(pids) do q.begin_other_pc_block(pid); pc.warp(positionX + difference[index]["x"], positionY + difference[index]["y"]); q.end_other_pc_block(); end -- for -- Or, if the position is local (same map) for index, pid in ipairs(pids) do q.begin_other_pc_block(pid); pc.warp_local(localPositionX + difference[index]["x"], localPositionY + difference[index]["y"]); q.end_other_pc_block(); end -- for
  10. And why exactly do you need source functions for that? For dungeons: local difference = math.random(1, 3); d.jump_all(localPositionX + difference, localPositionY + difference); --Or, if you need it for the dungeon creation: local difference = math.random(1, 3); d.new_jump_party(dungeon_index, positionX + difference, positionY + difference); Or, if you're not inside a dungeon instance: local difference = math.random(1, 3); local pids = {party.get_member_pids()}; for _, pid in ipairs(pids) do q.begin_other_pc_block(pid); pc.warp(positionX + difference, positionY + difference); q.end_other_pc_block(); end -- for -- Or, if the position is local (same map) local difference = math.random(1, 3); local pids = {party.get_member_pids()}; for _, pid in ipairs(pids) do q.begin_other_pc_block(pid); pc.warp_local(localPositionX + difference, localPositionY + difference); q.end_other_pc_block(); end -- for
  11. Excuse me? You are "waiting to see useful answers"? Who exactly do you think you are? If nobody wants to share it, they are free to do so, nobody here is forced to share anything. And believe me you wouldn't want such a community, because If we actually were a community where everyone is forced to share useful things to be able to register as a member and view its content, then you couldn't be a part of it since you're not contributing anything, thus you would be unable to leech. If you want it, contact someone specifically and pay for it, or learn to do it yourself. That's how a community works. If you don't like it then you can kindly fuck off. We don't need people like you here. Denis is a very valid developer, although in your eye "no answer was useful", he managed to almost replicate it perfectly. "How?" you ask? Because he's a developer and learned to work with the little information he's given, while you don't understand shit about it and want the full system right off the bat. No, kiddo, nobody is going to give you anything for free. Everyone learned through time spent and endless trial-and-error, so pay for your ignorance or start reading a book or two instead of crying and expecting everyone to serve you.
  12. December is a great month! My favorite one indeed. 10% discount on all my services until December 31st 11:59 PM.
  13. In-game the bonus' effect works as it should, but you just can't see its proper name in the tooltip? This means it's not a server issue, thus posting the common/length.h file part is pointless, from what you posted we know the Bonus has id 114 and that it is correctly defined inside the server. Also, the client isn't giving you an error saying that APPLY_RES_MOB isn't defined, which means the UserInterface/PythonItemModulePart.cpp is correct too, and the client also isn't failing to load, which means the python part is good to go too. So what's left? The GameLib/ItemData.h part, inside your client sources. Make sure the definitions inside the enum EApplyTypes perfectly match the ones you got inside the enum EApplyTypes inside your common/length.h file in your server sources. If they do match, which I doubt, you might want to doublecheck what you did in the AFFECT_DICT array, inside your uitooltip.py.
  14. There are so many wrong things here.. 1. Obviously it doesn't warp the other guy, you are using pc.warp instead of d.new_jump_party as warp function. 2. Dungeon checks completely missing and i have no idea what this is? Why did you do this? It makes no sense at all unless you wanted to do something like the Demon Tower with the first floor as normal map, in which case everyone has to enter the map separately, thus obviously the other player doesn't automatically warp in together with you. You have to code it differently if you want that to work out lol. 3. You are literally using d.new_jump_all to try and port the players to different parts of the dungeon instead of d.jump_all, you're literally creating new dungeon instances every time the players warp to different floors. 4. Why the f are you using pc.setqf instead of d.setf to set dungeon related things? I don't mean no disrespect but you should really get in touch with someone to fix this mess.
  15. Add the following string to the quest_functions file. d.new_jump_party Compile your quest, then let's start with the simple questions: 1. Do you get this message at least? "Hamarosan a 2. szintre kerülsz." 2. Are you in a party while trying to get into the dungeon?
  16. I 100% agree with what VegaS said. I might be biased in saying this, but it's far better to pay someone to fix your issue, although it might be a bit more expensive, rather than having to monthly pay a random guy that doesn't actually do anything other than bless you with their presence and also puts the security of your server in danger. That way you can be far more certain that they'll do the job quite fine and they don't have to be involved in the project itself. Also, they won't have access to your server so you can keep it safe. My suggestion: Build a server with trusted people as Founders, with a fair budget, and 1-2 trusted generic developers for generic issues. Then, make a list of trusted public developers that are specialized in different things and if you've got issues use part of the money you gain to "hire" them to solve those issues. This might be the most efficient way to deal with it. "Trust no one in life, let alone Metin2 users in 2019."
  17. Sexy. But I hope the server shuts down before 2 years :kappa:
  18. This is the only thing that changes if you're gm. You see this message, that's it. Please make sure you're implementing it correctly..
  19. ..no it's not. Only the message will be seen by GMs or if you're in test mode, because it outputs the quest_name, and I suppose players don't wanna see that.
  20. ..As I said..if you want it to work with the item, you have to make sure that item is type 18, if it's not, then set it to be 18, and then /reload in game. plus how do you not see it?
  21. ..It works by clicking on the item, not via biologist. If you want it to work via dialogue with the npc, substitute when 3969.use begin with when 20084.chat."Reset Time" with pc.count_item(3969) > 0 begin also substitute item.remove(); with pc.remove_item(3969, 1); and also substitute: syschat with say or the window will bug out.
  22. quest reset_time_item_use begin state start begin function GetBiologistQuestNames() local data = { [1] = "biologist_sequence30", [2] = "biologist_sequence40", [3] = "biologist_sequence50", [4] = "biologist_sequence60", [5] = "biologist_sequence70", [6] = "biologist_sequence80", [7] = "biologist_sequence85", [8] = "biologist_sequence90" }; return data; end -- function function GetQuestWaitingForTime() local quest_names = reset_time_item_use.GetBiologistQuestNames(); for index, quest_name in ipairs(quest_names) do if (pc.getf(quest_name, "duration") > 0) then return index; end -- if end -- for return -1; end -- function function IsWaitingForTime() return reset_time_item_use.GetQuestWaitingForTime() ~= -1; end -- function function ExecuteTimeReset() local data = reset_time_item_use.GetBiologistQuestNames(); local get_waiting_quest_id = reset_time_item_use.GetQuestWaitingForTime(); pc.setf(data[get_waiting_quest_id], "duration", 0); syschat("The waiting time has been reset successfully.") end -- function when 3969.use begin if (not reset_time_item_use.IsWaitingForTime()) then return syschat("You don't have to wait for any quest."); end -- if item.remove(); reset_time_item_use.ExecuteTimeReset(); end -- when end -- state end -- quest It should work. Make sure the quest_names are correct in the data table. Also make sure the item is type 18, if it's not, set it to be 18 and then /reload in game, else it won't work. In case one of your quests bugged out and you got waiting time for more of them, although it shouldn't occur, use this one: quest reset_time_item_use begin state start begin function GetBiologistQuestNames() local data = { [1] = "biologist_sequence30", [2] = "biologist_sequence40", [3] = "biologist_sequence50", [4] = "biologist_sequence60", [5] = "biologist_sequence70", [6] = "biologist_sequence80", [7] = "biologist_sequence85", [8] = "biologist_sequence90" }; return data; end -- function function GetQuestWaitingForTime() local quest_names = reset_time_item_use.GetBiologistQuestNames(); for index, quest_name in ipairs(quest_names) do if (pc.getf(quest_name, "duration") > 0) then return index; end -- if end -- for return -1; end -- function function IsWaitingForTime() return reset_time_item_use.GetQuestWaitingForTime() ~= -1; end -- function function ExecuteTimeResetForAllQuests() local quest_names = reset_time_item_use.GetBiologistQuestNames(); for _, quest_name in ipairs(quest_names) do if (pc.getf(quest_name, "duration") > 0) then pc.setf(quest_name, "duration", 0); if (pc.is_gm() or is_test_server()) then syschat(string.format("GM/Test: The wait time for the quest %s has been reset.", quest_name)) end -- if end -- if end -- for end -- function when 3969.use begin if (not reset_time_item_use.IsWaitingForTime()) then return syschat("You don't have to wait for any quest."); end -- if item.remove(); reset_time_item_use.ExecuteTimeResetForAllQuests(); end -- when end -- state end -- quest
  23. So you want the time to be reset when you use the item 3969?
×
×
  • 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.