Jump to content

Angelmelody

Members
  • Content Count

    772
  • Joined

  • Last visited

  • Days Won

    23

Everything posted by Angelmelody

  1. 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 );
  2. this patch make Extended Vending System to support @AT vendor but only for those who had already patched 14935.patch @at support.patch
  3. how about get ride of the swtich-case like this prontera,155,180,4 script This eynt working#2 1_ETC_01,{while(da_var <= 4) { if(da_var < 4 ) { mes "you hit "+da_var; next; } else mes "you hit rock bottom"; da_var++;}close; }
  4. 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
  5. 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;}
  6. try this @storeitem.c
  7. 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
  8. Have you tried this plugin? http://herc.ws/board/topic/2457-storeitem/
  9. 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;}
  10. 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)
  11. 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);
  12. 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);
  13. 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 ?
  14. 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; }";
  15. Angelmelody

    IND please!

    It sounds like Kinder Surprise... grants 3 wishes at once! haha....
  16. Angelmelody

    IND please!

    what's the Difference between revisions of "H.E.R.C." ?
  17. 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;}
  18. do it accept -1 for infinite duration? temporary patch for infinite duration when duration set to -1 infinite duration.patch
  19. 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) ) {
  20. AFAIK, Alt+03232 = Alt+160 so just stristr( message, "xA0" )
  21. 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 ) );
  22. As I understood,What he really need is bank_deposit script command bank_op.c
  23. 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)
  24. Hum Hum,I got what you mean , the warper npc now is working fine for me ,thank you , you are my savior. .
  25. 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
×
×
  • Create New...

Important Information

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