Jump to content

Recommended Posts

Posted (edited)

Hello all,

'been working with this for some time now. I guess it's time to showcase my @slaveclone mod aka SC. Big thanks to developers!; I just followed their structure & flow -with some additional edits here and there. I apologize for violating the rule.

(text to be updated)

Preview:

Main Use:

  • By using item to call the function
  • Pre-configure SC from battle_config and box of Hotkeys
  • Let the AI run (mob.cpp)

Tested Okay so far (on low rate, and 1/2 stored exp gained from 1 mob, per Slaveclone) :

  • Ninja < Lv 90
  • SM -> Crusader
  • AC -> Hunter & Bard
  • TF -> Assassin & Rogue
  • MC -> Alchemist
  • AL -> Priest & Monk
  • MG -> WIzard & Sage
  • Gunslinger < Lv 60
  • Summoner < Lv 60
  • Heckyeah Killed 1 Phreeoni, 1 Maya

Some in-game configuration:

slaveclone-1.jpg
 

slaveclone-1-2.jpg

battle_conf preview :

//slaveclone
sceasymode: no 			//some adjustment such as slaveclone cast can be cancelled if (no) sceasymode. Future: consuming ammo & sync-in with the source account 
timelimitsc: 1200000 		//some adjustment such as slaveclone cast can be cancelled if (no) sceasymode. Future: consuming ammo from its clone-source when (yes)
//atc_slave_clone_limit: 50 //max number of active slaveclone being summoned (default 25) //unused
more_exp_rate: no		//yes = monster level * actual exp prepared
more_exp_rate_f: 4		//the bigger the number, the smaller more_exp_rate(yes) affects. 4 is just okay for more_exp_rate(yes)
hyperactivesc: yes		//hyperactive slaveclone skill call
sclonepartyexpdist: yes	//unused. party-share exp. IDK, too small exp?. Used: just normal exp retrieval, but parallel for all active char
cur_mstat: 10			//stat modifier. 10 means no change. Somehow slaveclone is weaker than the original when 10. IDK.	//finally I can avoid to use this!!
scskillbyhotkeys: yes	//sorting slaveclone stock of skills by active hotkeys. (No) means doing default sorting (all available skills for current char)
randskill: yes 			//(yes) randomizes the decision to choose hotkey index; while (no) repeat the cycle to sort the decision from hotkey index 0 to MAX_HOTKEYS
mvp_raid_mode: no 		//to increase slaveclone attack skill's permillage
mvp_raid_mode_m: 3 		//some modifier for mvp_raid_mode. I forgot what this number means lol sorry 
devotion_level_difference: 100	//actually 10 is default
retaliate_to_master: no //(No): so that slaveclone fights on its own sake. (but giving EXP to master hahaha)
clone_skill_rate: 100 	//self explanatory
slaveclonepet: yes 		//yaaay pet is available now. Elemental too. Homun too. Mercenary is not (bcs max level is just 99 so meh). CORRECTION: pet_id is messedup. Fallbakc to No
cur_attprob: 60			//only for dev mode

//a for attackProbability (attProb)
// 100 means always melee attacking
// i guess this is not absolute, since even with 100, mobskill_use still is called on some other events. So ya, just normal.
// the reason why only lists to the second jobs, because player is assigned its job through the progression, and I assume that style of play between second and third job player is almost the same.
// example, Arch Bishop is recognized as novice, acolyte, and priest.
// this codes are used when filtering whether a char should melee attacking or should cast skill
nv_a: 100	//novice
snv_a: 65	//super novice

al_a: 50	//acolyte
pr_a: 30	//priest
ab_a: 30
mo_a: 85	//monk
sr_a: 85
.
.
.
.and other jobs

//these ones determine combat style. omg i need JSON
nv_cc: 1	//novice
snv_cc: 1	//super novice

al_cc: 1	//acolyte
pr_cc: 1	//priest
ab_cc: 0
mo_cc: 0	//monk
sr_cc: 1
.
.
.
.and other jobs

Purpose:

  • Well, to make solo grinding more fun & not lonely. In NOT easymode, I wish to forbid other client to slaveclone each other, although it also fun in a limited number of players.

Deliberate changes:

  1. Removed restrictions of AL_WARP so you can warp to anywhere
  2. Some musical skills's unit edits on the *.yml
  3. Activated pet's skills on *.yml
  4. Auto-Triggerred skills:
    1. SA_CASTCANCEL is prepared/pre-triggered anytime for Sage
    2. SC's AM_CALLHOMUN will trigger player's AM_REST, just so you can differ which homun is whose
    3. SC's GS_GLITTERING is triggered by mob_dead( )
    4. etc

Some Features:

  • "Partner Flute" item, as the gate to access the script to call the modified mob_clone_spawn
  • SP for SC. Did you see the blinking mob (SC) HP down there? Yup, that's SP. I dont know how to use homun's HP SP bar for md / mob. 
  • Skills are working hehehe (havent tested passed the Rebirth level)
  • Other extensive @atcommand to control the owned slaveclones
  • Pet, Homun. And trigger to homun's skills, and their attack
  • A single client window opened is enough
  • Stored EXP & Zeny from mob; and Char get its retrieval by logging in
  • (Visual) Merchant's cart, Spirit/Mind Bullet, Spirit Marble, Falcon
  • Battle differentiation on peculiar use of weapon by certain Job. For example, when Hunter equipped with bow it runs offensive (chasing target, etc), but when equipped with not a bow, they run defensive (stay close to main player) and using close-ranged traps
  • Item amount emulated by the clone itself, so it fails to use MG_STONECURSE when 1 Red Gemstone had been used already
  • Changing SC's equipment via atcommand. Example use: when MVP is suddenly changed to be a mob w/ ghost property
  • Applying usage of item to SC (so far ASDP potions)
  • Certain (most) skills are triggered by more specific situations (SM_MAGNUM when SC is surrounded by enemies, AL_BLESSING when noticing MG_STONECURSE-ed teammates, etc)

Disdvantages:

  • I understood Ragnarok is designed to be played mainly solo. So this kind of use of slaveclone, perhaps, beat the purpose. However, I thought it would be fun if we imitate speedrun format, in which player should kill 1 Phreeoni as fast as they can, from scratch.
  • Well, since main AI is made by rAthena folks, the way I modify how slaveclone's AI run is probaby not satisfying all type of battle styles.
  • I think with only 1 client, it's not so efficient to move back and forth between Char
  • Kinda mess the screen as I can't even see where my main Char is when all 15 chars are active
  • HEAP Corruption usually appear when using the Partner Flute too fast as soon as we logged in (Windows 8.1). Ignore it.
  • No battle_status applied to MOB, so its attack is slightly lower than original player

Main Edits:

  • mob.cpp
  • skill.cpp
  • unit.cpp
  • battle.cpp
  • status.cpp
  • script.cpp
  • pet.cpp, elemental.cpp, homunculus.cpp, intif.cpp
  • pc.cpp
  • clif.cpp
  • atcommand.inc
  • battle_conf.txt, item_db.txt, groups.conf, pet_db.yml, skill_db.yml, abra_db.yml
  • OnPCLoginEvent script

Still stuck & confusing:

  • To completely imitate / copy main player (sd)'s inventory, then make the slaveclone independently use them. Perhaps to also sync the amount when re-login.
  • With that said, use of inventory by slaveclone is still impossible, as well as changing equipment of the slaveclone. Dangit, inventory! 
    Now I think I can handle md->inventory hehe
  • Customized movement when battling MVP. Imagine SC can move like in Space Invader, adapting MVP's movement, setting traps at the right time, etc
  • I wish all mobs in MOB_DB had been filled its proper MP value so that Hunter's SP Trap can work on regular mob too
  • Refactor all of my edits into few separated cpp files

Other cool way around:

  • Recently I saw another project which has similar purpose of using AI on char. It's also a cool one! :
Edited by eduardoxmenezes
  • Love 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...