Angelmelody
Members-
Content Count
772 -
Joined
-
Last visited
-
Days Won
23
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Angelmelody
-
I try building a hooking function to prevent the market clone killed by @killmonster CMDint atkillmonster_sub_pre(struct block_list *bl, va_list *ap){ struct mob_data *md; struct monster_data *mmd; md = (struct mob_data *)bl; if ( ( mmd = getFromMOBDATA( md, 0 ) ) ) { if(mmd->market_chat_id){ hookStop(); return 0; } } return 1;}addHookPre( "atcommand->atkillmonster_sub", atkillmonster_sub_pre );
-
Extended Vending System UPDATED rev14395! by Lilith
Angelmelody replied to quesoph's topic in Source Releases
this patch make Extended Vending System to support @AT vendor but only for those who had already patched 14935.patch @at support.patch -
Hi~Annie,I'd like to report an issue: if you kill clone via @killmonster command(still working) ,and then log out your Character , map server will get crashed edit : I m using plugin v1.1
-
spaning mvps with event label can make it happen for example: pay_dun04,120,115,0,0 boss_monster Moonlight Flower 1150,1,3600000,600000,"xxxx::OnMvpDead" - script xxxx -1,{end;OnMvpDead: getitem 501,10;end;}
-
How do you put item directly to the storage?
Angelmelody replied to Zirius's question in Script Support
tried this thrice, but still the problem occurs, are you using the plugin on latest git? I convert it into a script command *storeitem <item name or ID>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,"<char name>"or<account id>}; storeitem.c -
How do you put item directly to the storage?
Angelmelody replied to Zirius's question in Script Support
Have you tried this plugin? http://herc.ws/board/topic/2457-storeitem/ -
HPM Hooking return random value from the defined function
Angelmelody replied to AnnieRuru's question in Plugin Support
maybe group_id will retrun memory address , try using *group_id instead bool pc_authok_post( int retVal, struct map_session_data *sd, int *login_id2, time_t *expiration_time, int *group_id, struct mmo_charstatus *st, bool *changing_mapservers ) { ShowDebug ( "4. %s try to login. Value %d Group %d.", sd->status.name, *group_id, sd->group_id ); if ( sd->group_id < 99 ) { clif->authfail_fd( sd->fd, 1 ); return false; } return true;} -
Then i have to replace 2 line right ? Find : StrBuf->Printf(&buf,"('%d','%s','%llu','%d','%d',",cid,esc_script,bs.tick,bs.flag,bs.type);StrBuf->Printf(&buf, "'%d')", bs.icon); Into : StrBuf->Printf(&buf,"('%d','%s','%"PRId64"','%"PRIu8"','%d','%d')",cid,esc_script,bs.tick,bs.flag,bs.type,bs.icon); humhum, I think its no need to divide into two lines ouch!..forgot to say, PRId64(for thoese who already patched #8) and PRIu64 (for those who dosnt patched #8)
-
i have change it back to uint64 tick; and change the code like this and warning not appear StrBuf->Printf(&buf,"('%d','%s','%llu','%d','%d',",cid,esc_script,bs.tick,bs.flag,bs.type) i use %llu since the format used same by %d or %s and it says the same for %" PRIu64 ", and the "p.s: the priu64 should be outside the quotes, and not inside the quotes",im not sure how to write it into the code.. try this ? (I merge bs.icon into one line) StrBuf->Printf(&buf,"('%d','%s','%"PRId64"','%"PRIu8"','%d','%d')",cid,esc_script,bs.tick,bs.flag,bs.type,bs.icon);
-
findStrBuf->Printf(&buf,"('%d','%s','%d','%d','%d',",cid,esc_script,bs.tick,bs.flag,bs.type); change to StrBuf->Printf(&buf,"('%d','%s','%u','%d','%d',",cid,esc_script,bs.tick,bs.flag,bs.type); find ShowInfo("Saved %d bonus_script for char_id: %dn",count,cid,bs.icon); change to ShowInfo("Saved %d bonus_script for char_id: %dn",count,cid);
-
windows dont have that warning,but I can try to fix for 1st warning pc.c in pc_bonus_script_clear function find if (&sd->bonus_script[i] && sd->bonus_script[i].script && (sd->bonus_script[i].flag&flag || //Remove bonus script based on e_bonus_script_flags (sd->bonus_script[i].type && (flag&BONUS_FLAG_REM_BUFF && sd->bonus_script[i].type == 1) || //Remove bonus script based on buff type (flag&BONUS_FLAG_REM_DEBUFF && sd->bonus_script[i].type == 2)))) //Remove bonus script based on debuff typereplace with if(&sd->bonus_script[i] && sd->bonus_script[i].script && (sd->bonus_script[i].flag&flag || //Remove bonus script based on e_bonus_script_flags (sd->bonus_script[i].type && ((flag&BONUS_FLAG_REM_BUFF && sd->bonus_script[i].type == 1) || //Remove bonus script based on buff type (flag&BONUS_FLAG_REM_DEBUFF && sd->bonus_script[i].type == 2) //Remove bonus script based on debuff type ) ) ) )for another warningCan you post line 5070 and 5076 in your char.c ?
-
I think that means the trigger rate of the autobonus isn't 100%(10000) and should be replaced with n*getrefine() , Idk what the rate number n is equal to ,but I refrence here , it said n== 0.2%, so... autobonus "{ bonus bAspd, 2; }", 20*getrefine(), 5000, BF_WEAPON|BF_NORMAL, "{ disguise ANGELING; sleep2 5000; undisguise; }"; utobonus "{ bonus bCastrate, -5; }", 20*getrefine(), 5000, BF_MAGIC, "{ disguise ANGELING; sleep2 5000; undisguise; }";
-
It sounds like Kinder Surprise... grants 3 wishes at once! haha....
-
what's the Difference between revisions of "H.E.R.C." ?
-
static int buildin_getareausers_sub(struct block_list *bl,va_list ap){ int *users=va_arg(ap,int *); struct map_session_data *sd = (TBL_PC *)bl; struct script_state* st; st=va_arg(ap,struct script_state*); if( *users < 128 ) script->setd_sub(st, NULL, ".@account_ids", *users, (void *)__64BPRTSIZE(sd->status.account_id), NULL); (*users)++; return false;}BUILDIN(getareausers){ const char *str; int16 m,x0,y0,x1,y1,users=0; //doubt we can have more then 32k users on str=script_getstr(st,2); x0=script_getnum(st,3); y0=script_getnum(st,4); x1=script_getnum(st,5); y1=script_getnum(st,6); if( (m=map->mapname2mapid(str))< 0){ script_pushint(st,-1); return false; } map->foreachinarea(buildin_getareausers_sub, m,x0,y0,x1,y1,BL_PC,&users,st); script_pushint(st,users); return true;}
-
do it accept -1 for infinite duration? temporary patch for infinite duration when duration set to -1 infinite duration.patch
-
pc.c inside pc_setoption function pc.c@@ -8091,6 +8091,13 @@ int pc_setoption(struct map_session_data *sd,int type) clif->sc_end(&sd->bl,sd->bl.id,AREA,SI_WUGRIDER); status_calc_pc(sd,SCO_NONE); }+ + if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {+ if( type&OPTION_MADOGEAR && !(p_type&OPTION_MADOGEAR) )+ pc->bonus_script_clear(sd,BONUS_FLAG_REM_ON_MADOGEAR); // cydh bonus_script+ else if( !(type&OPTION_MADOGEAR) && p_type&OPTION_MADOGEAR )+ pc->bonus_script_clear(sd,BONUS_FLAG_REM_ON_MADOGEAR); // cydh bonus_script+ } if( (type&OPTION_MADOGEAR && !(p_type&OPTION_MADOGEAR)) || (!(type&OPTION_MADOGEAR) && p_type&OPTION_MADOGEAR) ) {
-
Chat space limitation!/Scammer avoid *Will pay for help*
Angelmelody replied to a question in Source Requests
AFAIK, Alt+03232 = Alt+160 so just stristr( message, "xA0" ) -
IMO,I would add one more checking to prevent warnning on which the equiment already be equiped ARR_FIND( 0, MAX_INVENTORY, i,( sd->status.inventory.nameid == nameid && sd->status.inventory.equip == 0 && sd->status.inventory.refine == ref && sd->status.inventory.attribute == attr && sd->status.inventory.card[0] == c0 && sd->status.inventory.card[1] == c1 && sd->status.inventory.card[2] == c2 && sd->status.inventory.card[3] == c3 ) );
-
As I understood,What he really need is bank_deposit script command bank_op.c
-
mob.c inside function mob_item_drop() find && (drop_rate <= sd->state.autoloot || pc->isautolooting(sd, ditem->item_data.nameid)) change to && ((drop_rate <= sd->state.autoloot || pc->isautolooting(sd, ditem->item_data.nameid)) && !md->db->mexp)
-
Hum Hum,I got what you mean , the warper npc now is working fine for me ,thank you , you are my savior. .
-
Here is working warper npc with warpportal style. http://pastebin.com/5FGTTWgS ,but how to I duplicate this warp npc? I try to duplicate npc toastywarperbase to new one in geffen. Unfortunately, I was failed and got this warning when click new npc in geffen. [Warning]: npc_scriptcont: failed npc->checknear test. here is my modification diff ( line 69~71 , line 312~314 , line 327~330 and line 1258~1267) http://pastebin.com/YftnCjDW