# Syreldar

Developer

823

• #### Days Won

30

Syreldar had the most liked content!

407 Dominating

## 14 Followers

• Rank
Chivalric
• Birthday 12/22/1997

• Gender
Male
• Location
Italy

## Contact Methods

• Discord
Misericordia#0001
• Skype
aresyournightmare

## Recent Profile Visitors

5,481 profile views

2. ## solved jump party to different position

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
3. ## solved jump party to different position

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
4. ## open Render

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.
5. ## open PROBLEM WITH NEW BONUS (UNKNOW_VALUE)

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.
6. ## open Run quest not working

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.
7. ## open Run quest not working

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?
8. ## Lysium Development

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."

..
10. ## open About biolog quest

Sexy. But I hope the server shuts down before 2 years :kappa:
11. ## solved Biologist quest

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..
12. ## solved Biologist quest

..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.
13. ## solved Biologist quest

..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?
14. ## solved Biologist quest

..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.
15. ## solved Biologist quest

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