Jump to content

Den

Inactive Member
  • Posts

    110
  • Joined

  • Last visited

  • Days Won

    5
  • Feedback

    0%

Posts posted by Den

  1. You need to have the correct belt slot index in inventorywindow.py and make it refresh in RefreshEquipSlotWindow (uiinventory.py).

    That's what I have:

    inventorywindow.py

    						{
    							"name" : "EquipmentSlot",
    							"type" : "slot",
    
    							"x" : 3,
    							"y" : 3,
    
    							"width" : 150,
    							"height" : 182,
    
    							"slot" : (
    										{"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},
    										{"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},
    										{"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},
    										{"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},
    										{"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32}, #belt slot
    									),
    						},

    RefreshEquipSlotWindow (uiinventory.py)

    	def RefreshEquipSlotWindow(self):
    		getItemVNum=player.GetItemIndex
    		getItemCount=player.GetItemCount
    		setItemVNum=self.wndEquip.SetItemSlot
    		for i in xrange(player.EQUIPMENT_PAGE_COUNT):
    			slotNumber = player.EQUIPMENT_SLOT_START + i
    			itemCount = getItemCount(slotNumber)
    			if itemCount <= 1:
    				itemCount = 0
    			setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
    
    		if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
    			for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT):
    				slotNumber = player.NEW_EQUIPMENT_SLOT_START + i
    				itemCount = getItemCount(slotNumber)
    				if itemCount <= 1:
    					itemCount = 0
    				setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
    				print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber)

     

    Check what you are missing.

  2. 3 hours ago, charparodar said:

    I didn't understand what you asked... This is the whole debug info I get from gdb

    
    root@source:~ # gdb /usr/home/game/share/bin/game /usr/home/game/cores/channel1/game1/game.core
    GNU gdb 6.1.1 [FreeBSD]
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB.  Type "show warranty" for details.
    This GDB was configured as "i386-marcel-freebsd"...
    Core was generated by `game'.
    Program terminated with signal 11, Segmentation fault.
    Reading symbols from /lib/libmd.so.5...done.
    Loaded symbols for /lib/libmd.so.5
    Reading symbols from /usr/lib/libstdc++.so.6...done.
    Loaded symbols for /usr/lib/libstdc++.so.6
    Reading symbols from /lib/libm.so.5...done.
    Loaded symbols for /lib/libm.so.5
    Reading symbols from /lib/libgcc_s.so.1...done.
    Loaded symbols for /lib/libgcc_s.so.1
    Reading symbols from /lib/libthr.so.3...done.
    Loaded symbols for /lib/libthr.so.3
    Reading symbols from /lib/libc.so.7...done.
    Loaded symbols for /lib/libc.so.7
    Reading symbols from /usr/lib/libsupc++.so.1...done.
    Loaded symbols for /usr/lib/libsupc++.so.1
    Reading symbols from /libexec/ld-elf.so.1...done.
    Loaded symbols for /libexec/ld-elf.so.1
    #0  CHARACTER::GetWear (this=0x0, bCell=21) at char_item.cpp:519
    519             return m_pointsInstant.pItems[INVENTORY_MAX_NUM + bCell];
    [New Thread 28c05500 (LWP 100137/game)]
    [New Thread 28c05200 (LWP 100133/game)]
    [New Thread 28c04f00 (LWP 100132/game)]
    [New Thread 28c04300 (LWP 100129/game)]
    (gdb)
    

    And this is syslog, since the moment I push the metin till the end:

    
    May 19 08:21:37.347535 :: /m 8001
    May 19 08:21:37.347572 :: COMMAND: charparodar: mob
    May 19 08:21:37.365720 :: LOG: INSERT DELAYED INTO command_log (userid, server, ip, port, username, command, date ) VALUES(2, 999, 'xxx', 1, 'charparodar', 'm 8001', NOW()) 
    May 19 08:21:38.437591 :: Packet Analyze [Header 61][bufferLeft 23] 
    May 19 08:21:38.437656 :: CInputMain::Analyze() ==> Header [61] 
    May 19 08:21:38.987117 :: Packet Analyze [Header 2][bufferLeft 9] 
    May 19 08:21:38.987143 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:38.987150 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:38.987162 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:38.987166 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:38.987170 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:38.987175 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :987150 type :1210986496
    May 19 08:21:39.246541 :: Packet Analyze [Header 2][bufferLeft 26] 
    May 19 08:21:39.246585 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:39.246591 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:39.246599 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.246603 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.246608 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.246613 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :246591 type :1210986496
    May 19 08:21:39.316699 :: Packet Analyze [Header 2][bufferLeft 9] 
    May 19 08:21:39.316785 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:39.316794 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:39.316807 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.316858 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.316865 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.316902 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :316794 type :1210986496
    May 19 08:21:39.526522 :: Packet Analyze [Header 2][bufferLeft 9] 
    May 19 08:21:39.526549 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:39.526555 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:39.526563 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.526567 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.526572 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.526577 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :526555 type :1210986496
    May 19 08:21:39.526592 :: AddAffect Metin da Dor type 209 apply 0 0 flag 4 duration 31
    May 19 08:21:39.796620 :: Packet Analyze [Header 2][bufferLeft 9] 
    May 19 08:21:39.796686 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:39.796692 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:39.796701 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.796705 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.796710 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:39.796715 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :796692 type :1210986496
    May 19 08:21:40.56530 :: Packet Analyze [Header 2][bufferLeft 9] 
    May 19 08:21:40.56565 :: CInputMain::Analyze() ==> Header [2] 
    May 19 08:21:40.56571 :: [TEST_SERVER] Attack : charparodar type 0, MobBattleType 0
    May 19 08:21:40.56580 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:40.56585 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:40.56590 :: battle_melee_attack : [charparodar] attack to [Metin da Dor]
    May 19 08:21:40.56595 :: battle_hit : [charparodar] attack to [Metin da Dor] : dam :56571 type :1210986496
    May 19 08:21:40.56657 :: Bonus Exp : Ramadan Candy: 0 MallExp: 0 PointExp: 0
    May 19 08:21:40.56668 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=2, npc=8001, pc2=0)
    May 19 08:21:40.56676 :: Click Quest : MatchingQuest
    May 19 08:21:40.56839 :: QUEST Setting flag event_dressup.__status 0
    May 19 08:21:40.56892 :: Click Quest : MatchingQuest
    May 19 08:21:40.56902 :: Click Quest : MatchingQuest
    May 19 08:21:40.57042 :: QUEST Setting flag devilcatacomb_zone.__status 0
    May 19 08:21:40.57165 :: QUEST Setting flag levelup.__status 0
    May 19 08:21:40.57179 :: GetQF ( levelup . select )
    May 19 08:21:40.57184 :: GetQF ( levelup . current )
    May 19 08:21:40.57249 :: QUEST Setting flag pvp_manager.__status 0
    May 19 08:21:40.57285 :: QUEST Setting flag xmas_2012.__status 0
    May 19 08:21:40.57322 :: QUEST Setting flag pet_system.__status 0
    May 19 08:21:40.57346 :: Drop money : Attacker charparodar

     

    Just type "bt full" in gdb and you will get more information.

  3. 21 hours ago, danio475 said:

    @Syreldar that's why I asked for help on dev... I'm a totally beginner in cpp and I just do that as I can... idk why you're so rude before edition

    else if (GetWearFlag() & WEARABLE_UNIQUE)
    	{
    		int wear[4] = { WEAR_UNIQUE1, WEAR_UNIQUE2, WEAR_UNIQUE3, WEAR_UNIQUE4 };
    
    		for (int i = 0; i <= 3; i++)
    		{
    			if (!ch->GetWear(wear[i]))
    				break;
    		}
    
    		return wear[i];
    	}

    Didn't test but should work as well.

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