diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | conf-tmpl/charhelp.txt | 3 | ||||
-rw-r--r-- | db/homunculus_db.txt | 8 | ||||
-rw-r--r-- | db/item_db.txt | 2 | ||||
-rw-r--r-- | db/pet_db.txt | 2 | ||||
-rw-r--r-- | db/skill_unit_db.txt | 8 | ||||
-rw-r--r-- | doc/item_bonus.txt | 1 | ||||
-rw-r--r-- | doc/item_db.txt | 51 | ||||
-rw-r--r-- | doc/script_commands.txt | 2 | ||||
-rw-r--r-- | src/map/script.c | 47 | ||||
-rw-r--r-- | src/map/status.c | 2 |
11 files changed, 72 insertions, 57 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index fb75eaa8f..0d0778ffc 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2007/02/26 + * Corrected some typos and small details + (forgotten bInfiniteEndure [r6487], mysterious '1' in help file, etc) 2007/02/25 * Added Krade's makefile fix for 64bit compilers [ultramage] - ref: http://www.eathena.ws/board/index.php?showtopic=136622 diff --git a/conf-tmpl/charhelp.txt b/conf-tmpl/charhelp.txt index 92d6c5910..6ce1871f4 100644 --- a/conf-tmpl/charhelp.txt +++ b/conf-tmpl/charhelp.txt @@ -23,5 +23,4 @@ 60:#disguise <monster_name_or_monster_ID> <char name> - Changes disguise of a player 60:#undisguise <char name> - Cancels disguise of a player 60:#changesex <name> - Changes sex of a player (all characters of the account) - 60:#warp/#rura+ <mapname> <x> <y> <char name> - Warps character to location of choice -1
\ No newline at end of file + 60:#warp/#rura+ <mapname> <x> <y> <char name> - Warps character to location of choice
\ No newline at end of file diff --git a/db/homunculus_db.txt b/db/homunculus_db.txt index 2b52693cd..04baf4c01 100644 --- a/db/homunculus_db.txt +++ b/db/homunculus_db.txt @@ -11,7 +11,7 @@ 6010,Amistr_H,320,10,20,17,35,11,24,12,21,32,60000,912,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,0,700,1,0,0,0 6011,Filir_H,90,25,29,35,9,8,30,9,21,32,60000,910,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,0,700,1,0,0,0 6012,Vanilmirth_H,80,11,11,11,11,11,11,11,21,32,60000,911,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,0,700,1,0,0,0 -6013,Lif2_H,150,40,17,20,15,35,24,12,21,32,60000,537,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,0,700,1,0,0,0 -6014,Amistr2_H,320,10,20,17,35,11,24,12,21,32,60000,912,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,0,700,1,0,0,0 -6015,Filir2_H,90,25,29,35,9,8,30,9,21,32,60000,910,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,0,700,1,0,0,0 -6016,Vanilmirth2_H,80,11,11,11,11,11,11,11,21,32,60000,911,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,0,700,1,0,0,0 +6013,Lif_H,150,40,17,20,15,35,24,12,21,32,60000,537,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,0,700,1,0,0,0 +6014,Amistr_H,320,10,20,17,35,11,24,12,21,32,60000,912,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,0,700,1,0,0,0 +6015,Filir_H,90,25,29,35,9,8,30,9,21,32,60000,910,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,0,700,1,0,0,0 +6016,Vanilmirth_H,80,11,11,11,11,11,11,11,21,32,60000,911,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,0,700,1,0,0,0 diff --git a/db/item_db.txt b/db/item_db.txt index dba225ca1..b00fa9ec4 100644 --- a/db/item_db.txt +++ b/db/item_db.txt @@ -1,7 +1,7 @@ // Items Database // // Structure of Database: -// ID,AegisName,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } +// ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } // // Healing Items //============================================================= diff --git a/db/pet_db.txt b/db/pet_db.txt index 5ade34608..6c88443f0 100644 --- a/db/pet_db.txt +++ b/db/pet_db.txt @@ -53,7 +53,7 @@ 1110,DOKEBI,Dokebi,637,9019,10005,537,80,15,20,100,250,20,500,250,0,0,300,300,800,{ petskillattack 110,1,0,10; } 1113,DROPS,Drops,620,9002,10013,508,80,15,40,100,250,20,1500,400,1,0,300,400,500,{ petloot 10; } 1155,PETIT,Petit,640,9022,10011,537,80,15,20,100,250,20,500,200,0,0,800,400,100,{ petskillattack2 91,500,1,0,10; } -1167,SAVAGE_BABE,Savage Bebe,627,9009,10015,537,80,9,40,100,250,20,1500,400,0,0,500,500,200,{ petskillbonus bVit,4,10,50; } +1167,SAVAGE_BABE,Savage Babe,627,9009,10015,537,80,9,40,100,250,20,1500,400,0,0,500,500,200,{ petskillbonus bVit,4,10,50; } 1170,SOHEE,Sohee,638,9020,10016,537,80,20,10,100,250,20,500,300,0,0,100,1000,200,{ petheal 400,60,33,100; } 1188,BON_GUN,Bon Gun,659,9025,10020,537,80,20,10,100,250,20,500,200,1,0,600,200,400,{ petskillattack2 190,555,1,1,1; } 1200,ZHERLTHSH,Zherlthsh,660,9026,0,929,80,20,10,100,250,20,50,200,0,0,1000,100,500,{ petskillattack 136,1,0,3; } diff --git a/db/skill_unit_db.txt b/db/skill_unit_db.txt index 35b3ad979..7c0c65b19 100644 --- a/db/skill_unit_db.txt +++ b/db/skill_unit_db.txt @@ -18,7 +18,7 @@ // // Notes: // ------ -// 0x89,0x8a,0x8b 表示無し +// 0x89,0x8a,0x8b without indication // // u1 u2 lay r intr target flag // @@ -33,7 +33,7 @@ 79,0x84, , -1, 1,3000,enemy, 0x008 //PR_MAGNUS 80,0x87,0x88, 0, 1,2000,enemy, 0x002 //WZ_FIREPILLAR 83,0x86, , 0, 3,1000,enemy, 0x000 //WZ_METEOR - 85,0x86,,0,6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x008 //WZ_VERMILION + 85,0x86, , 0, 6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x008 //WZ_VERMILION 87,0x8d, , -1, 0, -1,all, 0x000 //WZ_ICEWALL 89,0x86, , 0, 5, 450,enemy, 0x008 //WZ_STORMGUST 91,0x86, , 0, 2,1000,enemy, 0x000 //WZ_HEAVENDRIVE @@ -55,7 +55,7 @@ 285,0x9a, , 3, 0, -1,all, 0x000 //SA_VOLCANO 286,0x9b, , 3, 0, -1,all, 0x000 //SA_DELUGE 287,0x9c, , 3, 0, -1,all, 0x000 //SA_VIOLENTGALE -288,0x9d,,3:3:4:4:5,0, -1,all, 0x000 //SA_LANDPROTECTOR +288,0x9d, , 3:3:4:4:5,0, -1,all, 0x000 //SA_LANDPROTECTOR 306,0x9e, , 4, 0,6000,all, 0x200 //BD_LULLABY 307,0x9f, , 4, 0, -1,enemy, 0x210 //BD_RICHMANKIM 308,0xa0, , 4, 0, -1,enemy, 0x200 //BD_ETERNALCHAOS @@ -92,4 +92,4 @@ 521,0xbe, , 0, 1,1000,enemy, 0x000 //GS_GROUNDDRIFT 527,0xbc, , -1, 0,2000,enemy, 0x000 //NJ_TATAMIGAESHI 535,0xbd, , -1, 0, 200,enemy, 0x008 //NJ_KAENSIN -538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x000 //NJ_SUITON +538,0xbb, , 1:1:1:2:2:2:3:3:3:4,0,-1,all,0x000 //NJ_SUITON diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 87af2f39c..bf92b4487 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -77,7 +77,6 @@ bonus bDefEle,n; Gives the player's defense element n bonus bSplashRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc | only the highest among all is applied) bonus bSplashAddRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc) -bonus bInfiniteEndure,n; Unlimited Endure effect, n is meaningless bonus bRestartFullRecover,n; When reviving, HP and SP are fully filled (n is meaningless) bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless) bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless) diff --git a/doc/item_db.txt b/doc/item_db.txt index dec53ffa9..72a14b915 100644 --- a/doc/item_db.txt +++ b/doc/item_db.txt @@ -3,33 +3,38 @@ - Explanation of the item_db.txt file and structure. ID: Item id -JName: Server name to reference the item in scripts and lookups, should use no -spaces. + +AegisName: Server name to reference the item in scripts and lookups, + should use no spaces. Name: Name in english for displaying as output for @ and script commands. Type: - 0 Healing item. - 2 Usable item. - 3 Etc item - 4 Weapon - 5 Armor/Garment/Boots/Headgear - 6 Card - 7 Pet egg - 8 Pet equipment - 10 Ammo (Arrows/Bullets/etc) - 11 Usable with delayed consumption (item is lost from inventory after - selecting a target, for use with skills and pet lures) - -Price: Default buying price. When not specified, becomes double the sell price. -Sell: Default buying price. When not specified, becomes half the buy price. + 0 Healing item. + 2 Usable item. + 3 Etc item + 4 Weapon + 5 Armor/Garment/Boots/Headgear + 6 Card + 7 Pet egg + 8 Pet equipment + 10 Ammo (Arrows/Bullets/etc) + 11 Usable with delayed consumption (item is lost from inventory + after selecting a target, for use with skills and pet lures) + +Buy: Default buying price. When not specified, becomes double the sell price. + +Sell: Default selling price. When not specified, becomes half the buy price. Weight: Item's weight. Each 10 is 1 weight. ATK: Weapon's attack + DEF: Armor's defense + Range: Weapon's attack range -Slot: Amount of slots item possesses. + +Slots: Amount of slots the item possesses. Job: Equippable jobs. Uses the following bitmask table: @@ -81,12 +86,14 @@ Loc: Equipment's placement. Values are: 2^7 128 = Accessory 2 wLV: Weapon level. + eLV: Base level required to be able to equip. + Refineable: 1 if the item can be refined, 0 otherwise. View: For normal items, defines a replacement view-sprite for the item (eg: - Making apples look like apple juice). The special case are weapons and ammo - where this value indicates the weapon-class of the item. + Making apples look like apple juice). The special case are weapons + and ammo where this value indicates the weapon-class of the item. For weapons, the types are: 0: bare fist @@ -123,3 +130,9 @@ View: For normal items, defines a replacement view-sprite for the item (eg: 7: Kunais Script: Script to execute when the item is used/equipped. + +OnEquip_Script: Script to execute when the item is equipped. + Warning, not all item bonuses will work here as expected. + +OnUnequip_Script: Script to execute when the item is unequipped. + Warning, not all item bonuses will work here as expected. diff --git a/doc/script_commands.txt b/doc/script_commands.txt index df602367d..c512e2b8e 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2001,7 +2001,7 @@ Possible types are: current level if leader leveled up recently). If retrieval fails (leader not found or party does not exist), this function -returns "null" instead of the character name, and -1 is for the other types. +returns "null" instead of the character name, and -1 for the other types. --------------------------------------- diff --git a/src/map/script.c b/src/map/script.c index bc2b175f8..3edea1b80 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -5075,41 +5075,42 @@ BUILDIN_FUNC(copyarray) } return 0; } + /*========================================== - * 配列変数のサイズ所得 - *------------------------------------------ - */ -static int getarraysize(struct script_state *st,int num,int postfix,struct linkdb_node** ref) + * Returns the size of the specified array + *------------------------------------------*/ +static int getarraysize(struct script_state* st, int num, int postfix, struct linkdb_node** ref) { - int i=(num>>24),c=(i==0? -1:i); // Moded to -1 because even if the first element is 0, it will still report as 1 [Lance] - if(postfix == '$'){ - for(;i<128;i++){ - void *v=get_val2(st,(num & 0x00FFFFFF)+(i<<24),ref); - if(*((char*)v)) c=i; + //TODO: unreadable; remove +-1 trick, remove weird for loop, remove typecast + int i = (num>>24), c = (i==0?-1:i); // Moded to -1 because even if the first element is 0, it will still report as 1 [Lance] + + if(postfix == '$') { + for(; i < 128; i++) { + void* v = get_val2(st, (num & 0x00FFFFFF) + (i<<24), ref); + if(*((char*)v)) c = i; } - }else{ - for(;i<128;i++){ - void *v=get_val2(st,(num & 0x00FFFFFF)+(i<<24),ref); - if((int)v) c=i; + } else { + for(; i < 128; i++) { + void* v = get_val2(st, (num & 0x00FFFFFF) + (i<<24), ref); + if((int)v) c = i; } } - return c+1; + return c + 1; } BUILDIN_FUNC(getarraysize) { - int num=st->stack->stack_data[st->start+2].u.num; - char *name=str_buf+str_data[num&0x00ffffff].str; - char prefix=*name; - char postfix=name[strlen(name)-1]; + int num = st->stack->stack_data[st->start+2].u.num; + char* name = str_buf + str_data[num&0x00ffffff].str; + char prefix = name[0], postfix = name[strlen(name)-1]; - if( prefix!='$' && prefix!='@' && prefix!='.' ){ - ShowWarning("buildin_copyarray: illegal scope !\n"); - push_val(st->stack,C_INT,0); + if( prefix != '$' && prefix != '@' && prefix != '.' ) { + ShowWarning("buildin_getarraysize: illegal scope !\n"); + push_val(st->stack, C_INT, 0); return 1; } - push_val(st->stack,C_INT,getarraysize(st,num,postfix,st->stack->stack_data[st->start+2].ref)); + push_val(st->stack, C_INT, getarraysize(st, num, postfix, st->stack->stack_data[st->start+2].ref)); return 0; } /*========================================== @@ -6146,7 +6147,7 @@ BUILDIN_FUNC(strcharinfo) num=conv_num(st,& (st->stack->stack_data[st->start+2])); switch(num){ case 0: - push_str(st->stack,C_CONSTSTR,sd->status.name); + push_str(st->stack,C_STR,aStrdup(sd->status.name)); break; case 1: buf=buildin_getpartyname_sub(sd->status.party_id); diff --git a/src/map/status.c b/src/map/status.c index 48afad54a..28cabc71c 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3656,7 +3656,7 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha speed += 300; if(sc->data[SC_GATLINGFEVER].timer==-1) - { //% increases (they don't stack, with a few exception) + { //% increases (they don't stack, with a few exceptions) if(sc->data[SC_SPEEDUP1].timer!=-1) speed -= speed * 50/100; else if(sc->data[SC_AVOID].timer!=-1) |