Jump to content

Brynner

Community Contributors
  • Content Count

    559
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by Brynner


  1. this source is from rAthena. when i try to patch it on hercules i got a warnings.

     

    Index: conf/battle/items.conf===================================================================--- conf/battle/items.conf	(revision 17269)+++ conf/battle/items.conf	(working copy)@@ -51,12 +51,16 @@ // NOTE: Wedding Rings and Whips/Musical Instruments will check gender regardless of setting. ignore_items_gender: yes -// Item check? (Note 1)+// Item check? (Note 3) // On map change it will check for items not tagged as "available" and -// auto-delete them from inventory/cart.+// auto-delete them from inventory/cart. Items are auto-deleted from+// storage when the character data is saved. // NOTE: An item is not available if it was not loaded from the item_db or you  // specify it as unavailable in db/item_avail.txt-item_check: no+// 1: Inventory+// 2: Cart+// 4: Storage+item_check: 0  // How much time must pass between item uses? // Only affects the delay between using items, prevents healing item abuse. Recommended ~500 msIndex: conf/msg_conf/map_msg.conf===================================================================--- conf/msg_conf/map_msg.conf	(revision 17269)+++ conf/msg_conf/map_msg.conf	(working copy)@@ -635,7 +635,9 @@ 678: You are no longer the Guild Master. 679: You have become the Guild Master! 680: You have been recovered!-//681-899 free+681: Item %d has been removed from your inventory.+682: Item %d has been removed from your cart.+//683-899 free  681: Rune Knight T 682: Warlock TIndex: src/map/battle.c===================================================================--- src/map/battle.c	(revision 17269)+++ src/map/battle.c	(working copy)@@ -5668,7 +5668,7 @@ 	{ "max_heal_lv",                        &battle_config.max_heal_lv,                     11,     1,      INT_MAX,        }, 	{ "max_heal",                           &battle_config.max_heal,                        9999,   0,      INT_MAX,        }, 	{ "combo_delay_rate",                   &battle_config.combo_delay_rate,                100,    0,      INT_MAX,        },-	{ "item_check",                         &battle_config.item_check,                      0,      0,      1,              },+	{ "item_check",                         &battle_config.item_check,                      0,      0,      7,              }, 	{ "item_use_interval",                  &battle_config.item_use_interval,               100,    0,      INT_MAX,        }, 	{ "cashfood_use_interval",              &battle_config.cashfood_use_interval,           60000,  0,      INT_MAX,        }, 	{ "wedding_modifydisplay",              &battle_config.wedding_modifydisplay,           0,      0,      1,              },Index: src/map/chrif.c===================================================================--- src/map/chrif.c	(revision 17269)+++ src/map/chrif.c	(working copy)@@ -26,6 +26,7 @@ #include "chrif.h" #include "quest.h" #include "storage.h"+#include "itemdb.h"  #include <stdio.h> #include <stdlib.h>@@ -284,6 +285,8 @@ 	chrif_check(-1); //Character is saved on reconnect.  	//For data sync+	itemdb_check(sd, 4); // Check for invalid(ated) items in storage.+ 	if (sd->state.storage_flag == 2) 		storage_guild_storagesave(sd->status.account_id, sd->status.guild_id, flag); Index: src/map/clif.c===================================================================--- src/map/clif.c	(revision 17269)+++ src/map/clif.c	(working copy)@@ -14313,7 +14313,7 @@ 		return; 	} -	if( (item = itemdb_exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) )+	if( (item = itemdb_exists(sd->status.inventory[idx].nameid)) != NULL && itemdb_available(sd->status.inventory[idx].nameid) && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) 	{ // Consumable or pets are not allowed 		clif_Auction_setitem(sd->fd, idx, true); 		return;Index: src/map/itemdb.c===================================================================--- src/map/itemdb.c	(revision 17269)+++ src/map/itemdb.c	(working copy)@@ -13,6 +13,7 @@ #include "cashshop.h" #include "script.h" // item script processing #include "pc.h"     // W_MUSICAL, W_WHIP+#include "storage.h"  #include <stdio.h> #include <stdlib.h>@@ -182,6 +183,55 @@ 	return item; } +/*==========================================+ * Checks for unavailable items and removes them.+ *------------------------------------------*/+void itemdb_check(struct map_session_data *sd, int flag)+{+	int i, id;+	char output[256];++	if( battle_config.item_check&(flag&1) ) { // Check for invalid(ated) items in inventory.+		for( i = 0; i < MAX_INVENTORY; i++ ) {+			id = sd->status.inventory[i].nameid;++			if( id && !itemdb_available(id) ) {+				sprintf(output, msg_txt(sd, 681), id);+				clif_displaymessage(sd->fd, output);+				ShowWarning("Removed invalid/disabled item id %d from inventory (amount=%d, char_id=%d).n", id, sd->status.inventory[i].amount, sd->status.char_id);+				pc_delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER);+			}+		}+	}++	if( battle_config.item_check&(flag&2) ) { // Check for invalid(ated) items in cart.+		for( i = 0; i < MAX_CART; i++ ) {+			id = sd->status.cart[i].nameid;++			if( id && !itemdb_available(id) ) {+				sprintf(output, msg_txt(sd, 682), id);+				clif_displaymessage(sd->fd, output);+				ShowWarning("Removed invalid/disabled item id %d from cart (amount=%d, char_id=%d).n", id, sd->status.cart[i].amount, sd->status.char_id);+				pc_cart_delitem(sd, i, sd->status.cart[i].amount, 0, LOG_TYPE_OTHER);+			}+		}+	}++	if( battle_config.item_check&(flag&4) ) { // Check for invalid(ated) items in storage.+		if( !storage_storageopen(sd) ) {+			for( i = 0; i < MAX_STORAGE; i++ ) {+				id = sd->status.storage.items[i].nameid;++				if( id && !itemdb_available(id) ) {+					ShowWarning("Removed invalid/disabled item id %d from storage (amount=%d, char_id=%d).n", id, sd->status.storage.items[i].amount, sd->status.char_id);+					storage_delitem(sd, i, sd->status.storage.items[i].amount);+				}+			}+			storage_storageclose(sd);+		}+	}+}+ /// Returns human readable name for given item type. /// @param type Type id to retrieve name for ( IT_* ). const char* itemdb_typename(int type)Index: src/map/itemdb.h===================================================================--- src/map/itemdb.h	(revision 17269)+++ src/map/itemdb.h	(working copy)@@ -162,6 +162,7 @@ struct item_data* itemdb_load(int nameid); struct item_data* itemdb_search(int nameid); struct item_data* itemdb_exists(int nameid);+void itemdb_check(struct map_session_data *sd, int flag); #define itemdb_name(n) itemdb_search(n)->name #define itemdb_jname(n) itemdb_search(n)->jname #define itemdb_type(n) itemdb_search(n)->typeIndex: src/map/mail.c===================================================================--- src/map/mail.c	(revision 17269)+++ src/map/mail.c	(working copy)@@ -78,7 +78,7 @@ 			return 1; 		if( amount < 0 || amount > sd->status.inventory[idx].amount ) 			return 1;-		if( !pc_can_give_items(sd) || sd->status.inventory[idx].expire_time ||+		if( !pc_can_give_items(sd) || !itemdb_available(sd->status.inventory[idx].nameid) || sd->status.inventory[idx].expire_time || 				!itemdb_canmail(&sd->status.inventory[idx],pc_get_group_level(sd)) ) 			return 1; Index: src/map/pc.c===================================================================--- src/map/pc.c	(revision 17269)+++ src/map/pc.c	(working copy)@@ -8850,33 +8850,15 @@  *------------------------------------------*/ int pc_checkitem(struct map_session_data *sd) {-	int i,id,calc_flag = 0;+	int i,calc_flag = 0;  	nullpo_ret(sd);  	if( sd->state.vending ) //Avoid reorganizing items when we are vending, as that leads to exploits (pointed out by End of Exam) 		return 0; -	if( battle_config.item_check ) {// check for invalid(ated) items-		for( i = 0; i < MAX_INVENTORY; i++ ) {-			id = sd->status.inventory[i].nameid;+	itemdb_check(sd, 3); // Check for invalid(ated) items in inventory/cart. -			if( id && !itemdb_available(id) ) {-				ShowWarning("Removed invalid/disabled item id %d from inventory (amount=%d, char_id=%d).n", id, sd->status.inventory[i].amount, sd->status.char_id);-				pc_delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER);-			}-		}--		for( i = 0; i < MAX_CART; i++ ) {-			id = sd->status.cart[i].nameid;--			if( id && !itemdb_available(id) ) {-				ShowWarning("Removed invalid/disabled item id %d from cart (amount=%d, char_id=%d).n", id, sd->status.cart[i].amount, sd->status.char_id);-				pc_cart_delitem(sd, i, sd->status.cart[i].amount, 0, LOG_TYPE_OTHER);-			}-		}-	}- 	for( i = 0; i < MAX_INVENTORY; i++) {  		if( sd->status.inventory[i].nameid == 0 )

     

    warnings that i got.

    1>d:herculessrcmapitemdb.c(196) : warning C4047: 'function' : 'int' differs in levels of indirection from 'map_session_data *'1>d:herculessrcmapitemdb.c(196) : warning C4024: 'msg_txt' : different types for formal and actual parameter 11>d:herculessrcmapitemdb.c(196) : warning C4020: 'msg_txt' : too many actual parameters1>d:herculessrcmapitemdb.c(209) : warning C4047: 'function' : 'int' differs in levels of indirection from 'map_session_data *'1>d:herculessrcmapitemdb.c(209) : warning C4024: 'msg_txt' : different types for formal and actual parameter 11>d:herculessrcmapitemdb.c(209) : warning C4020: 'msg_txt' : too many actual parameters

     

     


  2. getareachar_char should be turn into clif->getareachar that should solve more error/warnings

    here's what i did to make it work.

     

     

    	// [@aura]	void (*sendauras) (struct map_session_data *sd,  enum send_target type);	void (*getareachar_char) (struct block_list *bl, short flag);	/* mail-related */

     

    but still having a error.

     

    1>d:herculessrcmapclif.c(273) : warning C4013: 'clif_specialeffect_single' undefined; assuming extern returning int1>d:herculessrcmapclif.c(292) : warning C4013: 'clif_specialeffect' undefined; assuming extern returning int1>d:herculessrcmapclif.c(8304) : error C2371: 'clif_specialeffect' : redefinition; different basic types1>d:herculessrcmapclif.c(8323) : error C2371: 'clif_specialeffect_single' : redefinition; different basic types1>chat.c1>d:herculessrcmapclif.c(17224) : warning C4113: 'int (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(block_list *,int,send_target)'1>d:herculessrcmapclif.c(17225) : warning C4113: 'int (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(block_list *,int,int)'

     

     


  3. clif->getareachar

     

    can you show me what it spits out for sendauras

     

    1>d:herculessrcmapclif.h(806) : error C2032: 'clif_sendauras' : function cannot be member of struct 'clif_interface'
    1>d:herculessrcmapclif.h(807) : error C2032: 'clif_getareachar_char' : function cannot be member of struct 'clif_interface'
    1>d:herculessrcmapclif.h(806) : error C2032: 'clif_sendauras' : function cannot be member of struct 'clif_interface'
    1>d:herculessrcmapclif.h(807) : error C2032: 'clif_getareachar_char' : function cannot be member of struct 'clif_interface'

  4. As I said before I'm not good on source, but why don't try what you can read in this post (and rest of the) topic: http://herc.ws/board/topic/237-hercules-renewal/?p=1724 it says some of the first underscores ( _ ) have been changed to arrows ( -> )

     

    Something like:

    ===================================================================--- clif.h	(revision 17181)+++ clif.h	(working copy)@@ -655,6 +655,10 @@int do_init_clif(void);void do_final_clif(void);+// [@aura]+void clif->sendauras(struct map_session_data *sd, enum send_target type);+void clif->getareachar_char(struct block_list *bl, short flag);+// MAIL SYSTEMvoid clif->Mail_window(int fd, int flag);void clif->Mail_read(struct map_session_data *sd, int mail_id);Index: pc.c=================================================================== 

    You can try and see if that minor magic works.

    i already did that. but the problem is on my 2nd post. which in clif.h. the structure is not same.


  5. the structure for clif.h have a lots of diff on rA. how can i make this compatible here?

     

    ===================================================================
    --- clif.h (revision 17181)
    +++ clif.h (working copy)
    @@ -655,6 +655,10 @@
    int do_init_clif(void);
    void do_final_clif(void);

    +// [@aura]
    +void clif_sendauras(struct map_session_data *sd, enum send_target type);
    +void clif_getareachar_char(struct block_list *bl, short flag);
    +
    // MAIL SYSTEM
    void clif_Mail_window(int fd, int flag);
    void clif_Mail_read(struct map_session_data *sd, int mail_id);
    Index: pc.c
    ===================================================================


  6. how to make this compatible to hercules? thanks in advance.

    Index: mmo.h===================================================================--- mmo.h	(revision 17181)+++ mmo.h	(working copy)@@ -349,7 +349,7 @@ 	unsigned char karma; 	short hair,hair_color,clothes_color; 	int party_id,guild_id,pet_id,hom_id,mer_id,ele_id;-	int fame;+	int fame,pvprank,aura;  	// Mercenary Guilds Rank 	int arch_faith, arch_calls;Index: atcommand.c===================================================================--- atcommand.c	(revision 17181)+++ atcommand.c	(working copy)@@ -8036,6 +8036,45 @@ 	return 0; } + /*==========================================+ * Auras personalizadas+ *------------------------------------------*/+ACMD_FUNC(aura)+{+       struct map_session_data *pl_sd = 0;+       int type = 0;++       if (!message || !*message || sscanf(message, "%d %[^n]", &type, atcmd_player_name) < 2)+       {+               if (!message || !*message || sscanf(message, "%d", &type) < 1)+               {+                       clif_displaymessage(fd, "Please, enter at least an option (usage: @aura  ).");+                       return -1;+               }++               atcmd_player_name[0] = 0;+               pl_sd = sd;+       }++       if( pl_sd != sd )+       {+               if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL)+                       return -1;+       }++       sprintf(atcmd_output, "Current Aura: %d", pl_sd->status.aura);+       clif_displaymessage(fd, atcmd_output);++       pl_sd->status.aura = type;+       pc_setglobalreg(pl_sd,"USERAURA",type);++       pc_setpos(pl_sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3);++       return 0;+}+++ /*==========================================  * AUCTION SYSTEM  *------------------------------------------*/@@ -9050,7 +9089,8 @@ 		ACMD_DEF2("rmvperm", addperm), 		ACMD_DEF(unloadnpcfile), 		ACMD_DEF(cart),-		ACMD_DEF(mount2)+		ACMD_DEF(mount2),+		ACMD_DEF(aura), 	}; 	AtCommandInfo* atcommand; 	int i;Index: clif.c===================================================================--- clif.c	(revision 17181)+++ clif.c	(working copy)@@ -191,6 +191,141 @@ static int clif_parse (int fd);  /*==========================================+ * @aura+ *------------------------------------------*/+static int auraTable[][3] = {+       {  -1,  -1,  -1 },+       // Reserved for PK Mode+       { 586,  -1,  -1 }, // LH+       { 586, 362,  -1 }, // LH Mvp+       { 586, 362, 240 }, // 1? PK Place+       // Basic Auras+       { 418,  -1,  -1 }, // Red Fury+       { 486,  -1,  -1 }, // Blue Fury+       { 485,  -1,  -1 }, // White Fury+       { 239,  -1,  -1 }, // Aura Red+       { 240,  -1,  -1 }, // Aura White+       { 241,  -1,  -1 }, // Aura Yellow+       { 620,  -1,  -1 }, // Aura Blue+       { 202,  -1,  -1 }, // Lvl 99 Bubbles+       { 362,  -1,  -1 }, // Advanced Lvl 99 Bubbles+       { 678,  -1,  -1 }, // Brazil Aura Bubbles+       { 679,  -1,  -1 }, // Brazil Aura+       { 680,  -1,  -1 }, // Brazil Aura Floor+       // 2 Sets+       { 239, 418,  -1 },+       { 239, 486,  -1 },+       { 239, 485,  -1 },+       { 240, 418,  -1 },+       { 240, 486,  -1 },+       { 240, 485,  -1 },+       { 241, 418,  -1 },+       { 241, 486,  -1 },+       { 241, 485,  -1 },+       { 620, 418,  -1 },+       { 620, 486,  -1 },+       { 620, 485,  -1 },+       // Full Sets+       { 239, 418, 202 },+       { 239, 486, 202 },+       { 239, 485, 202 },+       { 240, 418, 202 },+       { 240, 486, 202 },+       { 240, 485, 202 },+       { 241, 418, 202 },+       { 241, 486, 202 },+       { 241, 485, 202 },+       { 620, 418, 202 },+       { 620, 486, 202 },+       { 620, 485, 202 },+       { 239, 418, 362 },+       { 239, 486, 362 },+       { 239, 485, 362 },+       { 240, 418, 362 },+       { 240, 486, 362 },+       { 240, 485, 362 },+       { 241, 418, 362 },+       { 241, 486, 362 },+       { 241, 485, 362 },+       { 620, 418, 362 },+       { 620, 486, 362 },+       { 620, 485, 362 },+       { 239, 418, 678 },+       { 239, 486, 678 },+       { 239, 485, 678 },+       { 240, 418, 678 },+       { 240, 486, 678 },+       { 240, 485, 678 },+       { 241, 418, 678 },+       { 241, 486, 678 },+       { 241, 485, 678 },+       { 620, 418, 678 },+       { 620, 486, 678 },+       { 620, 485, 678 },+       // Oficial Set+       { 680, 679, 678 },+       {  -1,  -1,  -1 }+};++int aura_getSize()+{+       return sizeof(auraTable)/(sizeof(int) * 3) - 1;+}++int aura_getAuraEffect(struct map_session_data *sd, short pos)+{+       int aura = sd->status.aura;++       if (pos < 0 || pos > 2)+               return -1;++       if (aura > aura_getSize() || aura < 0)+               return -1;++       return auraTable[aura][pos];+}++void clif_sendaurastoone(struct map_session_data *sd, struct map_session_data *dsd)+{+       int effect1, effect2, effect3;++       if (pc_ishiding(sd))+               return;++       effect1 = aura_getAuraEffect(sd, 0);+       effect2 = aura_getAuraEffect(sd, 1);+       effect3 = aura_getAuraEffect(sd, 2);++       if (effect1 >= 0)+               clif_specialeffect_single(&sd->bl, effect1, dsd->fd);+       if (effect2 >= 0)+               clif_specialeffect_single(&sd->bl, effect2, dsd->fd);+       if (effect3 >= 0)+               clif_specialeffect_single(&sd->bl, effect3, dsd->fd);+}++void clif_sendauras(struct map_session_data *sd,  enum send_target type)+{+       int effect1, effect2, effect3;++       if (pc_ishiding(sd))+               return;++       effect1 = aura_getAuraEffect(sd, 0);+       effect2 = aura_getAuraEffect(sd, 1);+       effect3 = aura_getAuraEffect(sd, 2);++       if (effect1 >= 0)+               clif_specialeffect(&sd->bl, effect1, type);+       if (effect2 >= 0)+               clif_specialeffect(&sd->bl, effect2, type);+       if (effect3 >= 0)+               clif_specialeffect(&sd->bl, effect3, type);+}++++/*==========================================  * Ip setting of map-server  *------------------------------------------*/ int clif_setip(const char* ip)@@ -1359,6 +1494,7 @@ 				clif_specialeffect(bl,423,AREA); 			else if(sd->state.size==SZ_MEDIUM) 				clif_specialeffect(bl,421,AREA);+			clif_sendauras((TBL_PC*)bl, AREA);	 			if( sd->bg_id && map[sd->bl.m].flag.battleground ) 				clif_sendbgemblem_area(sd); 			if( sd->sc.option&OPTION_MOUNTING ) {@@ -4103,6 +4239,7 @@ 				clif_specialeffect_single(bl,423,sd->fd); 			else if(tsd->state.size==SZ_MEDIUM) 				clif_specialeffect_single(bl,421,sd->fd);+			clif_sendaurastoone(tsd, sd);	 			if( tsd->bg_id && map[tsd->bl.m].flag.battleground ) 				clif_sendbgemblem_single(sd->fd,tsd); 			if( tsd->sc.data[SC_CAMOUFLAGE] )@@ -4150,6 +4287,37 @@ 	} } +int clif_insight2(struct block_list *bl,va_list ap)+{+       struct block_list *tbl;+       struct map_session_data *sd, *tsd;+       int flag;++       tbl = va_arg(ap,struct block_list*);+       flag = va_arg(ap,int);++       if (bl == tbl && !flag)+               return 0;++       sd = BL_CAST(BL_PC, bl);+       tsd = BL_CAST(BL_PC, tbl);++       if (sd && sd->fd)+       {+               if (bl == tbl)+                       clif_sendaurastoone(sd, tsd);+               else+                       clif_getareachar_unit(sd, tbl);+       }++       return 0;+}++void clif_getareachar_char(struct block_list *bl, short flag)+{+       map_foreachinarea(clif_insight2, bl->m, bl->x-AREA_SIZE, bl->y-AREA_SIZE, bl->x+AREA_SIZE, bl->y+AREA_SIZE,BL_PC, bl, flag);+}+ //Modifies the type of damage according to status changes [Skotlex] //Aegis data specifies that: 4 endure against single hit sources, 9 against multi-hit. static inline int clif_calc_delay(int type, int div, int damage, int delay)Index: clif.h===================================================================--- clif.h	(revision 17181)+++ clif.h	(working copy)@@ -655,6 +655,10 @@ int do_init_clif(void); void do_final_clif(void); +// [@aura]+void clif_sendauras(struct map_session_data *sd,  enum send_target type);+void clif_getareachar_char(struct block_list *bl, short flag);+ // MAIL SYSTEM void clif_Mail_window(int fd, int flag); void clif_Mail_read(struct map_session_data *sd, int mail_id);Index: pc.c===================================================================--- pc.c	(revision 17181)+++ pc.c	(working copy)@@ -1147,6 +1147,9 @@ 	sd->change_level_3rd = pc_readglobalreg(sd,"jobchange_level_3rd"); 	sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER"); +	// @Aura+    sd->status.aura = pc_readglobalreg(sd,"USERAURA");+	 	// Cash shop 	sd->cashPoints = pc_readaccountreg(sd,"#CASHPOINTS"); 	sd->kafraPoints = pc_readaccountreg(sd,"#KAFRAPOINTS");Index: status.c===================================================================--- status.c	(revision 17181)+++ status.c	(working copy)@@ -7210,6 +7210,7 @@ 	vd = status_get_viewdata(bl); 	calc_flag = StatusChangeFlagTable[type]; 	if(!(flag&4)) //&4 - Do not parse val settings when loading SCs+	{ 	switch(type) 	{ 		case SC_DECREASEAGI:@@ -8653,6 +8654,15 @@ 				return 0; 			} 	}+	// @aura+    if (sd && sd->status.aura > 0 &&+            (type == SC_HIDING || type == SC_CLOAKING || type == SC_CHASEWALK))+       {+            sd->status.aura *= -1;+            clif_clearunit_area(&sd->bl, 0);+            clif_getareachar_char(&sd->bl, 0);+       }+    } 	else //Special considerations when loading SC data. 	switch( type ) 	{@@ -9781,6 +9791,14 @@ 		opt_flag = 0; 	} +	// @auras+       if (sd && sd->status.aura < 0 &&+               (type == SC_HIDING || type == SC_CLOAKING || type == SC_CHASEWALK))+       {+               sd->status.aura *= -1;+               clif_sendauras(sd, AREA_WOS);+       }+ 	if (calc_flag&SCB_DYE) 	{	//Restore DYE color 		if (vd && !vd->cloth_color && sce->val4)

  7. how can i make this compatible with hercules?

     

    Index: pc.c===================================================================--- pc.c	(revision 17269)+++ pc.c	(working copy)@@ -578,6 +578,7 @@ 	sd->state.active = 0; //to be set to 1 after player is fully authed and loaded. 	sd->bl.type      = BL_PC; 	sd->canlog_tick  = gettick();+	sd->candrop_tick = 0; 	//Required to prevent homunculus copuing a base speed of 0. 	sd->battle_status.speed = sd->base_status.speed = DEFAULT_WALK_SPEED; 	return 0;@@ -3999,6 +4000,12 @@ 		return 0; //Can't drop items in nodrop mapflag maps. 	} +	if ( sd->candrop_tick && DIFF_TICK(gettick(), sd->candrop_tick) < 5000)+	{+		clif_displaymessage(sd->fd, "Please wait 5 seconds before dropping another item.");+		return 0;+	}+ 	if( !pc_candrop(sd,&sd->status.inventory[n]) ) 	{ 		clif_displaymessage (sd->fd, msg_txt(sd,263));@@ -4009,6 +4016,7 @@ 		return 0;  	pc_delitem(sd, n, amount, 1, 0, LOG_TYPE_PICKDROP_PLAYER);+	sd->candrop_tick = gettick(); 	clif_dropitem(sd, n, amount); 	return 1; }Index: pc.h===================================================================--- pc.h	(revision 17269)+++ pc.h	(working copy)@@ -230,6 +230,7 @@  	int invincible_timer; 	unsigned int canlog_tick;+	unsigned int candrop_tick; 	unsigned int canuseitem_tick;	// [Skotlex] 	unsigned int canusecashfood_tick; 	unsigned int canequip_tick;	// [Inkfish]

     

    thanks in advance.


  8. I'm kinda noob on the client side, but you can try one of these two alternatives and see if any of these ideas work:

    • Look for the job names and change them on the msgstringtable.txt file from your data folder or GRF file(s).
    • Change strings 550 to 655 from your /conf/messages.conf file to whatever name you want.

    Don't know if it'll work but it'd be a nice try.

    i think its not on msgstringtable.txt since i using the english translated one.

    and about on the /conf/messages.conf. didn't try it yet.

     

     

    @MStream yeah it's a hardcoded. and i still don't know where it get's the character job name if you choose korean version or langtype 0.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.