-
Posts
2,044 -
Joined
-
Last visited
-
Days Won
48
Community Answers
-
AnnieRuru's post in problem with instance "World?something...." was marked as the answer
the old instance system, the map name has to be
<single digit number>@<seven characters long>example [email protected]
[email protected]
[email protected]_vs
maximum map name without .gat is 12 the server will create 001 as the unique instance ID
means there's only 9 character left for your map name
new_1-4 will definitely crash your client
try something like [email protected]
-
AnnieRuru's post in How to make NPC reduce hp by set amount. was marked as the answer
set hp, hp -20000;if the player has less than 20k hp, the hp is set to 1
heal -20000,0;if the player has less than 20k hp, the player is dead -
AnnieRuru's post in Help me with this idea.. was marked as the answer
yeah your native language has better explanation
I don't even use google translator lol
now I get what you mean,
this is a mining script,
the user has to mine the rock within a certain time
the rock has 5 HP, plant mode
if the user failed to hit the rock for 5 times within the certain time limit
the user will die -> the rock falls on the user
not that hard, the trick is spawn it with npc
then it trigger the npc and spawn a mob
if the mob is not killed within a certain time limit, the triggering player will be dead
prontera,155,184,5 script Shining Plant 1083,{ getmapxy [email protected]$, [email protected], [email protected], 1; monster [email protected]$, [email protected], [email protected], "--ja--", 1083, 1, strnpcinfo(0)+"::OnMobDead"; hideonnpc strnpcinfo(0); .alive = getcharid(3); sleep 5000; // 5 seconds to mine if ( .alive ) { if ( attachrid( .alive ) ) { // player might log out message rid2name( .alive ), "the rock has fallen onto you"; unitkill .alive; } } .alive = 0; killmonster strnpcinfo(4), strnpcinfo(0)+"::OnMobDead"; hideoffnpc strnpcinfo(0); end; OnMobDead: .alive = 0; end; }if you don't like to use npc because needs to click twice,there is another way to make it trigger immediately by using mob controller system
but it needs source modification
EDIT:
lol I already tackling this topic before I see your bump post lol
-
AnnieRuru's post in supporter clone :) was marked as the answer
just like this enough
http://rathena.org/board/pastebin/lirjxvd9bdp/
though it seems your supporter clone npc, the time field is wrong
your script says 5 minutes, but the clone only last 0.5 seconds
because its counted in miliseconds
-
AnnieRuru's post in Announcer for kills made / items gathered in this script? was marked as the answer
try change
if ( !strcmp( strnpcinfo(0), .npc_name$ ) ) {into
if ( strnpcinfo(0) == .npc_name$ ) { -
AnnieRuru's post in Checking script was marked as the answer
you have to do this manually though
prontera,155,185,3 script kdfhksjfhs 100,{ [email protected] = gettimetick(0); for ( [email protected] = 0; [email protected] < 1000; [email protected]++ ) dispbottom "test"+ [email protected]; debugmes "this script use "+ ( gettimetick(0) - [email protected] ) +" mili-seconds to run"; end; } [Debug]: script debug : 2000000 110000159 : this script use 15 mili-seconds to run1st thing that you need to have in mind is thathttp://rathena.org/board/tracker/issue-6804-party-member-loop-issue-in-script-commandstxt/
when a server runs a script, all cpu power is dedicated to execute the script
I can think of several ways to slow down script execution time
no. 1, when you see the script commands in script.c,
anything that has clif*, sending packets to client, that definitely slow down the time
no. 2 ... query_sql ... this one I no need explain because if you ask this question, you sure know what it can do
actually, in fact I made an unfinished guide pinned at eathena forum
http://www.eathena.ws/board/index.php?s=&showtopic=181741&view=findpost&p=1478950
over there,
no.1 method is trying to simulate a permanent server array to store player data ...
no.2 is using freeloop wrongly
no.3 is runs a query_sql that takes > 5 seconds to execute
<-- yeah I think I never say that in that topic, so I tell here
in my test server, whenever a query_sql runs more than 5 seconds, map_server.exe hang
I have 3 experiences that query_sql can kill a server
no.1 is joshuali eamyadmin, trying to delete old account from a live server
no.2 is my old character logging system ... dunno why he said it caused lag
no.3 is run a query_sql "insert into ... select" to gives every player an item .. in a large table his server used 13 seconds
that's why we always suggest to shut down your server and in order to execute a long Sql query
partly because of this reason
I think there's also a topic in the past
http://www.eathena.ws/board/index.php?showtopic=237976
EDIT: didn't see your post
@-SkittleNugget-
I have tested that, setting too many variables will not hurt the server at all
because every variables are being store in RAM
it updates is interval
this one store character data
and this one store permanent server variable -> $var you can manually adjust them
btw remember that we already have check_goto_count to prevent infinite loop
so unless the script has freeloop or query_sql, I don't think that's enough to kill a server
-
AnnieRuru's post in Help with this script was marked as the answer
+ for ( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ) + if ( attachrid( [email protected][[email protected]] ) )there's a flaw about thishttp://www.eathena.ws/board/index.php?s=&showtopic=271168&view=findpost&p=1485484
https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L8112
it should be
+ for ( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ) + if ( isloggedin( [email protected][[email protected]], [email protected][[email protected]] ) ) { + attachrid [email protected][[email protected]];EDIT: ops !============================================================
-EDIT-
hmmm ... I think your answer is wrong
for ( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ) if ( attachrid( [email protected][[email protected]] ) ) for( set [email protected],0; [email protected] < getarraysize( .Reward ); set [email protected],[email protected] + 2 ) { getitem .Reward[[email protected]],.Reward[[email protected]+1], [email protected][[email protected]]; unittalk getcharid(3),"Yeeaaah !! Vencimos a todos los Mobs!!!"; unitemote getcharid(3),e_heh; specialeffect2 709; }if you indent properly, this script will make the player talk "Yeeaah !!" for the amount of times equal to getarraysize( .Reward ) /2ok I do this one then
OnBossKill: delwaitingroom; if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill" ) > 0 ){ waitingroom "Missing ["+ mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill") +"] Mobs",0; end; } else { // delwaitingroom; // no need delwaitingroom twice waitingroom "PRIZE TIME",0; specialeffect EF_POK_JAP; announce "Congratulations Missing the Party [ "+ strcharinfo(1) +" ] has exceeded the Instance Of Mutant Saurus.", bc_all; getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; set [email protected]$, strcharinfo(3); set [email protected]_size, getarraysize( .Reward ); for ( set [email protected], 0; [email protected] < [email protected]; set [email protected], [email protected] +1 ) { if ( isloggedin( [email protected][[email protected]], [email protected][[email protected]] ) ) { attachrid [email protected][[email protected]]; if ( strcharinfo(3) == [email protected]$ ) { unittalk getcharid(3),"Yeeaaah! We beat all the Mobs!!!"; unitemote getcharid(3), e_heh; specialeffect2 EF_POK_JAP; for( set [email protected],0; [email protected] < [email protected]_size; set [email protected], [email protected] + 2 ) getitem .Reward[[email protected]], .Reward[[email protected]+1]; // already attached to current player, no need optional parameter dispbottom "You won a Legendary Item by passing the Instance Of Mutant Saurus"; } } } } -
AnnieRuru's post in Euphys Qshop was marked as the answer
you show the wrong script
the error comes from the script, that the npc located in que_moon and prt_are_in
but this script has neither of them
Source (NPC): BG Shop at que_moon (33,39)means the npc header should be something like this
que_moon,33,39,? script BG Shop ?,{ -
AnnieRuru's post in Please Need Help About PK :3 was marked as the answer
you didn't tell your server is pk enabled server =/
- script PK System Minus -1,{ OnPCKillEvent: if ( !getd( "."+ strcharinfo(3) ) ) end; // only trigger on the maps defined in that array attachrid killedrid; [email protected]_amt = 1; // point to minus if ( #KAFRAPOINTS - [email protected]_amt < 0 ) end; // prevent the value go into negative #KAFRAPOINTS = #KAFRAPOINTS - [email protected]_amt ; dispbottom "You have lost "+ [email protected]_amt +" Point of Honour."; dispbottom "Your Total Points are : "+ #KAFRAPOINTS; end; OnInit: setarray [email protected]$, "prontera", "morocc", "payon"; // put all the maps here [email protected] = getarraysize( [email protected]$ ); while ( [email protected] < [email protected] ) { setd "."+ [email protected]$[[email protected]], 1; [email protected]++; } end; } used some tricks ...
-
AnnieRuru's post in HOW TO CHANGE THE TIME OF KOE EVENT EVERY SATURDAY? was marked as the answer
you just remind me I should put some fake labels o.o
update again ...
koe_0.3.txt
[paste=53zbucwzu4t]
koe_0.3.patch
[paste=17eh6qh8492j]
koe_0.3.patch
the OnClock2000:
can change into OnSat2000:
then it will start every saturday 8pm
and end it with OnSat2030: put below L_end:
EDIT:
ok the forum unicode problem again
#include "../common/mmo.h" #include "../config/core.h" use attachment
-
AnnieRuru's post in Happy Hour Script was marked as the answer
1 and 4 is possible
2 is impossible
3 is too hard to do ( need a long long array ... )
we don't have a script command to alter the drop rate of existing monster
however can use OnNPCKillEvent + getitem to achieve this
but still, quite a nice idea you have there
[paste=3bzgwipu6ldl]
super easy script though
-
AnnieRuru's post in request mvp ladder with prizes was marked as the answer
reference
http://rathena.org/board/topic/66423-mvp-rank/?p=178037
http://www.eathena.ws/board/index.php?showtopic=191107
script
[paste=3se94m739i57]
-
AnnieRuru's post in R> Script Problem was marked as the answer
prontera,159,187,5 script jkfjsdkfjs 111,{ [email protected] = rand(100); if ( [email protected] < 3 ) getitem 2202, 1; else if ( [email protected] < 4 ) getitem 7179, 1; else if ( [email protected] < 7 ) getitem 6049, 1; else if ( [email protected] < 37 ) getitem "Poring_Coin", 1; else if ( [email protected] < 47 ) getitem "Poring_Coin", 5; else if ( [email protected] < 52 ) getitem "Poring_Coin", 10; else dispbottom "nothing happen"; end; }read the pinned topicOnInit:
set .Length,1; //EDIT THE LENGTH OF CHARACTERS TO BE TYPED
setarray .List$,"1","2","3","4","5","6","7","8","9","0"; //YOU CAN ADD LETTERS, DIGITS & SYMBOLS HERE..
end;
}
what does this has to do with fishing script ?
-
AnnieRuru's post in Gold room guild renting system? was marked as the answer
oh ? where ?
me wanna see it
me love to rewrite other member's paid scripts <3
now you give me the motivation to start this script
[paste=jxhqd5hxel9]
EDITED:
update and fixed
[paste=33s2sgyvou08]
-
AnnieRuru's post in Specificly timed warps. was marked as the answer
- script day_night_npc -1,{ OnClock0100: OnClock2000: OnInit: sleep 1; // if you want to use different script file, then slow down the script execution if ( gettime(3) >= 1 && gettime(3) < 20 ) { // day warp enablenpc "daywarp#1"; disablenpc "nightwarp#1"; } else { enablenpc "nightwarp#1"; disablenpc "daywarp#1"; } end; } prontera,152,192,0 warp daywarp#1 2,2,morocc,156,93 prontera,152,192,0 warp nightwarp#1 2,2,geffen,119,59if it is different file, then you have to make sure that your custom script is being read laterread npc\re\scripts_main.conf, or npc\scripts_custom.conf
make sure the warp npc is being read 1st before the day_night_npc
or ... just easily put a sleep command before enablenpc/disablenpc
-
AnnieRuru's post in Need help in Item Require Warper was marked as the answer
[paste=74qo3zp6a878]
if I understand correctly ...
you trying to use 1 item to unlock the map
but once the map is unlock, the script will open the map indefinitely
this will require to set a permanent player variable in bits ...
because in the script, it lacks this feature
-
AnnieRuru's post in My Custom BG Error, (Always Infinite Loop) HELP <3 was marked as the answer
oh !this script has the leader option enabled
the script will always loop the the team index to search for a player that is currently not a leader
L_setleader: while ( ( [email protected] = getd( ".team"+ getarg(0) +"aid["+ rand( getd(".team"+ getarg(0) +"count") ) +"]" ) ) == playerattached() );if you set to 1, it will caused an infinite loopand it is supposed to be work in this way
because .... didn't I already said DO NOT set to 1 ?
set .minplayer2start, 2; // minimum player to start ... please do not set to 1 -
AnnieRuru's post in AnnieRuru's Devil Square Bug was marked as the answer
my script has already able to on/off this event by typing
@devilsquare on
@devilsquare off
there's no need for you to add your custom menu already
disablenpc "Reward NPC#DS"; OnClock0400: // yeah I know about OnMinute ... it just that more people knows better using OnClock OnClock1000: OnClock1600: OnClock2200: .start = 1; disablenpc "Exit#DS";change into
OnClock0400: // yeah I know about OnMinute ... it just that more people knows better using OnClock OnClock1000: OnClock1600: OnClock2200: if ( .start ) end; // I just fixed this recently .start = 1; disablenpc "Reward NPC#DS"; -
AnnieRuru's post in R>Guild House for Rental was marked as the answer
what does guild house do ? using which map ?
and if I remember correctly, emistry did a guild house script before ...
let me dig it out
I think I saw it inside emistry signature before if I'm not mistaken ..
( emistry you better don't change your sig )
ok I think I saw it while it was still in old eathena forum ... nvm
OH YES found it
http://www.eathena.ws/board/index.php?s=&showtopic=270610&view=findpost&p=1482790
I reupload it here again
[paste=iebzflhnv6]
-
AnnieRuru's post in Wrong stat points given on "set Baselevel" was marked as the answer
after some digging through the source code ....
for ( ; low < high; low++ ) #ifdef RENEWAL // renewal status point cost formula sp += (low < 100) ? (2 + (low - 1) / 10) : (16 + 4 * ((low - 100) / 5)); #else sp += ( 1 + (low + 9) / 10 ); #endifmeans ... the statpoint.txt in \re\ folder is official ...because the formula above I used, is actually correct in \pre-re\ folder
http://rathena.org/board/tracker/issue-4578-missing-bonus-infodocumentationblvlup-bug/?gopid=4578#entry4578
can you please try this
prontera,156,186,5 script stat calc 100,{ input [email protected], -999, 999; baselevel = baselevel + [email protected]; end; }check if the atcommand "@lvup" and set baselevel are having any difference in statin my test, how come when my server set to renewal, but I'm getting 2670 instead of 2545
but you say you can get 2545 when reset ? my test shows 2670 when reset
getting more and more funny each time I do this research
and actually
I do reset, my statpoint is actually 0 instead of 48 ... wtf ...
EDIT:
http://rathena.org/board/tracker/issue-8429-bug-statpoint/
someone already reported, try post your result too
EDIT2:
confirmed now this is rathena bug, not from your custom script ...
waiting for the developer to fix it
-
AnnieRuru's post in Request> Job master Script ^__^V was marked as the answer
OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no) end;instead of looking at the game screentry to focus your mind and search for some hint at the script ... there's a lot force power in this particular area ...
-
AnnieRuru's post in Make newly created character face forward. was marked as the answer
FUN !
why not make a script command to change the player's facing
[paste=1ta6tj2tm187]
then can use
- script kdjhfksdjf -1,{ OnPCLoginEvent: setdir DIR_SOUTH; end; }this might be useful with pushpc script command -
AnnieRuru's post in script help for this effect? was marked as the answer
bonus2 bAddEff,e,x;
Adds a x/100 chance to cause effect e to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc)
Eff_Stone 0
Eff_Freeze 1
Eff_Stun 2
Eff_Sleep 3
Eff_Poison 4
Eff_Curse 5
Eff_Silence 6
Eff_Confusion 7
Eff_Blind 8
Eff_Bleeding 9
Eff_DPoison 10
Eff_Fear 309
Eff_Burning 310
stone, freeze, stun and sleep ... are possible candidates ...
if you want a custom made effect here ... you have to do source modification
-
AnnieRuru's post in Fishing script with anti bot help was marked as the answer
add this code right after your fishing script header
if ( !rand(100) ) { doevent "Anti Bot::OnCheck"; end; } and change Check: label into OnCheck:
along with goto Check; into goto OnCheck;