Jump to content

wubservice

Inactive Member
  • Posts

    19
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by wubservice

  1. On 12/23/2021 at 9:32 PM, Enju said:

    Just create the function to return the page index.

    Open the file uiInventory.py (root) and add the following function in the InventoryWindow class.

    def GetInventoryPageIndex(self):
    	return self.inventoryPageIndex

     

    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)

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

  3. 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/index

    103	metin2_map_t1
    105	metin2_map_t2
    110	metin2_map_t3
    111	metin2_map_t4

    Server/share/locale/map/metin2_map_t1/Setting.txt

      Reveal hidden contents
    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

      Reveal hidden contents
    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

      Reveal hidden contents
    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

      Reveal hidden contents
    ScriptType	MapSetting
    
    CellScale	200
    HeightScale	0.500000
    
    ViewRadius	128
    
    MapSize	1	1
    BasePosition	57600	0
    TextureSet	textureset\metin2_map_t4.txt
    Environment	moonlight04.msenv

     

    This is the hidden content, please
    all the files mentioned above and the additional server_attr file for each map.


    Server/Game99/CONFIG

    MAP_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.txt

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

    210959AtlasMap.jpg

    Now, in this case you can clearly see another map is on top of map T1 which will mess the coordinates of the map.

    211138AtlasMapBricked.jpg

    This is the hidden content, please
    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:

      Reveal hidden contents
    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

  4. 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 right

    17 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

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

  6. 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)

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

    Spoiler

            case 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)

    Spoiler

    bool 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();
    }

     

×
×
  • 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.