Jump to content

Brynner

Community Contributors
  • Content Count

    559
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Brynner

  1. ok ill post it later 2012 Ragexe before themida packing.
  2. what client do you need?
  3. Version 1.1

    382 downloads

    @pk commands for hercules credits for Haru teaching me and make this thing works again.
  4. Version 1.0

    152 downloads

    @garbage commands for hercules
  5. i think when he try to use the diff for disable hackshield patch from weediffgen still not working.
  6. File Name: item drop delay patch File Submitter: bgamez23 File Submitted: 20 Apr 2013 File Category: Source Modifications item drop delay for hercules Click here to download this file
  7. File Name: @aura patch File Submitter: bgamez23 File Submitted: 20 Apr 2013 File Category: Source Modifications @aura commands for hercules Click here to download this file
  8. Version 1,0

    107 downloads

    item drop delay for hercules
  9. Version 1.0

    511 downloads

    @aura commands for hercules
  10. 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
  11. Brynner

    @aura command

    thanks it works now. i change the clif_specialeffect_single to clif->specialeffect_single clif_specialeffec to clif->specialeffec
  12. Brynner

    @aura command

    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)'
  13. Brynner

    @aura command

    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'
  14. Brynner

    @aura command

    undeclared sendauras and getareachar_char in clif.h
  15. Brynner

    @aura command

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

    @aura command

    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 ===================================================================
  17. clif->broadcast2 thanks but its already solve.
  18. Brynner

    @aura command

    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)
  19. how to fix this? warning C4013: 'clif_broadcast2' undefined
  20. sir i have a question. i'm having a warning for 'clif_broadcast2'? what is the substitute for this?
  21. 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.
  22. does your kRo is updated?
×
×
  • Create New...

Important Information

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