Naruto

Members
  • Content Count

    90
  • Joined

  • Last visited

  • Days Won

    6

Naruto last won the day on September 14

Naruto had the most liked content!

1 Follower

About Naruto

  • Rank
    Advanced Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Copy and paste will work... You might blow up your error log and have things to fix though, better you just grab the ones you want
  2. if it fails in game that means you dont have it in the associated id in your item_db.conf, re or pre re ... for most of them you can just copy and paste
  3. renewal database actually has more then the pre renewal might have to re dif your item info, if you selected recommended its the first thing that pops up, asking you to rename your iteminfo file in your system folder with your client
  4. Version 1.0.0

    11 downloads

    reupload gat walker tool for creating minimaps,
  5. cant stop my client from blowing up doing it with garment, but older clients can probably get away with it, all your have to do is change the structure of it again and add the new one on top if(pos == EQP_ACC) { pos = req_pos&EQP_ACC; if (pos == EQP_ACC && (sd->equip_index[EQP_ACC_L] >= 1)) pos = sd->equip_index[EQP_SHOES] >= 0 ? EQP_GARMENT : EQP_SHOES; else if (pos == EQP_ACC && (sd->equip_index[EQI_ACC_R] >= 1)) pos = sd->equip_index[EQI_ACC_L] >= 0 ? EQP_SHOES : EQP_ACC_L; else if(pos == EQP_ACC) pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; } and again in the pc.h just add EQP_GARMENT to eqp_acc equipwin_bg2.psd
  6. Working on my UI and didnt find a practical use for garment slot and a few personal changes , but its a little more complicated to remove and ill save it for the second post so as you see im equiping into the old shoe slot, and once all my slots are filled the shoe slot gets replaced pc.h find #define EQP_ACC (EQP_ACC_L|EQP_ACC_R) replace with #define EQP_ACC (EQP_ACC_L|EQP_ACC_R|EQP_SHOES) pc.c find this, top of a block of code if(pos == EQP_ACC) { pos = req_pos&EQP_ACC; if (pos == EQP_ACC) pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; } replace it with this if(pos == EQP_ACC) { pos = req_pos&EQP_ACC; if (pos == EQP_ACC && (sd->equip_index[EQI_ACC_R] >= 1)) pos = sd->equip_index[EQI_ACC_L] >= 0 ? EQP_SHOES : EQP_ACC_L; else if(pos == EQP_ACC) pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; } Couldnt figure out what the pos = req_pos&eqp_acc .... does but whatever so basically this part is in charge of where the first accessory is place ( on your right looking straight at your equipment window ) pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; and if false, it picks the second slot and replaces it so my addition, takes highest priority, changing the entire structure * * * * if (pos == EQP_ACC && (sd->equip_index[EQI_ACC_R] >= 1)) pos = sd->equip_index[EQI_ACC_L] >= 0 ? EQP_SHOES : EQP_ACC_L; so now we check if the right accessory is filled and if it is, continue with this line now we replace shoe slot instead of right accessory
  7. convert it to rsm like you would any 3ds model using the built in feature of browedit btw Im pretty sure if you miss even 1 model not uvmapped you will get errors in game... that shut you down totally
  8. Version 1.0.0

    13 downloads

    I needed something small to add to my map and i thought some playing cards would make good easter eggs at the same time Easily modifiable,.. If you change the ace of hearts, Only the ace of hearts will be changed These are EXTREMELY small and dont look too good big... on the numbers side But the back side , I used an archangeling since this is a ragnarok emulator.... is quite modifiable Dont ask me for any changes and if you need help making lines view this guide https://rathena.org/board/topic/118261-mapping-resources-models-list-making-models-and-textures-list-easily/?tab=comments#comment-357746
  9. View File Playing Cards Set I needed something small to add to my map and i thought some playing cards would make good easter eggs at the same time Easily modifiable,.. If you change the ace of hearts, Only the ace of hearts will be changed These are EXTREMELY small and dont look too good big... on the numbers side But the back side , I used an archangeling since this is a ragnarok emulator.... is quite modifiable Dont ask me for any changes and if you need help making lines view this guide https://rathena.org/board/topic/118261-mapping-resources-models-list-making-models-and-textures-list-easily/?tab=comments#comment-357746 Submitter Naruto Submitted 08/30/19 Category Other Graphics  
  10. So after testing it doesnt seem like the monster with the AI dedicated to setting off a skill when their target is effect by a status Lets go over the code together if( mmd->bl.id == bl->id && !(battle_config.mob_ai&0x10) ) return 0; if( mmd->bl.id == bl->id && !(battle_config.mob_ai&0x10) ) return 0; Quote // 0x010: If set, mob skills defined for friends will also trigger on themselves. Not positive what the first part is about but its not important to my release so lets just delete this entire thing... thinking about it i need to test if it effects themselves without it... really easy to spot though so lets leave it be But It seems like cloaking is messing with my followers... let me know if you notice anything strange though if you plan on using this code
  11. Hi im trying to develop some advance monster commands/conditions Having issues... i think linking the sub protocol with the primary function ? But It works fine when i replace it completely in the src mob.c static int mob_getfriendstatus_sub(struct block_list *bl, va_list ap) { int cond1,cond2; struct mob_data **fr = NULL, *md = NULL, *mmd = NULL; int flag=0; nullpo_ret(bl); Assert_ret(bl->type == BL_MOB); md = BL_UCAST(BL_MOB, bl); nullpo_ret(mmd=va_arg(ap,struct mob_data *)); if( mmd->bl.id == bl->id && !(battle_config.mob_ai&0x10) ) return 0; if (battle->check_target(&mmd->bl,bl,BCT_ENEMY)>0) return 0; cond1=va_arg(ap,int); cond2=va_arg(ap,int); fr=va_arg(ap,struct mob_data **); if( cond2==-1 ){ int j; for(j=SC_COMMON_MIN;j<=SC_MAX && !flag;j++){ if ((flag=(md->sc.data[j] != NULL))) //Once an effect was found, break out. [Skotlex] break; } }else flag=( md->sc.data[cond2] != NULL ); if( flag^( cond1==MSC_FRIENDSTATUSOFF ) ) (*fr)=md; return 0; } Lets go over the code together if( mmd->bl.id == bl->id && !(battle_config.mob_ai&0x10) ) return 0; Not positive what the first part is about but its not important to my release so lets just delete this entire thing... thinking about it i need to test if it effects themselves without it... really easy to spot though so lets leave it be if (battle->check_target(&mmd->bl,bl,BCT_ENEMY)>0) return 0; This is what limits it to friends static int mob_getfriendstatus_sub(struct block_list *bl, va_list ap) { int cond1,cond2; struct mob_data **fr = NULL, *md = NULL, *mmd = NULL; int flag=0; nullpo_ret(bl); Assert_ret(bl->type == BL_MOB); md = BL_UCAST(BL_MOB, bl); nullpo_ret(mmd=va_arg(ap,struct mob_data *)); cond1=va_arg(ap,int); cond2=va_arg(ap,int); fr=va_arg(ap,struct mob_data **); if( cond2==-1 ){ int j; for(j=SC_COMMON_MIN;j<=SC_COMMON_MAX && !flag;j++){ if ((flag=(md->sc.data[j] != NULL))) //Once an effect was found, break out. [Skotlex] break; } }else flag=( md->sc.data[cond2] != NULL ); if( flag^( cond1==MSC_FRIENDSTATUSOFF ) ) (*fr)=md; return 0; } so now in your mob skill db nanobot: { NPC_SELFDESTRUCTION: { SkillState: "MSS_ANY" SkillLevel: 1 Rate: 10000 Delay: 0 Cancelable: false SkillTarget: "MST_SELF" CastCondition: "MSC_FRIENDSTATUSON" ConditionData: "SC_BERSERK" } } so now we should trigger skills on monster status Now im having an issue with using my CUSTOM status as triggers though... Ive tried adding them to my constants file... Ill let you know if i figure out more BTW: the rest wont bother you.... and i plan on replacing onfriendstatusoff with the old onfriendstatuson . . .
  12. https://herc.ws/board/forum/49-paid-services/
  13. possibly the same thing here pc.c if ((sd->job & MAPID_BASEMASK) == MAPID_TAEKWON) { // Better check for class rather than skill to prevent "skill resets" from unsetting this sd->mission_mobid = pc_readglobalreg(sd,script->add_variable("TK_MISSION_ID")); sd->mission_count = pc_readglobalreg(sd,script->add_variable("TK_MISSION_COUNT")); }