wubservice
-
Posts
19 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by wubservice
-
-
4 minutes ago, TMP4 said:
Yes because on "normal" mode you can fight on map1 or any map. Your t1 and t2 map is not working. We don't have access to your computer to check them... So read Owsap tutorial and check what's wrong.
Is the same map, and T1 and T2 is for the empire war
-
21 minutes ago, TMP4 said:
Basicly your war map is not operating. Owsap gave you a good explanation how to check it. I just say one more thing, check if you have more then 32 map in your ch99 config file since that's the maximum, the 33th is not working by default.
The map don't work on "Arena" mode, but on "Normal" mode work good...
EDIT: My ch99 have only 19 maps -
-
-
41 minutes ago, Owsap said:
First of all, double check if the coordinates and the map index are correct in the server files.
Server/share/locale/map/index103 metin2_map_t1 105 metin2_map_t2 110 metin2_map_t3 111 metin2_map_t4
Server/share/locale/map/metin2_map_t1/Setting.txt
ScriptType MapSetting CellScale 200 HeightScale 0.500000 ViewRadius 128 MapSize 3 3 BasePosition 0 25600 TextureSet metin2_map_t1.txt Environment map_b_fielddungeon2.msenv
Server/share/locale/map/metin2_map_t2/Setting.txt
ScriptType MapSetting CellScale 200 HeightScale 0.500000 ViewRadius 128 MapSize 1 1 BasePosition 6400 0 TextureSet textureset\metin2_map_t2.txt Environment t2.msenv
Server/share/locale/map/metin2_map_t3/Setting.txt
ScriptType MapSetting CellScale 200 HeightScale 0.500000 ViewRadius 128 MapSize 1 1 BasePosition 32000 0 TextureSet textureset\metin2_map_t3.txt Environment t2.msenv
Server/share/locale/map/metin2_map_t4/Setting.txt
ScriptType MapSetting CellScale 200 HeightScale 0.500000 ViewRadius 128 MapSize 1 1 BasePosition 57600 0 TextureSet textureset\metin2_map_t4.txt Environment moonlight04.msenv
all the files mentioned above and the additional server_attr file for each map.
Server/Game99/CONFIGMAP_INDEX: 103 105 110 111
In your client files, you should also check if the atlasinfo.txt contains the correct coordinates for each map as in your server files.
Client/locale/atlasinfo.txt
Client/root/atlasinfo.txtmetin2_map_t1 0 25600 3 3 metin2_map_t2 6400 0 1 1 metin2_map_t3 32000 0 1 1 metin2_map_t4 57600 0 1 1
You should also double check if you have another map on top of the guild map's coordinates, sometimes this is a common issue when warping to a map or simply using the GM go command.
Here is what I mean,
Each block represents a map, as you can see T1, T2, T3 and T4 are separate from each other and no other map is on top of them.
Now, in this case you can clearly see another map is on top of map T1 which will mess the coordinates of the map.
the tool "M2Koordinator - By KingSora!1" used in the demonstration above.
There is also a possibility that the map index is not correct in your source, this should be a rare case but it should also be verified.
Source/Server/game/war_map.h
Make sure you are using the correct map index.enum EWarMapIndex { WAR_MAP_INDEX_NORMAL = 110, WAR_MAP_INDEX_FLAG = 111, };
Instead of using makequestbutton in the guild_war_join.quest you can use send_letter.
Here is an example:quest guild_war_join begin state start begin when letter with (pc.get_map_index() != 71 and pc.get_map_index() != 104 and pc.get_map_index() != 72 and pc.get_map_index() != 73 and pc.get_map_index() != 208) and pc.get_map_index() <= 200 begin local e = guild.get_any_war() if e != 0 and pc.get_war_map() == 0 then setskin(NOWINDOW) send_letter(gameforge.locale.guild.war_join_request) --makequestbutton(gameforge.locale.guild.war_join_request) end end when button with (pc.get_map_index() != 71 and pc.get_map_index() != 104 and pc.get_map_index() != 72 and pc.get_map_index() != 73 and pc.get_map_index() != 208) and pc.get_map_index() <= 200 begin local e = guild.get_any_war() if e == 0 then say(gameforge.locale.guild.war_over) else say(string.format(gameforge.guild_war_join._10_say, guild.name(e))) local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) if s == 1 then guild.war_enter(e) else setskin(NOWINDOW) send_letter(gameforge.locale.guild.war_join_request) --makequestbutton(gameforge.locale.guild.war_join_request) end end end end end
SYSERR: Jul 20 20:57:32 :: Entergame: !GetMovablePosition (name Python 32000x0 map 110 changed to 44800x12800)
Same error... Is the only sysser... And it appear when i make /warp 320 0 -
UPDATE:
I get this sysser:
Entergame: !GetMovablePosition (name Python 57600x0 map 111 changed to 70400x12800)
Entergame: !GetMovablePosition (name Python 32000x0 map 110 changed to 44800x12800)
I compare all files with other files and is the same, all is be right17 hours ago, TMP4 said:Can you explain my why? I'm just checking the source rn to find out but can't really find anything. I know they have similar names but that's it? But again i may missing something, that's why i asked explain.
------------------------------------
@wubservice The map's coords are stored in CWarMapManager::LoadWarMapInfo
bool CWarMapManager::LoadWarMapInfo(const char * c_pszFileName) { TWarMapInfo * k; k = M2_NEW TWarMapInfo; k->bType = WAR_MAP_TYPE_NORMAL; k->lMapIndex = 110; k->posStart[0].x = 48 * 100 + 32000; k->posStart[0].y = 52 * 100 + 0; k->posStart[1].x = 183 * 100 + 32000; k->posStart[1].y = 206 * 100 + 0; k->posStart[2].x = 141 * 100 + 32000; k->posStart[2].y = 117 * 100 + 0; m_map_kWarMapInfo.insert(std::make_pair(k->lMapIndex, k)); k = M2_NEW TWarMapInfo; k->bType = WAR_MAP_TYPE_FLAG; k->lMapIndex = 111; k->posStart[0].x = 68 * 100 + 57600; k->posStart[0].y = 69 * 100 + 0; k->posStart[1].x = 171 * 100 + 57600; k->posStart[1].y = 182 * 100 + 0; k->posStart[2].x = 122 * 100 + 57600; k->posStart[2].y = 131 * 100 + 0; m_map_kWarMapInfo.insert(std::make_pair(k->lMapIndex, k)); return true; }
Can you actually warp to these coords? Like /warp 368 52 (not needing the ending 00 in /warp)
The warp actually happens in guild_war.cpp ch->WarpSet(pos.x, pos.y, gw.map_index);
Insert something like this above there to find out it is working:
ch->ChatPacket(CHAT_TYPE_INFO, "Test: %d, %d, %d", pos.x, pos.y, gw.map_index);
If you can't see that test message, the function stops somewhere back.
I do / warp 368 52 and it teleports me but it takes me off the map and takes me to the city
-
12 hours ago, LordZiege said:
try add mapindex 103 and 105 to ch99 as well, they are also neccesary.
I already had those too
11 hours ago, TMP4 said:Can you explain my why? I'm just checking the source rn to find out but can't really find anything. I know they have similar names but that's it? But again i may missing something, that's why i asked explain.
------------------------------------
@wubservice The map's coords are stored in CWarMapManager::LoadWarMapInfo
bool CWarMapManager::LoadWarMapInfo(const char * c_pszFileName) { TWarMapInfo * k; k = M2_NEW TWarMapInfo; k->bType = WAR_MAP_TYPE_NORMAL; k->lMapIndex = 110; k->posStart[0].x = 48 * 100 + 32000; k->posStart[0].y = 52 * 100 + 0; k->posStart[1].x = 183 * 100 + 32000; k->posStart[1].y = 206 * 100 + 0; k->posStart[2].x = 141 * 100 + 32000; k->posStart[2].y = 117 * 100 + 0; m_map_kWarMapInfo.insert(std::make_pair(k->lMapIndex, k)); k = M2_NEW TWarMapInfo; k->bType = WAR_MAP_TYPE_FLAG; k->lMapIndex = 111; k->posStart[0].x = 68 * 100 + 57600; k->posStart[0].y = 69 * 100 + 0; k->posStart[1].x = 171 * 100 + 57600; k->posStart[1].y = 182 * 100 + 0; k->posStart[2].x = 122 * 100 + 57600; k->posStart[2].y = 131 * 100 + 0; m_map_kWarMapInfo.insert(std::make_pair(k->lMapIndex, k)); return true; }
Can you actually warp to these coords? Like /warp 368 52 (not needing the ending 00 in /warp)
The warp actually happens in guild_war.cpp ch->WarpSet(pos.x, pos.y, gw.map_index);
Insert something like this above there to find out it is working:
ch->ChatPacket(CHAT_TYPE_INFO, "Test: %d, %d, %d", pos.x, pos.y, gw.map_index);
If you can't see that test message, the function stops somewhere back.
i will try
9 hours ago, LordZiege said:It was told me some years ago, i dont know why, i cant find any reference in the source, but some tests showed me that its "why the heck" needed. i tried several times without 103 and 105 (t1/t2) but for me it doesnt work without them.
it didn't work for me
-
1 hour ago, SDlongju2 said:
./qc guild_join_war.quest ?
or maybe post the quest , something is wrong with the teleport coords
The quest are the same of all serverfiles... and the coordinates are the ones that come in all the serverfiles as well
-
Good morning friends, I have a problem with guild wars, when doing battle with the first mode the following happens:
1- I do not get the mission to enter, I must teleport to appear, yes, the quest exists and has the correct name "guild_join_war.quest" something like that.
2- By clicking on the mission (when it finally appears), I give it "teleport" and it does nothing.
3- Yes, I have the maps in game99 (110 and 111).
4- I checked the "guild" files from the source with another binary and everything is exactly the same.
Any idea what it could be? I don't mind what happens in the first point... The real problem is in the second point It should be noted that in the other modes (arena and flags) if it teleports me
(Translate by google) -
it work?
- 1
-
1 hour ago, Klaus said:
Yes
I already tried ... nothing
- 1
-
3 hours ago, Klaus said:
I'm not sure, but I believe that changing the Quickslot to WORD and extending the quantity of items as well.
- 1
-
-
-
I have a problem when selling items, after slot 255, only one item is sold, no matter how much I have, only one is sold...
Before slot 255 everything is sold correctly
I tried to debug and the client (Python) gets the information correctly, slot number and item quantity
but nevertheless on the server (input_main) only reaches the information of the slot and not the count, only a 0 or a 1 arrives.
Explanatory image (I dont know how put it in the post): Imagen
case SHOP_SUBHEADER_CG_SELL2: (Input_main)Spoilercase SHOP_SUBHEADER_CG_SELL2:
{
if (uiBytes < sizeof(UINT) + sizeof(BYTE))
return -1;UINT pos = *reinterpret_cast<const UINT*>(c_pData++);
BYTE count = *(c_pData);sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());
CShopManager::instance().Sell(ch, pos, count);ch->ChatPacket(CHAT_TYPE_INFO, "return pos: %d, count: %d", pos, count);
return sizeof(UINT) + sizeof(BYTE);
}bool CPythonNetworkStream::SendShopSellPacketNew(UINT bySlot, BYTE byCount): (PythonNetworkPhaseGameItem.cpp)
Spoilerbool CPythonNetworkStream::SendShopSellPacketNew(UINT bySlot, BYTE byCount)
{
if (!__CanActMainInstance())
return true;TPacketCGShop PacketShop;
PacketShop.header = HEADER_CG_SHOP;
PacketShop.subheader = SHOP_SUBHEADER_CG_SELL2;if (!Send(sizeof(TPacketCGShop), &PacketShop))
{
Tracef("SendShopSellPacket Error\n");
return false;
}
if (!Send(sizeof(UINT), &bySlot))
{
Tracef("SendShopAddSellPacket Error\n");
return false;
}
if (!Send(sizeof(BYTE), &byCount))
{
Tracef("SendShopAddSellPacket Error\n");
return false;
}Tracef(" SendShopSellPacketNew(bySlot=%d, byCount=%d)\n", bySlot, byCount);
return SendSequence();
} -
Just now, Gurgarath said:
You don't have the correct function. Check every source with sash, it has it.
Note that this topic isn't an help request.
Thanks, I don't have the sash system, but I already know that there is the function
- 1
-
ActivateSlot() takes exactly 2 arguments (6 given)
can anybody help me?
Mark System Offline Shop Bug
in Community Support - Questions & Answers
Posted · Edited by wubservice
That already comes in the tutorial, and it is as if the call did not work
Help?
EDIT:
On uinewshop.py search:
class ShopDialogCreate(ui.ScriptWindow):
UI={}
def __init__(self, interface):
ui.ScriptWindow.__init__(self)
self.tooltipItem = uiToolTip.ItemToolTip()
self.tooltipItem.Hide()
self.privateShopBuilder = uiPrivateShopBuilder.PrivateShopBuilder()
self.privateShopBuilder.Hide()
Copy and paste:
if app.WJ_ENABLE_TRADABLE_ICON:
self.privateShopBuilder.BindInterface(interface)
self.privateShopBuilder.SetInven(interface.wndInventory)
interface.wndInventory.BindWindow(self.privateShopBuilder)