-
Posts
177 -
Joined
-
Last visited
-
Days Won
9
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Louis T Steinhil
-
How to duplicate SC_ITEMBOOST, SC_EXPBOOST & SC_JEXPBOOST
Louis T Steinhil replied to Louis T Steinhil's question in Source Support
SOLVED -
How to duplicate SC_ITEMBOOST, SC_EXPBOOST & SC_JEXPBOOST
Louis T Steinhil posted a question in Source Support
Hello I was trying to implement this script from Character chooses their own Rates. I edited it a bit to my liking - script RateSelect -1,{ OnSetRate: OnPCLoginEvent: switch(individual_rate) { case 1: .@exp_rate_bonus = .low_rate_exp_bonus; .@jexp_rate_bonus = .low_rate_jexp_bonus; .@drop_rate_bonus = .low_rate_drop_bonus; set .@rate_description$, "x1 (Low Rate)"; break; case 2: .@exp_rate_bonus = .mid_rate_exp_bonus; .@jexp_rate_bonus = .mid_rate_jexp_bonus; .@drop_rate_bonus = .mid_rate_drop_bonus; set .@rate_description$, "x25 (Mid Rate)"; break; case 3: .@exp_rate_bonus = .high_rate_exp_bonus; .@jexp_rate_bonus = .high_rate_jexp_bonus; .@drop_rate_bonus = .high_rate_drop_bonus; set .@rate_description$, "x50 (High Rate)"; break; case 4: .@exp_rate_bonus = .extreme_rate_exp_bonus; .@jexp_rate_bonus = .extreme_rate_exp_bonus; .@drop_rate_bonus = .extreme_rate_jexp_bonus; set .@rate_description$, "x100 (Extreme Rate)"; break; default: mes "[Rate Selector]"; mes "Select your preferred server rate for this character."; mes "BE CAREFUL: YOU CAN'T CHANGE IT AFTERWARD!"; individual_rate = select("x1:x25:x50:x100"); close2; goto OnSetRate; } sc_start SC_EXPBOOST, INFINITE_TICK, .@exp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_JEXPBOOST, INFINITE_TICK, .@jexp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_ITEMBOOST, INFINITE_TICK, .@drop_rate_bonus, 10000, SCSTART_NOICON; dispbottom "You have chosen the " + .@rate_description$ + " for your character."; end; OnInit: .low_rate_exp_bonus = 100; // x1 rate .mid_rate_exp_bonus = 2500; // x25 rate .high_rate_exp_bonus = 5000; // x50 rate .extreme_rate_exp_bonus = 10000; // x100 rate .low_rate_jexp_bonus = 100; // x1 rate .mid_rate_jexp_bonus = 2500; // x25 rate .high_rate_jexp_bonus = 5000; // x50 rate .extreme_rate_jexp_bonus = 10000; // x100 rate .low_rate_drop_bonus = 100; // x1 rate .mid_rate_drop_bonus = 2500; // x25 rate .high_rate_drop_bonus = 5000; // x50 rate .extreme_rate_drop_bonus = 10000; // x100 rate } prontera,150,150,5 script Rate Chooser 123,{ callsub OnSetRate; end; } It's working but that noicon part is not working when you logout and login again. You'll see the icons on the right but with no description. sc_start SC_EXPBOOST, INFINITE_TICK, .@exp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_JEXPBOOST, INFINITE_TICK, .@jexp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_ITEMBOOST, INFINITE_TICK, .@drop_rate_bonus, 10000, SCSTART_NOICON; I just would like want to duplicate SC_ITEMBOOST, SC_EXPBOOST & SC_JEXPBOOST and make their own icon so I won't have to mess up with Field Manual Icons and Bubble Gum. Thanks in advace! -
I used summon script commands then made a dedicated mob that buffs. so basically not much coding for unitwalk and unitwarp since i turned on the slave warp to master on battle/monster.conf // Should slaves teleport back to their master if they get too far during chase? (Note 1) // Default (Official): no slave_stick_with_master: yes
-
Found a different way. SOLVED
-
Thanks it worked!
-
Does anyone know how to make the summon teleport or warp as well when you use tele / warp BUILDIN_FUNC(summon) { int _class, timeout=0; const char *str,*event=""; TBL_PC *sd; struct mob_data *md; t_tick tick = gettick(); if (!script_rid2sd(sd)) return SCRIPT_CMD_SUCCESS; str =script_getstr(st,2); _class=script_getnum(st,3); if( script_hasdata(st,4) ) timeout=script_getnum(st,4); if( script_hasdata(st,5) ){ event=script_getstr(st,5); check_event(st, event); } clif_skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick); md = mob_once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, _class, event, SZ_SMALL, AI_NONE); if (md) { md->master_id=sd->bl.id; md->special_state.ai = AI_ATTACK; if( md->deletetimer != INVALID_TIMER ) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer(tick+(timeout>0?timeout:60000),mob_timer_delete,md->bl.id,0); mob_spawn (md); //Now it is ready for spawning. clif_specialeffect(&md->bl,EF_ENTRY2,AREA); // sc_start4(NULL,&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE, 0, 60000); } script_pushint(st, md->bl.id); return SCRIPT_CMD_SUCCESS; }
-
I would like to get help: Good day this is about the code for npc that gives you monster to support you like a Priest. This is the code: prontera,119,162,3 script Hired Help 56,{ //Dialogue if(@hired){ mes .npcn$; mes "It Looks like you two are having fun. Well don't let me stop you- carry on!"; close; } mes .npcn$; mes "Hello, would you be interested in purchasing some of my lovely ladies?"; mes "They buff you, heal you, and even revive you!!"; mes "So what do you say, huh?"; next; if(select("Yes:No")&2) { mes .npcn$; mes "You're missing out!"; close; } mes .npcn$; mes "It's 1z per-second with these beautiful gals."; input(.@time); if(.@time>Zeny||.@time<=0) { mes .npcn$; mes "You don't have enough. That's just too bad. Oh well better luck next time."; close; } close2; //End //Working parts set .@gid,bg_monster(.@bgid,.npcm$,.npcx,.npcy,"[Hired Help] "+.hhnm$[rand(1,getarraysize(.hhnm$))],.mobid,"Hired Help::OnBroken"); set @hired,1; set Zeny,Zeny-.@time; set .@usrid, getcharid(3); set .@map$,strcharinfo(3); while( set(.@i,.@i+1)&&playerattached()&&.@i<=.@time*20 ) { sleep2 1; if(!playerattached()) break; if((.@i%(.btym*20))==1) { while(.buffs[((set(.@i,.@i+2)-2)%(.btym*20))]) { unitskilluseid .@gid,.buffs[((.@i%(.btym*20))-2)],.buffs[(((.@i%(.btym*20))+1)-2)],.@usrid; sleep2 1000; } sc_start 32,240000,10,.@gid; } getmapxy(.@map1$,.@x1,.@y1,BL_PC); set .@dis, sqrt(pow(.@x1-.@tmpx,2 )+pow(.@y1-.@tmpy,2 ) ); if(.@dis&&.@dis<.wlkd){ unitwalk .@gid,.@tmpx,.@tmpy; .@lstx=.@tmpx; .@lsty=.@tmpy;} else if(.@dis>=.wlkd) unitwarp .@gid,.@map1$,.@x1,.@y1; else unitwalk .@gid,.@lstx,.@lsty; if(!(.@i%5)){ .@tmpm$=.@map1$;.@tmpx=.@x1;.@tmpy=.@y1; } if(.@map1$!=.@map$) { set .@map$, strcharinfo(3); unitwarp .@gid,.@map1$,.@x1,.@y1; } if(!Hp) unitskilluseid .@gid,54,4,.@usrid; if(Hp*100<MaxHp*.hpat) unitskilluseid .@gid,28,99,.@usrid; } killmonster .@map1$,"Hired Help::OnBroken"; if(playerattached()) set @hired,0; end; //End OnBroken: end; //NPC Variables OnInit: set .hpat, 70; //Heals the player when HP drops below this percent. You want this below 100 at all times. set .mobid,1626; //ID of your custom mob. set .btym, 240; //Rebuff in seconds. set .wlkd, 6; //Character speed before mobs warps to him. set .npcn$,"[^0000FFGreg^000000]"; getmapxy( .npcm$,.npcx,.npcy,BL_NPC ); setarray .buffs[1], 29, 10, 34, 10; // Skill_id, Skill_lv, Etc. setarray .hhnm$[1], "Ellsie", "Jenny", "Ashley", "Meghan", "Wenndy", "Anna"; //Hired npc will be randomly named from these values. } This code is not mine and it's from this link: https://rathena.org/board/topic/84503-hire-npc/ It works the first half that it summons the monster but console is prompting that the monster can't unitwalk and makes the monster just stuck with the NPC. I would like to change the bg_monster part and just make it summon so players won't attack it and fixed the unitwalk.
-
Release: Soul Link Modification - Script-based
Louis T Steinhil replied to Secrets's topic in Source Releases
Hello does anyone have a working copy of this? It only works with Str + 1 but if you changed it like Str + 100. It only adds + 1 to str. Other bonuses like Max HP Rate doesn't work either. No error on console and compile. -
SOLVED
-
Modify Change Race (bonus_bRace)
Louis T Steinhil replied to Louis T Steinhil's question in Source Support
SOLVED -
MOD : Expanded Ai Conditions
Louis T Steinhil replied to Singe Horizontal's topic in Project Releases
does this still work on latest? -
Good day! I tried editing this act & spr in act editor because it doesn't have "actions". So I went copying some actions from other headgear. ¿©_cons_of_poison.act ¿©_cons_of_poison.spr This is the original act & spr and this is the edited act & spr. For some reason it always crash my client. Anyone else know why? Thanks in advance! ³²_elempoison.act ³²_elempoison.spr This is the error code: eax: 0x00000000 ebx: 0x36d1a000 ecx: 0x01133c50 edx: 0x00000000 esi: 0x00000004 edi: 0x0019f4a8 ebp: 0x00000000 esp: 0x0019fff8 stack 0019fff8 - 001a03f8 0019FFF8 : 00 00 39 00 00 00 00 00 41 63 74 78 20 00 00 00 001A0008 : 01 00 00 00 1C 33 00 00 DC 00 00 00 00 00 00 00 001A0018 : 20 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 001A0028 : 07 00 00 00 34 00 00 00 7C 01 00 00 01 00 00 00 001A0038 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001A0048 : 00 00 00 00 02 00 00 00 4E EF 26 1A 98 02 00 00 001A0058 : 44 00 00 00 E0 02 00 00 54 02 00 00 00 00 00 00 001A0068 : BA 71 32 F3 34 05 00 00 4A 00 00 00 80 05 00 00 001A0078 : 48 03 00 00 00 00 00 00 5B 49 59 2D C8 08 00 00 001A0088 : 32 00 00 00 FC 08 00 00 00 03 00 00 00 00 00 00 001A0098 : CD EA CE 32 FC 0B 00 00 42 00 00 00 40 0C 00 00 001A00A8 : 36 03 00 00 00 00 00 00 C8 5F 50 38 78 0F 00 00 001A00B8 : 5E 00 00 00 D8 0F 00 00 68 03 00 00 00 00 00 00 001A00C8 : 44 05 28 B1 40 13 00 00 56 00 00 00 98 13 00 00 001A00D8 : 86 03 00 00 10 00 00 00 09 00 00 00 EC 00 00 00 001A00E8 : 02 00 00 00 01 00 00 00 7C 01 00 00 DC 15 00 00 Launch Info 00F8 00A4 00A4 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Job : Paladin prontera.rsw 158 81 renderer.cpp 838
-
I have tried adding new race (RC_Orc) on this but Orc lady card doesn't work on it. I added it on map.hpp and script_constants.hpp please help thanks! * Race (r) RC_Angel, RC_Brute, RC_DemiHuman, RC_Demon, RC_Dragon, RC_Fish, RC_Formless, RC_Insect, RC_Plant, RC_Player_Human (RC_Player deprecated), RC_Player_Doram, RC_Undead, RC_All
-
-
You should post the error
-
Good day I would like to ask on how to add this * Monster Race (mr) RC2_Goblin, RC2_Kobold, RC2_Orc, RC2_Golem, RC2_Guardian, RC2_Ninja, RC2_GVG, RC2_Battlefield, RC2_Treasure, RC2_BioLab, RC2_Manuk, RC2_Splendide, RC2_Scaraba, RC2_OGH_ATK_DEF, RC2_OGH_Hidden, RC2_Bio5_Swordman_Thief, RC2_Bio5_Acolyte_Merchant, RC2_Bio5_Mage_Archer, RC2_Bio5_MVP, RC2_Clocktower, RC2_Thanatos, RC2_Faceworm, RC2_Hearthunter, RC2_Rockridge, RC2_Werner_Lab, RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo, RC2_EP172ALPHA, RC2_EP172BETA, RC2_EP172BATH, RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda into this patch that was available and made Cydh public. doc/item_bonus.txt | 1 + src/map/map.hpp | 1 + src/map/pc.cpp | 4 ++++ src/map/pc.hpp | 1 + src/map/script_constants.hpp | 1 + src/map/status.cpp | 5 +++++ 6 files changed, 13 insertions(+) diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 7ffe172b5..08ef4a571 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -260,6 +260,7 @@ Atk/Def ------- bonus bAtkEle,e; Gives the player's attacks element e bonus bDefEle,e; Gives the player's defense element e +bonus bRace,r; Set the player's race to race r bonus2 bMagicAtkEle,e,x; Increases damage of e element magic by x% diff --git a/src/map/map.hpp b/src/map/map.hpp index 5200ff6b4..44073fbb2 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -429,6 +429,7 @@ enum _sp { // Mercenaries SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190, + SP_RACE, // original 1000- SP_ATTACKRANGE=1000, SP_ATKELE,SP_DEFELE, // 1000-1002 diff --git a/src/map/pc.cpp b/src/map/pc.cpp index ab1040eca..be3d1cdee 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -3217,6 +3217,10 @@ void pc_bonus(struct map_session_data *sd,int type,int val) if (sd->state.lr_flag != 2) sd->special_state.no_mado_fuel = 1; break; + case SP_RACE: + PC_BONUS_CHK_RACE(val, SP_RACE); + sd->bonus.change_race = (enum e_race)val; + break; default: if (running_npc_stat_calc_event) { ShowWarning("pc_bonus: unknown bonus type %d %d in OnPCStatCalcEvent!\n", type, val); diff --git a/src/map/pc.hpp b/src/map/pc.hpp index 05e861c64..dfebca1d9 100644 --- a/src/map/pc.hpp +++ b/src/map/pc.hpp @@ -497,6 +497,7 @@ struct map_session_data { int ematk; // matk bonus from equipment int eatk; // atk bonus from equipment uint8 absorb_dmg_maxhp; // [Cydh] + enum e_race change_race; short critical_rangeatk; short weapon_atk_rate, weapon_matk_rate; } bonus; diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 5d5066a4e..2c8a2f0e9 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -731,6 +731,7 @@ export_constant2("bRegenPercentHP", SP_REGEN_PERCENT_HP); export_constant2("bRegenPercentSP", SP_REGEN_PERCENT_SP); export_constant2("bSkillDelay",SP_SKILL_DELAY); + export_constant2("bRace", SP_RACE); /* equip indices */ export_constant(EQI_COMPOUND_ON); diff --git a/src/map/status.cpp b/src/map/status.cpp index d08be8e81..67546d1c2 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -3495,6 +3495,7 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt) ); memset (&sd->bonus, 0, sizeof(sd->bonus)); + sd->bonus.change_race = RC_NONE_; // Autobonus pc_delautobonus(sd,sd->autobonus,ARRAYLENGTH(sd->autobonus),true); @@ -4208,6 +4209,10 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt) if (sc->data[SC_LAUDARAMUS]) sd->bonus.crit_atk_rate += 5 * sc->data[SC_LAUDARAMUS]->val1; } + + if (sd->bonus.change_race != RC_NONE_) + base_status->race = sd->bonus.change_race; + status_cpy(&sd->battle_status, base_status); // ----- CLIENT-SIDE REFRESH ----- This code is working and I would just like to add it from these choices: * Race (r) RC_Angel, RC_Brute, RC_DemiHuman, RC_Demon, RC_Dragon, RC_Fish, RC_Formless, RC_Insect, RC_Plant, RC_Player_Human (RC_Player deprecated), RC_Player_Doram, RC_Undead, RC_All Thanks in advance!
-
I fixed this issue by removing static on this part from this static TIMER_FUNC(autoattack_timer) { to this TIMER_FUNC(autoattack_timer) {
-
I tried this but still the same error
-
Bonus Expansion Pack (73/75)
Louis T Steinhil replied to Panallox's topic in Project Concepts & In Progress
Anyone has the change race src? Thank in advance! -
Extra EXP / DROP Rewards from Monsters killed
Louis T Steinhil replied to Louis T Steinhil's question in Scripting Support
Thanks guys!