-
Posts
20 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Macromango
-
-
At this point I'm afraid to ask, but here I go.
PLAYER_INDEX DATABASE
ID stands for the id of the account and this is clear to me
EMPIRE stands for the kingdom of the account clearly with shinsoo = 1, jinno = 3 etc
What about those pids?
They are almost probably associated to each player character per account, but still I don't really get what the values refer to, all information I looked for seemed confusing and non exaustive;
If someone could point me to something I'll be glad to get deeper into the undestanding of this
Keep up the good work, cheers
Macro
-
Solved,
Obviously missing the " GetApplyPoint() " function in client binary.
-
Hello fellow devs;
I was implementing the Bonus Board on my client and despite it looked quite simple, it is actually giving me this confusing error.
I've tried to rollback the changes and to implement it again, for a second time, with enhanced attention; but despite this the error prompts again.
SYSERR CLIENTSpoiler0605 15:57:26449 :: Traceback (most recent call last): 0605 15:57:26449 :: File "ui.py", line 1049, in CallEvent 0605 15:57:26449 :: File "ui.py", line 88, in __call__ 0605 15:57:26449 :: File "ui.py", line 70, in __call__ 0605 15:57:26449 :: File "uiCharacter.py", line 308, in __ClickExpandButton 0605 15:57:26449 :: File "uiCharacterDetails.py", line 14, in __init__ 0605 15:57:26449 :: File "uiCharacterDetails.py", line 61, in __LoadScript 0605 15:57:26450 :: File "uiCharacterDetails.py", line 66, in __Initialize 0605 15:57:26450 :: AttributeError 0605 15:57:26450 :: : 0605 15:57:26450 :: 'module' object has no attribute 'GetApplyPoint' 0605 15:57:26450 ::
This confuses me a lot.
Thanks in advance for your time and help;
Cheers
- 1
- 1
-
On 5/28/2021 at 10:11 PM, WeedHex said:
You have only 2 cores in the channel?
What files are you using?
Do you use any multilang system?
Thanks again for your interest, @WeedHex;
Current setup is 2 Channels with 2 Cores per channel;
The service is rolling on Martysama's 4.9.89 and I'm not using any multilanguage system.
All processes running good:Spoiler
Only syserr is:load: ANI directory = (null)
At the start of every Core at every Channel;
That's something I've been investigating without any significant progress
On 5/29/2021 at 8:33 AM, r00t said:About Ch1 Core2 that doesn't start, maybe problem can be in your start script or miss hardlink to gamecore.
Why do you setup IP in this way?Thank you for joining the post.
Actually CH1 - Core 2 starts ,and keeps running without any syserrs: that's the strange thing that makes me go mad!
I've already tried to change the starting script provived with the files, but nothing changed.
I actually don't use hardlinks, but I do have the actual compiled sources in " game/main/srv1/share/bin "; could be this messing up with something?
I've actually tried some time before to replace the mentioned files with some valid hardlinks, but the problem persisted. -
On 5/25/2021 at 4:31 PM, WeedHex said:
game.core?
Hard to help you without seeing the whole FTP struct of server files.
Thanks for your interest;
Actually there's no crash of the process, so I'm not getting any game.core file; but here's the ftp struct:
Spoiler
The main problem is that it's impossible to use the private chat between players on different cores,
Also the shouting chat doesn't work as intended, since it's isolated for every core.
Looks like the cores can't communicate each others in some circumstances.
I thought about a networking problem and so I double checked my NAT hairpinning, but it was actually fine.
Important to mention that I've manually set my WAN IP in the "src/game/desc_client.cpp" file and frankly I'm not 100% sure about the implications of this on the cores communication, since there's no trace left to start debugging; f*ck me!!
This issue is stressing me out from months, I'm not sleeping well because of it. -
Sad but still stuck here!
-
I'm experiencing the same issue and despite I've managed to add the fix provided in this topic by @SCOOB , nothing has changed.
I'll keep working on it in these days!
EDIT:
root/ui.py@class ListBoxExNewSpoilerif app.ENABLE_SEND_TARGET_INFO: class ListBoxExNew(Window): class Item(Window): def __init__(self): Window.__init__(self) self.realWidth = 0 self.realHeight = 0 self.removeTop = 0 self.removeBottom = 0 self.SetWindowName("NONAME_ListBoxExNew_Item") def __del__(self): Window.__del__(self) def SetParent(self, parent): Window.SetParent(self, parent) self.parent=proxy(parent) def SetSize(self, width, height): self.realWidth = width self.realHeight = height Window.SetSize(self, width, height) def SetRemoveTop(self, height): self.removeTop = height self.RefreshHeight() def SetRemoveBottom(self, height): self.removeBottom = height self.RefreshHeight() def SetCurrentHeight(self, height): Window.SetSize(self, self.GetWidth(), height) def GetCurrentHeight(self): return Window.GetHeight(self) def ResetCurrentHeight(self): self.removeTop = 0 self.removeBottom = 0 self.RefreshHeight() def RefreshHeight(self): self.SetCurrentHeight(self.GetHeight() - self.removeTop - self.removeBottom) def GetHeight(self): return self.realHeight def __init__(self, stepSize, viewSteps): Window.__init__(self) self.viewItemCount=10 self.basePos=0 self.baseIndex=0 self.maxSteps=0 self.viewSteps = viewSteps self.stepSize = stepSize self.itemList=[] self.scrollBar=None self.SetWindowName("NONAME_ListBoxEx") def __del__(self): Window.__del__(self) def IsEmpty(self): if len(self.itemList)==0: return 1 return 0 def __CheckBasePos(self, pos): self.viewItemCount = 0 start_pos = pos height = 0 while height < self.GetHeight(): if pos >= len(self.itemList): return start_pos == 0 height += self.itemList[pos].GetHeight() pos += 1 self.viewItemCount += 1 return height == self.GetHeight() def SetBasePos(self, basePos, forceRefresh = TRUE): if forceRefresh == FALSE and self.basePos == basePos: return for oldItem in self.itemList[self.baseIndex:self.baseIndex+self.viewItemCount]: oldItem.ResetCurrentHeight() oldItem.Hide() self.basePos=basePos baseIndex = 0 while basePos > 0: basePos -= self.itemList[baseIndex].GetHeight() / self.stepSize if basePos < 0: self.itemList[baseIndex].SetRemoveTop(self.stepSize * abs(basePos)) break baseIndex += 1 self.baseIndex = baseIndex stepCount = 0 self.viewItemCount = 0 while baseIndex < len(self.itemList): stepCount += self.itemList[baseIndex].GetCurrentHeight() / self.stepSize self.viewItemCount += 1 if stepCount > self.viewSteps: self.itemList[baseIndex].SetRemoveBottom(self.stepSize * (stepCount - self.viewSteps)) break elif stepCount == self.viewSteps: break baseIndex += 1 y = 0 for newItem in self.itemList[self.baseIndex:self.baseIndex+self.viewItemCount]: newItem.SetPosition(0, y) newItem.Show() y += newItem.GetCurrentHeight() def GetItemIndex(self, argItem): return self.itemList.index(argItem) def GetSelectedItem(self): return self.selItem def GetSelectedItemIndex(self): return self.selItemIdx def RemoveAllItems(self): self.itemList=[] self.maxSteps=0 if self.scrollBar: self.scrollBar.SetPos(0) def RemoveItem(self, delItem): self.maxSteps -= delItem.GetHeight() / self.stepSize self.itemList.remove(delItem) def AppendItem(self, newItem): if newItem.GetHeight() % self.stepSize != 0: import dbg dbg.TraceError("Invalid AppendItem height %d stepSize %d" % (newItem.GetHeight(), self.stepSize)) return self.maxSteps += newItem.GetHeight() / self.stepSize newItem.SetParent(self) self.itemList.append(newItem) def SetScrollBar(self, scrollBar): scrollBar.SetScrollEvent(__mem_func__(self.__OnScroll)) self.scrollBar=scrollBar def __OnScroll(self): self.SetBasePos(int(self.scrollBar.GetPos()*self.__GetScrollLen()), FALSE) def __GetScrollLen(self): scrollLen=self.maxSteps-self.viewSteps if scrollLen<0: return 0 return scrollLen def __GetViewItemCount(self): return self.viewItemCount def __GetItemCount(self): return len(self.itemList) def GetViewItemCount(self): return self.viewItemCount def GetItemCount(self): return len(self.itemList)
-
I'm in the club too, facing the same issue.
I managed to resolve the issue by editing the file "locale/skilldesc.txt" in the row referring to the skill number 109 (healing), replacing "STANDING_SKILL" with "STANDING_SKILL|CAN_USE_FOR_ME|NEED_TARGET|ONLY_FOR_ALLIANCE".
Then, in the database, I emptied the "setFlag" field referring to that 109 skill in "player/skill_proto".EDIT: As @Syreldar mentioned above, make sure that in "player/skill_proto" the "setFlag" field referring to that 109 skill is populated with the "REMOVE_BAD_AFFECT" flag.
(Thanks to Syreldar for clarifying that: grazie.)With this little fix, the Healing skill works just like a regular buff.
Cheers!
- 1
-
Still facing this issue!
-
Hello fellow devs;
It's been a while since I'm facing this problem and I've been struggling with it recently so I surrended and now I am seeking for help lol
My CHANNEL 1 only works on "core1";
Because whenever the player teleports to a "core2" configured map, he get disconnected with syserr (DESC::~DESC).Despite this; my CHANNEL 2 works on 2 cores perfectly.
Ports are correctly configured through the firewall.
I tried do put only one single map in CH1 core2 and teleport there but it didn't worked: same logout;
Process "srv1-ch1-core2" is up and running without any syserrs.
The "CONFIG" of the two cores on CH1:
CORE1SpoilerVIEW_RANGE: 10000 PASSES_PER_SEC: 25 SAVE_EVENT_SECOND_CYCLE: 180 PING_EVENT_SECOND_CYCLE: 180 DB_ADDR: 127.0.0.1 COMMON_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD common CORRECTPORT LOG_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD log CORRECTPORT ADMINPAGE_IP1: 18.8.8.8 ADMINPAGE_PASSWORD: 5894HAHUGAY3H4G8H MAX_LEVEL: 120 CHANGE_ATTR_TIME_LIMIT: 0 EMOTION_MASK_REQUIRE: 0 PRISM_ITEM_REQUIRE: 0 SHOP_PRICE_3X_TAX: 0 GLOBAL_SHOUT: 1 ITEM_COUNT_LIMIT: 250 STATUS_POINT_GET_LEVEL_LIMIT: 120 STATUS_POINT_SET_MAX_VALUE: 90 SHOUT_LIMIT_LEVEL: 15 DB_LOG_LEVEL: 1 EMPIRE_LANGUAGE_CHECK: 0 PLAYER_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD player CORRECTPORT HOSTNAME: srv1-ch1-core1 CHANNEL: 1 MAP_ALLOW: 1 21 41 3 23 43 61 62 63 64 107 217 301 302 303 304 PORT: 30003 P2P_PORT: 30004 DB_PORT: 30000
CORE2
SpoilerVIEW_RANGE: 10000 PASSES_PER_SEC: 25 SAVE_EVENT_SECOND_CYCLE: 180 PING_EVENT_SECOND_CYCLE: 180 DB_ADDR: 127.0.0.1 COMMON_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD common CORRECTPORT LOG_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD log CORRECTPORT ADMINPAGE_IP1: 18.8.8.8 ADMINPAGE_PASSWORD: 58948HAHUGAY8H84G MAX_LEVEL: 120 CHANGE_ATTR_TIME_LIMIT: 0 EMOTION_MASK_REQUIRE: 0 PRISM_ITEM_REQUIRE: 0 SHOP_PRICE_3X_TAX: 0 GLOBAL_SHOUT: 1 ITEM_COUNT_LIMIT: 250 STATUS_POINT_GET_LEVEL_LIMIT: 120 STATUS_POINT_SET_MAX_VALUE: 90 SHOUT_LIMIT_LEVEL: 15 DB_LOG_LEVEL: 1 EMPIRE_LANGUAGE_CHECK: 0 PLAYER_SQL: 127.0.0.1 CORRECTUSERNAME CORRECTPASSWORD player CORRECTPORT HOSTNAME: srv1-ch1-core2 CHANNEL: 1 MAP_ALLOW: 65 66 67 68 69 70 71 72 73 206 104 193 207 208 216 PORT: 30005 P2P_PORT: 30006 DB_PORT: 30000
Thank to all of you for your precious time and help!
MACRO -
23 hours ago, Braxy said:
Hi, i just want to give you a tip for a better usage of the states. You can use the "enter" event for handlings such as initializing missions or sending letters, that way it won't require relog for players in order to receive their letters or to continue the missions.
Thanks for such a wonderful tip, @Braxy!
Since I've never programmed in "Lua" language, I'm basically learning it from checking the original Metin2 quest files and making my own scripts for testing the various mechanisms.
It's actually intuitive if you have some general programming knowledge, but tips like the one you've pointed me to, are a plus!
Thanks again! -
On 1/4/2021 at 11:22 PM, mast210 said:
Make sure they have different names of top of the quest file:
quest collect_quest_lv30 begin
quest collect_quest_lv40 begin
Make new character to test if it works fine of shutdown ur server and check in database player->table quest if you dont have set __status for your character in those quests.
Thanks for your prompt reply @mast210!
After a good night of sleep I managed to undestand what was the issue: as I said, it was something stupid!
I've completely forgot the fact that I've tested the quests one by one when I did acquired it, some weeks ago.
So the quest flags were still active on my testing character and when I did upload all the package, obviously, this triggered all those unfinished quests.
Checking on the DB under the table "quest" allowed me to delete all those flags and after resetting the service, everything worked like a charm!
Thank you very mutch for your support!
This issue is happily #SOLVED : kindly requesting to close it -
Hello to everyone!
First of all: thanks for your time and support, this forum is such a massive useful resource!
I'm writing this post because I could not find anything regarding my problem; it's been some days since I'm having to deal with it.
The problem occurs when I'm tryng to import and compile the originals "collect_quest_lv**": the ones from the biologist.
I started with uploading "collect_quest_lv30", compiled it; everything works fine, the quest gets working.
Then I've uploaded "collect_quest_lv40" and I've compiled it: this get activated even if I didn't finish the first one!
I started to check the quests and they seem good to me:
This is collect_quest_lv30 at its endwhen *** begin ** ** ** clear_letter() set_quest_state("collect_quest_lv40", "run") --**THIS SHOULD ACTIVATE THE NEW QUEST @ "RUN" STATE set_state(__complete) end
This is collect_quest_lv40 at its beginningstate start begin end --** START STATE CORRECTLY EMPTY state run begin --** RUN STATE MUST BE THE POINT WHERE IT GETS ACTIVATED BY THE LAST QUEST when login or levelup with pc.level >= 40 begin set_state(information) end end
There must be something stupid I'm missing.
I'll be glad if someone could address me to the undestanding of the issue!
Cheers!
-
1 hour ago, regal said:
Hello there!
You need to put the 6th skill in special.active_skill_list in order for this to work.
You can find it in locale/xx/quest/questlib.lua usually.
It should be something like this:
special.active_skill_list = { { { 1, 2, 3, 4, 5, 6}, { 16, 17, 18, 19, 20, 21}, }, { {31, 32, 33, 34, 35, 36}, {46, 47, 48, 49, 50, 51}, }, { {61, 62, 63, 64, 65, 66}, {76, 77, 78, 79, 80, 81}, }, { {91, 92, 93, 94, 95, 96}, {106, 107, 108, 109, 110, 111}, }, }
Thank you my friend @regal!
After adding the missing 6th skills vnums in the "special.active_skill_list", my quest script recognized the skills and prompted me their vnum.
I managed to associate that orphan vnums with some translated strings:
Looking around in locale.lua I noticed that every skill vnum is paired with a translated string found in translate.lua, so I just created new strings to match the said orphan vnums and everything worked like a charm!
Your help was precious, thank you very mutch, mate!
Good things to you!1 hour ago, Finnis said:I think you forgot to add the skill id in function active_skill_list from questlib.lua.
Edit: Sorry, didn't see that someone answered already.
No need to worry @Finnis;
Your answer was still valuable!
Thank you for helping and good things to you too!
MACRO
(This post can be closed, solution was found)- 2
-
Hello devs;
I searched days for solutions to this problem, but still got no luck; I'm pretty sure that I'm missing something!
I'm trying to figure out what's happening in my lua script, that should list all skills at "M" level; in order to upgrade them.
It works fine for every skill of every race except the 6th skill of ninja archer "Spark" and also the 6th skill of the mental warrior "Sword Orb":
So I'm assuming this is a "6th skill problem".
I have those 6th skills set in my db, they upgrade successfully with in game console command ("/setskillother name 51 21"), and they work perfectly in game.
I assume there must be something that I'm missing from my function to add them in the variable "skill_list", here's the function:
function BuildMasterSkillList(job, group) -- FUNC LIST SKILLS FROM M1 TO M10 MASTER_SKILL_LEVEL = 20 GRAND_MASTER_SKILL_LEVEL = 30 local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {} table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum) if skill_level >= MASTER_SKILL_LEVEL and skill_level < GRAND_MASTER_SKILL_LEVEL then table.insert(ret_vnum_list, skill_vnum) local name=locale.GM_SKILL_NAME_DICT[skill_vnum] if name == nil then name=skill_vnum end table.insert(ret_name_list, name) end end) return {ret_vnum_list, ret_name_list} end -- function BuildMasterSkillList
Also I'll post the "output" part of the same script, but I'm sure the problem isn't here:
local menu_list = {} table.foreach(name_list, function(i, name) table.insert(menu_list, name) end) table.insert(menu_list, gameforge.locale.cancel) local s=select_table(menu_list) if table.getn(menu_list) == s then return end
Thanks for your time and your precious help;
Greetings! -
29 minutes ago, TMP4 said:
Can you tell me if your dedicated VM have internal ip (192.168.x.x or 10.x.x.x)?
It should not have but everything can happen.
I'm not a BSD expert but maybe type "ifconfig" and check there the adresses.
If so, try to put BIND_IP: 1.2.3.4 (your vps PUBLIC IP) to your channel's cores, and auth CONFIG file.
BTW if your vps have internal ip then it's not really a vps, bad hosting
Thanks again for supporting, mate!
Actually this VM is for testing purposes, it runs on a server of mine (in my attic) that is virtualizing it with ESXI, so actually yes, since I fully manage this network I can tell you with accuracy that the internal IP of that machine is 192.168.1.xxx.
I tried to add "BIND_IP: WAN_IP" in all the CONFIG files in the various cores, but when starting the service i get prompted this:SYSERR: Apr 26 16:53:48 :: socket_bind: bind: Can't assign requested address
This make me think that maybe must be another place where i have to configure the WAN IP (?). -
6 hours ago, TMP4 said:
There were some sh*tty "Public IP Fix" releases what made home-root server works without the "MC Starter" but ruined it in a normal environment (=vps).
Just as you wrote.
Maybe that's the case? Did you get a changelog with your source to check?
Are you able to try your server in home-root (virtualbox) to check if it's works there? if it's works there, that's the case.
Thank you very mutch for your relpy!
As suggested, I tryed to log in the game from the LAN where the server is running.
Actually it was successful and the player was correctly spawned inside the map!
This leads the research of the solution totally to another direction.
Perhaps I should edit something in the source that manages the external connections?
Greetings -
Buonasera everyone!
As always, after posting this question I've smashed the search button and i rolled painfully trough the third Google search page; if I'm forced to write this is because that research I made didn't produce satisfyng results and let me stuck in my condition (it just made me laugh by reading some bullshit like: "delete the map folder and replace it with another to see if something changes").
Here's the thing:
The scenario it's a dedicated VM rolling on FreeBSD 12.2 x32 and MySQL 5.6; on this VM it was compiled from source (and fully integrated) the revision 41023 of the gamefiles, along with the proper generation of its database.
Everything worked like a charm, the syserr log files were empty afer several reboots of both the machine and the game service.
I've manually created thorugh Navicat my account for the application, without any player character. just an empty account.
Time was for me to switch on the client side: together with the files I was provided with a compatible client (wich I like due to the fact that it's without any mods) so after configuring it for a proper access, I ran it and I was able to successfully perform the login, finding me at the character creation screen.
I entered the nickname of the character wich was successfully generated, then I proceeded to uncork the champagne and finally started the game while sipping my glass.
The result was actually embarrassing: in fact, once the player was selected, after the animation; I was sent back to the login screen.
I put the sparkling wine straight back in the refrigerator and started digging in the log files, which I attach here:
SYSERR: Apr 25 13:19:28 :: PlayerCreateSuccess: InputDB::PlayerCreateSuccess: cannot find server for mapindex 0 51830 x 166571 (name NAME)
I therefore thought it was some problem related to the loading of the map and the consequent spawn position, crealy invalid: "mapindex=0" immediatly sounded like bullshit to me.
Therefore I chose to try to set the player position by manually editing the "player" database in the "player" table in a position like: "somewhere in the happy village of Shinsoo":
x=640 | y =540 | map_index = 3
At this point I tried to restart all the thing and I felt confident in my login: the result was the same logout that produced the following logs:SYSERR: Apr 25 14:01:37 :: GetServerLocation: location error name NAME mapindex 0 640 x 540 empire 1 SYSERR: Apr 25 14:01:37 :: GetServerLocation: cannot find server for mapindex 0 469300 x 964200 (name NAME)
The next attempt I made was to create another account, with another player, in a different kingdom than Shinsoo; but the result was the same logout after the selection, and the same logs with invalid mapindex.
On the several hours that followed I searched the meanderings of various forums out there in search for some key concepts that could make me understand what I was dealing with, but in the end I find myself here writing this post.
I noticed precisely that the variable "mapindex" continued to be equal to zero, although I had manually set it to three; I can imagine that there is some inconsistency in the management of the maps.
I also attach the CONFIG file of core1 in ch1:
SpoilerVIEW_RANGE: 10000 PASSES_PER_SEC: 25 SAVE_EVENT_SECOND_CYCLE: 180 PING_EVENT_SECOND_CYCLE: 180 DB_ADDR: 127.0.0.1 COMMON_SQL: 127.0.0.1 user password common 3306 LOG_SQL: 127.0.0.1 user password log 3306 ADMINPAGE_IP1: 192.168.1.10x ADMINPAGE_PASSWORD: 58948HG83H4G8H84x MAX_LEVEL: 120 CHANGE_ATTR_TIME_LIMIT: 0 EMOTION_MASK_REQUIRE: 0 PRISM_ITEM_REQUIRE: 0 SHOP_PRICE_3X_TAX: 0 GLOBAL_SHOUT: 1 ITEM_COUNT_LIMIT: 250 STATUS_POINT_GET_LEVEL_LIMIT: 120 STATUS_POINT_SET_MAX_VALUE: 90 SHOUT_LIMIT_LEVEL: 15 DB_LOG_LEVEL: 1 EMPIRE_LANGUAGE_CHECK: 0 PLAYER_SQL: 127.0.0.1 user password player 3306 HOSTNAME: srv1-ch1-core1 CHANNEL: 1 MAP_ALLOW: 1 21 41 3 23 43 4 24 44 5 25 45 108 109 112 PORT: 30003 P2P_PORT: 30004 DB_PORT: 30000
And also the "index" file in the "map" folder of the local, which obviously does not show any "0" value.
Spoiler1 metin2_map_a1 3 metin2_map_a3 4 metin2_map_guild_01 5 metin2_map_monkey_dungeon_11 6 metin2_guild_village_01 21 metin2_map_b1 23 metin2_map_b3 24 metin2_map_guild_02 25 metin2_map_monkey_dungeon_12 26 metin2_guild_village_02 41 metin2_map_c1 43 metin2_map_c3 44 metin2_map_guild_03 45 metin2_map_monkey_dungeon_13 46 metin2_guild_village_03 61 map_n_snowm_01 62 metin2_map_n_flame_01 63 metin2_map_n_desert_01 64 map_n_threeway 65 metin2_map_milgyo 66 metin2_map_deviltower1 67 metin2_map_trent 68 metin2_map_trent02 69 metin2_map_WL_01 70 metin2_map_nusluck01 71 metin2_map_spiderdungeon_02 72 metin2_map_skipia_dungeon_01 73 metin2_map_skipia_dungeon_02 81 metin2_map_wedding_01 100 metin2_map_fielddungeon 101 metin2_map_resources_zon 103 metin2_map_t1 104 metin2_map_spiderdungeon 105 metin2_map_t2 107 metin2_map_monkey_dungeon 108 metin2_map_monkey_dungeon2 109 metin2_map_monkey_dungeon3 110 metin2_map_t3 111 metin2_map_t4 112 metin2_map_duel 113 metin2_map_oxevent 114 metin2_map_sungzi 118 metin2_map_sungzi_flame_hill_01 119 metin2_map_sungzi_flame_hill_02 120 metin2_map_sungzi_flame_hill_03 121 metin2_map_sungzi_snow 122 metin2_map_sungzi_snow_pass01 123 metin2_map_sungzi_snow_pass02 124 metin2_map_sungzi_snow_pass03 125 metin2_map_sungzi_desert_01 126 metin2_map_sungzi_desert_hill_01 127 metin2_map_sungzi_desert_hill_02 128 metin2_map_sungzi_desert_hill_03 181 metin2_map_empirewar01 182 metin2_map_empirewar02 183 metin2_map_empirewar03 200 gm_guild_build 208 metin2_map_skipia_dungeon_boss 216 metin2_map_devilcatacomb 217 metin2_map_spiderdungeon_03 301 Metin2_map_CapeDragonHead 302 metin2_map_dawnmistwood 303 metin2_map_BayBlackSand 304 metin2_map_Mt_Thunder 351 metin2_map_n_flame_dungeon_01 130 natural_map 131 deep_underwater_cave 132 plechito_owl_map
#UPDATE#
By logging in the game from the local network where the server runs, the login proceeds smoothly and the character is correctly loaded into the map.This should move the search for the solution in a completely different direction.
I performed a further test, opening all the incoming and outgoing ports to the server both on the router and on the firewall, then tryed to log in from the external network, but the result was always negative.
I realize that I am in the domain of competence of the game itself, my competence here is equal only to what I can understand as a programmer, so before I start moving by breaking everything, I think it is better to appeal to those who have more experience than me and probably can direct me to what I have to do to solve this technical issue and finally be able to sip my fucking champagne in front of the village of Shinsoo.
As always, I thank you in advance and remind you to wash your hands!.
Love
- MACROMANGO -
Greetings from pizzaland, my dudes!
I'm "internationally known and locally respected" with the alias of MACRO;
I'm a huge IT fan, I started as a young weirdo stealing old hardware from rubbish dumps at night, then testing the components and assembling the good ones, making "frankenstein-looking-like" home servers to keep my files safe on RAID and do my weirdo stuff (lots of testing and lots of blowing up), closed in my attic at night.
I also offered IT support to my school friends for a little money, using those "reconditioned" components to fix their terminals, that made me save the amount of money I needed to buy me latest generation hardware for my pc as well as a used DELL PowerEdge server (I have a thing for DELL), that made me deeply enthusiast on real server managing stuff, I was fascinated about the virtualization and spent a lot of time playing around with VmWare in order to become familiar with all its potentialities: that made me go "MAMMA MIA!"
I enjoyed Metin2 on my teens, it was a lovely back in time since there wasn't all that "bullshit" that we have today and people was kinda nicer; it was more about chilling around.
I always was a full buff shaman because I'm a comfy one and my role is definetely the supporter.
I remember starting one lame pserver on a "frankenstein-looking-like" machine (closed, just for me and a friend of mine) back in the days, with a .vdi image of the 2011 server files: the "franzi" ones; we played on it for like a year straight every night feeling like two gods in a desert planet: modding items, exploring the maps, duelling, spawning A TON of mobs just to make the thing crash and mainly chatting and enjoying our shiny modded characters: the comfy way you kno!
I'm back as an adult now, I'm a 22yrs old financially stable weirdo living in it's own house; and I'm here because I truly would like to master my knowledge about the managing of both the server side and client side of Metin2 pserver because I'll like to pull out one of my never fulfilled desires: open my own pserver to the public, running on machines I have physical contact with.
My vision about this is a fully clean experience with no bullshit.
I'm not, as we say in Italy: "One that likes the baby food ready"; meaning that I'm not a person who avoids the fatigue and wants all the stuff "ready to eat", like a baby.
If the effort is related to a personal archievement I'm in first line doing wathever I have to do with a big ass smile on my face!
My knowledge in IT is completely self-taught, and it's propelled by pure passion, so there is literally nothing that doesn't amuse me when it comes to "make the thing work".
For this reason I'm in no hurry with my project, as I said my schedule is to first master my knowledge, messing things up with some tests and deeply understand how this systems work.
Again, as we say in Italy: "Those who do it themselves, do it like three people" (If you want something done, do it by yourself); nothing more true than this, especially when you are a meticulous autistic like me!
This place is a well of knowledge and I'm glad to have the chance to dive into it!
Many pizza-flavored greetings from Italy!
See you around! (Wash you hands!)
MACRO- 6
[Dumb question] what player_index pids (pid1, pid2, pid3, pid4, pid5) are actually for? 🥶
in Community Support - Questions & Answers
Posted
Thank you guys it is so obvious now!