-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by AnnieRuru
-
-
move topic to source modification ? lol
I'm not interested in making skill modification though, I only prefer script type source modification
-
hmm ... isn't barricade is a plant type monster that only receive 1 damage per hit ?
then anyone with highest aspd can break it off easily
I suggest we do something like OnPCAttackEvent,
just search OnPCAttackEvent in eathena board you'll find this suggestion bring up many times
however nobody at the time can do it
and developers deny this modification to be added into eathena at the time,
because they claim this modification can lag a live server
especially in a high rate server, where a lot players dealing high aspd speed
the OnPCAttackEvent will trigger like crazy, might cause lag
and it return a variable @damage, and use it in scripts to keep track the damage done to mobs
when I have some free time, maybe I'll make this modification to prove this rumor right or wrong
-
put sleep 1; under OnInit label then
-
if you mean u want to make a OR condition like this
if ( countitem(unlimited poison bottle) ) {
useskill enchant deadly poison
}else if ( countitem(poison bottle) ) {
delitem poison bottle
useskill enchant deadly poison
}
you have to do something like this in the skill.c
afterall, skill_require_db.txt only applicable with AND condition
-
search key word: ammo, ammunition
-
I don have the ability to hex a client like shinryo
or create a new custom effect modification like devilevil
so no ...
but if you do it with bleed status it just bonus2 bAddEff,e,x;
-
seriously,
parse_simpleexpr: unmatch ')' 15 : if (checkweight(607,500) == 0 ) goto overWeight; 16 : if (countitem(7073) < 1) goto noCoupon; 17 : mes @name$; 18 : mes "How many coupon to berries?"; 19 : input .@num; * 20 : if (countitem(7073 < .@num)'{' 21 : mes @name$; 22 : mes "Insufficient coupon!"; 23 : close; 24 : }else 25 : {
parse_line: need ';' 31 : } 32 : case 2: 33 : if (checkweight(7073,1) == 0 ) goto overWeight; 34 : if (countitem(500) < 1) goto noBerry; 35 : mes @name$ * 36 : 'm'es "How many berries to coupon?"; 37 : input .@num2; 38 : if (countitem(607) < .@num2){ 39 : mes @name$; 40 : mes "Insufficient berries!"; 41 : close;
do you need other people to post out the error for you ?
-
then make a npc for it o.o
mes "I can make a guild ...";
if ( countitem("emperium")== 0 ) {
don have ...
}
input .@name$;
atcommand "@guild "+ .@name$
watever
-
I want to know how to reproduce that bug, step by step
and I don't want to hear some noob gm right-click kill npc <.<
-
actually I also think that's the problem
I noticed most of the maps in graphic release section are either custom towns or marketplace ...
its very rare to see them makes an event map
... only a few pvp map, not even 1 gvg map or battleground maps
because they don't know how to write event script themselves !
... with the exception of Aerie ....
and yes ... without a map, this topic discussion will not go anywhere
maybe can try find an official RO map to substitute in
I also think we from scripting section side should work together with members from graphic section more often
heh ... kinda fun make something extraordinary once in a while
EDIT:
hmm ... this also counts
just browse through that section and can't seem to find a good one for this
-
I believe bindatcmd is works for ALL players
what you are doing now is like,
you only want to make change to that particular player, but you set a global variable <.<
I believe this is how this command should works
we shouldn't overwrite the original atcommands
and you should try multi-client to check 1 side can use, another side can't use because it set globally
if I understand correctly that u need that command limited to prontera only
I believe you need to edit atcmd(refresh) in atcommand.c directly
which ... isn't very hard to do if you can read source
-
I finished this script in less than 10 minutes, but took me over 3 hours to write out battle.c, so noob me
sql-files
REPLACE INTO `mob_db2` VALUES (2901,'EMPERIUM_1','Emperium','Emperium',90,5,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db2` VALUES (2902,'EMPERIUM_2','Emperium','Emperium',90,5,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db2` VALUES (2903,'EMPERIUM_3','Emperium','Emperium',90,5,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db2` VALUES (2904,'EMPERIUM_4','Emperium','Emperium',90,5,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db2` VALUES (2905,'EMPERIUM_5','Emperium','Emperium',90,5,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
db\mob_avail.txt
2901, 1288 2902, 1288 2903, 1288 2904, 1288 2905, 1288
diff
Index: battle.c =================================================================== --- battle.c (revision 16821) +++ battle.c (working copy) @@ -5021,6 +5021,24 @@ if( (s_bl = battle_get_master(src)) == NULL ) s_bl = src; + if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) { + struct map_session_data *sd = BL_CAST( BL_PC, s_bl ); + struct mob_data *md = BL_CAST( BL_MOB, t_bl ); + if ( !strcmp( mapindex_id2name(sd->mapindex), "prontera" ) ) { + if ( md->class_ >= 2901 && md->class_ <= 2905 && battle_getcurrentskill(src) > 0 ) + return 0; + if ( + md->class_ == 2901 && sd->status.guild_id == mapreg_readreg( add_str( "$@woe_5emp_1" ) ) || + md->class_ == 2902 && sd->status.guild_id == mapreg_readreg( add_str( "$@woe_5emp_2" ) ) || + md->class_ == 2903 && sd->status.guild_id == mapreg_readreg( add_str( "$@woe_5emp_3" ) ) || + md->class_ == 2904 && sd->status.guild_id == mapreg_readreg( add_str( "$@woe_5emp_4" ) ) || + md->class_ == 2905 && sd->status.guild_id == mapreg_readreg( add_str( "$@woe_5emp_5" ) ) + ) { + return 0; + } + } + } + if ( s_bl->type == BL_PC ) { switch( t_bl->type ) { case BL_MOB: // Source => PC, Target => MOB Index: battle.h =================================================================== --- battle.h (revision 16821) +++ battle.h (working copy) @@ -3,6 +3,7 @@ #ifndef _BATTLE_H_ #define _BATTLE_H_ +#include "mapreg.h" // state of a single attack attempt; used in flee/def penalty calculations when mobbed typedef enum damage_lv {
script
- script woe -1,{ OnWhisperGlobal: announce "woe started", 0; for ( .@i = 1; .@i <= 5; .@i++ ) monster "prontera", 149 + .@i *3, 185, "Emperium No."+ .@i, 2900 + .@i, 1, strnpcinfo(0)+"::On"+ .@i; end; On1: callsub L_down, 1; On2: callsub L_down, 2; On3: callsub L_down, 3; On4: callsub L_down, 4; On5: callsub L_down, 5; L_down: announce strcharinfo(2) +" has broken Emperium No. "+ getarg(0), 0; setd "$@woe_5emp_"+ getarg(0), getcharid(2); monster "prontera", 149 + getarg(0) *3, 185, "Emperium No."+ getarg(0), 2900 + getarg(0), 1, strnpcinfo(0)+"::On"+ getarg(0); end; }
ok, this is still a sketch script,
but since the idea has been become real,
now its better to get the topic roll faster
still, you still missing
- tell how the victory condition properly
- *EDIT* confirm this is a pvp/gvg/ or battleground script
- and the MAP !!
btw, did anyone experience having client crash when multi-client ?
especially login in this prontera map, having shown this emperium stuff
EDIT:
seems to be cause by emperium id 1288 inside mob_avail
when change 1288 into 1915 doesn't give gravity error ... hmm ...
-
http://www.eathena.ws/board/index.php?showtopic=272124
wild guess ... you using 3ceam or eamod ?
EDIT: let me try out in this rathena ...
EDIT2:
quite confirm this bug ... sometimes able to reproduce ... sometimes can't
like bloody knight can, but emperium/empelium can't
-
or maybe some noob GM right click on the npc to kill it ? o.O
-
omg your engrish @_@possible but bad practice, better do like darristan said.though you can try something like OnPCUseSkillEvent
and just like lighta said, using atcommand or script commands for activating skills is bad practice
( I also mentioned it in that post )
but this is 1 of the easier method to get the job done
( which I also mentioned it ... mainly use for event purposes )
-
10% burn on enemy when physically attacked
I'm interested on this one
reminds me of ... some other rpg games Incineration
-> burn down enemy hp by 0.5% every second, for 4 seconds (total 2% hp reduce if success, damage lower on boss)
I believe rathena doesn't have this one
well ... kinda similar to bleed status though
-
-
the answer is OFFSET
select * from mob_db limit 10 OFFSET 5;
but yeah ... putting a limit 5,5 also works, like you did
select * from mob_db limit 5,10;
- 1
-
how the **** can you get npc_checknear error from a floating npc ????
unless you are using some other emulator like eamod or other eathena ?
- 1
-
I'm having fun with your script, unedited
u know ...
it reminds me back in the days when some random members made endless tower b4 eathena has it
http://www.eathena.ws/board/index.php?s=&showtopic=183810&view=findpost&p=1010571
in less than 12 hours the topic posted, everyone start play with his script, but I fixed it 1st
haha ... some nice old days ..
-
switch(select(.@md_name$ + "Enter the dungeon:Return to Alberta:Cancel")) { case 1: if (has_instance("1@tower") == "") { mes "The memorial dungeon " + .@md_name$ + " does not exist."; mes "The party leader did not generate the dungeon yet."; } else if ((has_instance("1@tower") != "") && (.@partymembercount < 2)) mes "You can enter the dungeon after making a party."; else { mapannounce "e_tower", .@p_name2$ + " of the party, " + .@p_name$ + ", is entering the dungeon, " + .@md_name$ + ".",bc_map,"0x00ff99",FW_NORMAL,12; set etower_timer,gettimetick(2); setquest 60200; setquest 60201; warp "1@tower",52,354; end; } break;
the elseif and else part is the one to modify if you want to limit it into only 1 player
-
spoon feed
-
http://www.eathena.ws/board/index.php?showtopic=275732
lol ... my script is really everywhere
rand(<some number>) will always return a fixed table order, unlike rand() return randomize order
@madtoyz
better use the script on post#13
the solution provide by Kenpachi doesn't work
well ... kenpachi always gave wrong info ...
I'm more surprised that topic has 3 pages and yet nobody said anything about it being bug x.x
hmm ... reloop the query_sql is a big no-no ...- script AutoFunEvent -1,{ OnStartLuck: do { query_sql "select account_id from `char` where online = 1 order by rand() limit 1", .@aid; attachrid .@aid; if (CheckVending()) detachrid; } while (CheckVending()) announce strcharinfo(0) +" won in Lucky Pick Event.", 0; getitem 671,1; end; }
-
want to show you another trick ?I bet 95% of the scripters alive now wouldn't have thought of using sql that way.query_sql("SELECT `name`,CAST(`value` AS SIGNED) FROM `global_reg_value` LEFT JOIN `char` ON `global_reg_value`.char_id = `char`.char_id WHERE `global_reg_value`.str = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5",.@name$,.@val);
this line, I don't like table join either
select char_id as abc, ( select name from `char` where char_id = abc ), value from global_reg_value where str = 'PC_DIE_COUNTER' order by cast(value as signed) desc limit 5;
topic
http://www.eathena.ws/board/index.php?showtopic=268999
SQL optimization
- try to avoid using JOIN table if possible
the sql will always join both tables together before it start its calculation
- cast( value as signed ) used twice in that script
you might not notice it, but to optimized sql performance, try to avoid having too many commands
well ... I think that's all about his script
replace into runs slower than insert into / update, so its fine
- 1
Capture the Flag : WoE Script
in Script Requests
Posted · Edited by AnnieRuru
damn ... if everyone can make explanation like this in script request section ... I'm sure script request section will become very interesting
I think I can handle the script part, no problem
however currently Olrox is currently making this
WoE EX Castles by Olrox [Free Release Project] - Morroc theme
I'm not sure if he is interested to adjust his current project to substitute yours
still, we missing map designer for this
I think I try out with Olrox 1st, then ...
since I've work together with Olrox and DevilEvil before, next one I always want to try is Syouji
EDIT:
no, I don't think this woe and that battleground script can merge together ...
this script (gvg) and that script (battleground) is totally different ones ...
but still, I think I'll try contact a few map designers that like to take part in this one
EDIT2:
seems like there's 7 emperium rooms, its a prime number
so its hardly can get same ... unless its 3-3-1, oh well