Jump to content

Night

Inactive Member
  • Posts

    839
  • Joined

  • Last visited

  • Days Won

    5
  • Feedback

    0%

Posts posted by Night

  1. I need root unpacked and item_proto / mob_proto :D

    for the root you realy need to code anything new by your self sence i dont think anyone can unpack it and i dont think that anyone would waste his time on such a thing there are not any reverse engine for cython yet so its usless and making one to steel just one peice of code is kind of stupid you should just learn python to do so

    for the item/mob proto just upload them here and i will convert them to .txt that should help you a littel

  2. on mysql db common table locale there is an option there named locale change it then change the folder name
    thats all

    ah as well the lua script might need to fix the path

    dofile(get_locale_base_path().."/quest/mylua.lua")
    

    depend on the path but at least all of your changes will be saved

    and there is maybe (rarely)

    a need to change the locale in the config too i dont think that that is neccesery

    • Love 1
  3. here is my log and my command_log table structur try it out :

    CREATE TABLE `log` (
      `vnum` varchar(11) COLLATE big5_bin DEFAULT NULL,
      `ID` int(11) DEFAULT NULL,
      `type` varchar(20) COLLATE big5_bin DEFAULT NULL,
      `time` time DEFAULT NULL,
      `who` int(11) DEFAULT NULL,
      `x` int(11) DEFAULT NULL,
      `y` int(11) DEFAULT NULL,
      `what` int(11) DEFAULT NULL,
      `how` varchar(20) COLLATE big5_bin DEFAULT NULL,
      `hint` varchar(20) COLLATE big5_bin DEFAULT NULL,
      `ip` varchar(30) COLLATE big5_bin DEFAULT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=big5 COLLATE=big5_bin;
    
    
    
    CREATE TABLE `command_log` (
      `userid` int(11) DEFAULT NULL,
      `server` int(11) DEFAULT NULL,
      `ip` text,
      `port` int(11) DEFAULT NULL,
      `username` varchar(12) CHARACTER SET big5 NOT NULL DEFAULT 'NONAME',
      `command` varchar(20) CHARACTER SET big5 COLLATE big5_bin DEFAULT NULL,
      `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    

    for

    SYSERR: Jan 29 23:20:42 :: RunState: LUA_ERROR: [string "cube_open"]:1: attempt to index global `cube' (a nil value) WITH ERRORCODE 1
    SYSERR: Jan 29 23:20:42 :: RunState: LUA_STATE: index 0 ref 3
    SYSERR: Jan 29 23:20:42 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube_open.start click
    
    

    they should be just some quest error

  4. here is the default one (dragon_soul_table.txt) :

    # 용혼석 테이블들...										
    # TAB 으로 구분되니 엑셀로 볼 것.										
    # vim으로 본다면 탭간 간격을 조정하고 볼 것. (set ts=16 추천)										
    # 큰 따옴표로 묶인 부분은 안 구분. 										
    # " 이딴거 지원 안함.										
    										
    # 용혼석 Vnum에 대한 comment										
    # ITEM VNUM을 10만 자리부터, FEDCBA라고 한다면										
    # FE : 용혼석 종류.	D : 등급									
    # C : 단계			B : 강화							
    # A : 여벌의 번호들... 										
    # 이 체계에서 벗어나는 용혼석은 용서하지 않을 것이다.										
    # ok?										
    # 용혼석이 너무나도 많기 때문에 Vnum이 중구난방이면,										
    #	Special item group에서 group으로 묶어서 처리하기도 힘들고,									
    #	VnumHelper.h에서 처리하는 것도 힘들다. 									
    # 	Group 잡는데만 수천줄을 써야할 지도...									
    # Vnum에 체계를 잡아서 자릿수 기반으로 해야만 한다.										
    										
    # Table은 "Group"과 "이름"으로 시작한다.										
    # Table 내부에 또 Table이 있을 수 있다.										
    # 그렇다고 엉뚱한 테이블을 써놓는다고 서버가 인식하는 것은 아니다.										
    # 필요한 테이블은 다음과 같다.										
    # BaseVnums, BaseAttrs, AddtionalAttrs, AttrSettings, UpgradeTable, ImproveTable,										
    # RefineTable, UpgradeMoneys, ImproveTable, RefineMoneys, WeightTable, DurationTable,										
    # DragonHeartExtTable, DragonSoulExtTable										
    										
    # 확률 테이블의 값은 기본적으로 float이다.										
    										
    # 중요 !!!!!										
    # 테이블을 보다 보면 #--#이라 쓰여진 부분이 있는데 절대로 지우지 말것.										
    # 										
    										
    # 이건 vnum to 이름 mapping.										
    # 이걸로 특정 vnum의 용혼석이 어떤 종류의 용혼석인지(이름이 뭔지) 알아낸 후,										
    # 그 용혼석에 해당하는 속성을 찾는다.										
    # 또한 여기에 적혀있지 않은 용혼석이 밑에 Group 정의하는 부분에 있다면										
    # 에러.										
    Group VnumMapper										
    {										
    	# 시작 vnum.									
    	# 여기서 써야할 부분은 위에 설명한 FE에 해당하는 부분. 									
    	# FE를 써줄 것									
    	#--#	DragonSoulName	Type							
    	1	백룡석	11							
    	2	화룡석	12							
    	3	풍룡석	13							
    	4	철룡석	14							
    	5	뇌룡석	15							
    	6	흑룡석	16							
    }										
    										
    Group BasicApplys										
    {										
    	Group 백룡석									
    	{									
    	# 1부터 순서대로 부여된다.									
    		#--#	Apply_Type	Apply_value						
    		1	INT	10						
    		2	RESIST_ICE	10						
    	}									
    										
    	Group 화룡석									
    	{									
    		#--#	Apply_Type	Apply_value						
    		1	STR	10						
    		2	RESIST_FIRE	10
    	}									
    	Group 풍룡석									
    	{									
    		#--#	Apply_Type	Apply_value						
    		1	MAX_SP	500						
    		2	RESIST_WIND	10						
    	}									
    	Group 철룡석									
    	{									
    		#--#	Apply_Type	Apply_value						
    		1	DEX	10						
    		2	RESIST_EARTH	10						
    	}									
    	Group 뇌룡석									
    	{									
    		#--#	Apply_Type	Apply_value						
    		1	MAX_HP	1500						
    		2	RESIST_ELEC	10						
    	}									
    	Group 흑룡석									
    	{									
    		#--#	Apply_Type	Apply_value						
    		1	CON	10						
    		2	RESIST_DARK	10						
    	}									
    }										
    										
    Group AdditionalApplys										
    {										
    	Group 백룡석									
    	{									
    	# 앞의 첫 컬럼은 순서와 관계 없다. 철저히 확률에 따라 속성이 부여될 뿐이다.									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	MAGIC_ATT_GRADE	15	10					
    		2	MAGIC_DEF_GRADE	15	10					
    		3	SKILL_DAMAGE_BONUS	15	10					
    		4	SKILL_DEFEND_BONUS	15	10					
    	}									
    	Group 화룡석									
    	{									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	ATT_BONUS	300	10					
    		2	DEF_BONUS	200	10					
    		3	NORMAL_HIT_DAMAGE_BONUS	15	10					
    		4	NORMAL_HIT_DEFEND_BONUS	15	10					
    	}									
    	Group 풍룡석									
    	{									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	MAX_HP	3000	10					
    		2	HP_REGEN	10	10					
    		3	STEAL_HP	10	10					
    		4	KILL_HP_RECOVER	5	10					
    		5	MAX_HP_PCT	20	10					
    	}									
    	Group 철룡석									
    	{									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	ATT_BONUS_TO_WARRIOR	15	10					
    		2	ATT_BONUS_TO_ASSASSIN	15	10					
    		3	ATT_BONUS_TO_SURA	15	10					
    		4	ATT_BONUS_TO_SHAMAN	15	10					
    		5	RESIST_WARRIOR	15	10					
    		6	RESIST_ASSASSIN	15	10					
    		7	RESIST_SURA	15	10					
    		8	RESIST_SHAMAN	15	10					
    	}									
    	Group 뇌룡석									
    	{									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	MAX_SP	1500	10					
    		2	SP_REGEN	10	10					
    		3	STEAL_SP	10	10					
    		4	KILL_SP_RECOVER	5	10					
    		5	MAX_SP_PCT	20	10					
    	}									
    	Group 흑룡석									
    	{									
    		#--#	Apply_Type	Apply_value	Prob					
    		1	BLOCK	10	10					
    		2	DODGE	10	10					
    		3	REFLECT_MELEE	10	10					
    		4	RESIST_CRITICAL	10	10					
    		5	RESIST_PENETRATE	10	10					
    	}									
    }										
    										
    # 여기부터 Default를 둔다.										
    # Default 값을 모든 용혼석이 따르고, 										
    # 특정 값이 있는 용혼석은 Default를 바탕으로 그 값을 덮어쓴다.										
    # 등급에 따른 속성수										
    # 단, basis, add_max는 3보다 크면 안된다.										
    Group ApplyNumSettings										
    {										
    	Group Default									
    	{									
    		#--#	GRADE_NORMAL	GRADE_BRILLIANT	GRADE_RARE	GRADE_ANCIENT	GRADE_LEGENDARY			
    		basis	1	1	1	2	2			
    		add_min	0	0	0	0	0			
    		add_max	0	1	2	2	3			
    	}									
    #	Group 백룡석									
    #	{									
    #		#--#	GRADE_NORMAL	GRADE_BRILLIANT	GRADE_RARE	GRADE_ANCIENT	GRADE_LEGENDARY			
    #		basis	1	1	1	2	2			
    #	}									
    }										
    										
    # 용혼석 가중치 테이블.										
    # 이 테이블에서 값이 0이라면 그 이상의 강화는 불가능하다고 판단한다.										
    Group WeightTables										
    {										
    	Group Default									
    	{									
    		Group GRADE_NORMAL								
    		{								
    	#		단계	강화						
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	1	2	3	0	0	0	0
    			STEP_LOW	2	3	4	0	0	0	0
    			STEP_MID	3	4	5	6	0	0	0
    			STEP_HIGH	4	5	6	7	0	0	0
    			STEP_HIGHEST	5	6	7	8	10	0	0
    		}								
    		Group GRADE_BRILLIANT								
    		{								
    			STEP_LOWEST	3	4	5	6	0	0	0
    			STEP_LOW	4	5	6	8	0	0	0
    			STEP_MID	5	6	8	10	0	0	0
    			STEP_HIGH	6	8	10	12	15	0	0
    			STEP_HIGHEST	8	10	12	15	20	0	0
    		}								
    		Group GRADE_RARE								
    		{								
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	6	7	9	11	15	0	0
    			STEP_LOW	7	9	11	15	20	0	0
    			STEP_MID	9	11	15	20	25	0	0
    			STEP_HIGH	11	15	20	25	30	0	0
    			STEP_HIGHEST	15	20	25	30	40	0	0
    		}								
    		Group GRADE_ANCIENT								
    		{								
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	10	12	15	18	20	0	0
    			STEP_LOW	12	15	18	20	25	0	0
    			STEP_MID	15	18	20	25	35	0	0
    			STEP_HIGH	18	20	25	35	40	0	0
    			STEP_HIGHEST	20	25	35	40	60	80	0
    		}								
    		Group GRADE_LEGENDARY								
    		{								
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	30	35	40	45	50	0	0
    			STEP_LOW	35	40	45	50	55	0	0
    			STEP_MID	40	45	50	55	65	0	0
    			STEP_HIGH	45	50	55	65	75	90	0
    			STEP_HIGHEST	50	55	65	75	90	105	120
    		}								
    	}									
    #	Group 백룡석									
    #	{									
    #		Group GRADE_NORMAL								
    #		{								
    #			#--#	0	1	2	3	4	5	6
    #			STEP_LOWEST	10	20	53	0	0	0	0
    #			STEP_HIGHEST	50	60	37	18	10	0	0
    #		}								
    #	}									
    }
    										
    # 개량 table									
    Group RefineGradeTables									
    {									
    	Group Default								
    	{								
    		#--#	NEED_COUNT	FEE	GRADE_NORMAL	GRADE_BRILLIANT	GRADE_RARE	GRADE_ANCIENT	GRADE_LEGENDARY
    		GRADE_NORMAL	15	30000	70	25	5	0	0
    		GRADE_BRILLIANT	10	50000	25	70	5	0	0
    		GRADE_RARE	5	70000	8	15	75	2	0
    		GRADE_ANCIENT	3	100000	2	3	8	85	2
    	}								
    }									
    									
    Group RefineStepTables									
    {									
    	Group Default								
    	{								
    		#--#	NEED_COUNT	FEE	STEP_LOWEST	STEP_LOW	STEP_MID	STEP_HIGH	STEP_HIGHEST
    		STEP_LOWEST	4	20000	70	25	5	0	0
    		STEP_LOW	3	30000	25	70	5	0	0
    		STEP_MID	2	40000	10	20	80	1	0
    		STEP_HIGH	1	50000	2	3	5	89	1
    	}								
    }									
    									
    Group RefineStrengthTables									
    {									
    	Group Default								
    	{								
    		# MATERIAL_DS_REFINE_NORMAL : GRADE_NORMAL 강화석							
    		# MATERIAL_DS_REFINE_BLESSED : 축복의 강화석							
    		# MATERIAL_DS_REFINE_HOLLY : 용신의 강화석							
    		#--#	FEE	0	1	2	3	4	5
    		MATERIAL_DS_REFINE_NORMAL	10000	100	80	70	50	30	20
    		MATERIAL_DS_REFINE_BLESSED	20000	100	88	77	55	33	22
    		MATERIAL_DS_REFINE_HOLLY	30000	100	90	80	60	40	30
    	}								
    }									
    
    # 용심은 100000(임시 vnum)이고, 충전량은 socket (0)에 박아넣는다.										
    # 단, special item group에 vnum 10053으로 정의되어있는 다른 용심들은 Value(0)에 있는 값이 충전량.										
    # 용심 추출 확률 테이블										
    # 충전량이 0이라는 것은 추출 실패라는 거.										
    Group DragonHeartExtTables										
    {										
    	Group Default									
    	{									
    		#--#	1	2	3	4	5			
    	# 용심 충전량(%)									
    		CHARGING	0	5	15	30	50			
    	#	등급과 충전량에 따른 확률 테이블								
    	#	등급 	확률							
    		GRADE_NORMAL	50	35	12	2	1			
    		GRADE_BRILLIANT	35	40	20	4	1			
    		GRADE_RARE	20	35	30	12	3			
    		GRADE_ANCIENT	15	30	35	15	5			
    		GRADE_LEGENDARY	10	20	40	20	10			
    	}									
    }										
    										
    # 용혼석 추출 확률 테이블.										
    # 이것도 1, 2안이 있어 통합할 수 있는 방안으로 감.										
    # 추출 확률을 정할 수 있고, 실패 부산물도 정할 수 있음.(0이면 안줌)										
    Group DragonSoulExtTables										
    {										
    	Group Default									
    	{									
    				#실패 부산물						
    		#--#	Prob	ByProduct						
    		GRADE_NORMAL	50	30270						
    		GRADE_BRILLIANT	40	30270						
    		GRADE_RARE	30	30270						
    		GRADE_ANCIENT	30	30270						
    		GRADE_LEGENDARY	20	30270						
    	}									
    }										
    
    

    SYSERR: Jan 29 20:01:41 :: heart_idle: losing 48 seconds. (delay occured)
    

    maybe bcz of the ram

    SYSERR: Jan 29 20:01:43 :: socket_bind: bind: Address already in use
    

    you tried to start this prosses twice or something like that

    SYSERR: Jan 29 20:01:57 :: ChildLoop: AsyncSQL: query failed: Data too long for column 'hint' at row 1 (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip) VALUES('CHARACTER', NOW(), 57974, 481360, 956238, 0, 'LOGIN', '78.29.132.110 3300886 1 1 1855', '78.29.132.110') errno: 1406)
    SYSERR: Jan 29 20:01:57 :: ChildLoop: AsyncSQL: query failed: Incorrect integer value: 'Y' for column 'is_gm' at row 1 (query: INSERT INTO loginlog2(type, is_gm, login_time, channel, account_id, pid, ip, client_version) VALUES('INVALID', 'Y', NOW(), 1, 1, 57974, inet_aton('78.29.132.110'), '') errno: 1366)
    

    try to clean the full log database first if this shows again then post it again here.

    • Love 1
  5. Another question: Mode? PvP, PvM Easy, PvM Hard?

    pvp -> player vs player (some server use pvp battel to level up for such a thing) << sample metin2story (secound server ) (arabic)

    pvm -> Player Vs Monster (i have never seen one)

    pve -> player vs envirenement (as hard as GFs or far cry harder) (most of them are easyer or as hard as gf with 50% bonus)

  6. look at your syserr that should give you more information (for more info -> questlua_global.cpp ->:

    	int _get_special_item_group( lua_State* L )
    	{
    		if (!lua_isnumber (L, 1))
    		{
    			sys_err("invalid argument");
    			return 0;
    		}
    
    		const CSpecialItemGroup* pItemGroup = ITEM_MANAGER::instance().GetSpecialItemGroup((DWORD)lua_tonumber(L, 1));
    
    		if (!pItemGroup)
    		{
    			sys_err("cannot find special item group %d", (DWORD)lua_tonumber(L, 1));
    			return 0;
    		}
    
    		int count = pItemGroup->GetGroupSize();
    		
    		for (int i = 0; i < count; i++)
    		{
    			lua_pushnumber(L, (int)pItemGroup->GetVnum(i));
    			lua_pushnumber(L, (int)pItemGroup->GetCount(i));
    		}
    
    		return count*2;
    	}
    

    )

  7. you will have to change the level field type to a  bigger one (http://help.scibit.com/mascon/masconMySQL_Field_Types.html) (the normal one is unsigned  TINYINT (the noramal max lvl is 255 so that should be enough if you want it over you will have to change that field type) .

    the rest you realy are going to need vs2013 or 2008 its realy hard to find all the needed reference using something else.

    good luck , (btw the basic to do that are already pub but not full)

  8. char_item.cpp :

    BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);
    to
    BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);
    

    (there is more then one)

    and the condition :

    if (p / (INVENTORY_MAX_NUM / 2) != bPage)
    

    to

    if (p / (INVENTORY_MAX_NUM / 4) != bPage)
    

    more then one time

    (what i mean is that you have to repeat this step many time)

  9. specular is not being used ....(anymore)

    it only takes the item id last number

    which is for you 08 so it takes  the specular/effect from +8 items

    sense when exactly ? the qestion is : why are they still packed on the item proto ?

    maybe for those only (20000 , 20250 , 20500 , 20750)

    doNaLs if you have time to spare i recommend you not to care about such minor things like how much the armor is shining (this is just -- with my full respect -- stupid.)
×
×
  • 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.