-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by AnnieRuru
-
- script kjfhksjdhfs -1,{ OnAgitEnd: setcastledata "<castle name>", 2, 100; end; } set all your available castle and simply make them into 100 points economy it is automatically calculated based on economy invest // Is there Economy in this castle? set .@Treasure,GetCastleData(strnpcinfo(2),2)/5+4; .... // Spawn boxes in proper order. for (set .@i,0; .@i < .@Treasure ; set .@i,.@i+1) { monster ... "Treasure Chest", ....
-
are you doing this for event ? ( I can't think of other situation that need to do something like this ) if it is, then save them into an array when they register then its very easy to retrieve them later on example like this script
-
I can hardly believe I am being taught to use ELSE... that was for educational purpose .... ok we are complicating this topic I like an explanation to this ...
-
update to this topic same thing ... negative number support function script int__ { .@i = getstrlen( .@str$ = getarg(0) ) -3; .@is_negative = charat( .@str$, 0 ) == "-"; while ( .@i > .@is_negative ) { .@str$ = insertchar( .@str$, ",", .@i ); .@i -= 3; } return .@str$; }
-
yeah its lower , that's why I use < and not using <=how about you post up your script so let's compare our methods EDITING post : ... using arrays because I know you are the kind of person who loves to complicate the topic, and I can play with you EDIT2: here you go
-
.... are you asking to be spoon feed ? xxxxx, ...... ,{ doevent "asdf::Onasdf"; },{},{} - script asdf -1,{ Onasdf: set .@rand, rand( 20+50+60 ); if ( .@rand < 20 ) { getitem "gold_coin", 2; announce strcharinfo(0) +" has earn gold coin x2", bc_all; } else if ( .@rand < 20+50 ) { getitem "poring_coin", 5; announce strcharinfo(0) +" has earn poring coin x5", bc_all; } else if ( .@rand < 20+50+60 ) { set zeny, zeny + 50000000; announce strcharinfo(0) +" has earn zeny 50,000,000", bc_all; } }
-
- script ldfjhsdlf -1,{ OnPCLoadMapEvent: while ( strcharinfo(3) != .town$[.@i] && .@i < 4 ) .@i++; if ( .@i == 4 || @town_map_cutin_loaded & 1 << .@i ) end; @town_map_cutin_loaded = @town_map_cutin_loaded | 1 << .@i; cutin .pic$[.@i], 4; sleep2 3000; cutin "", 255; end; OnInit: setarray .town$, "prontera", "morocc", "geffen", "payon"; setarray .pic$, "sign_01", "sign_02", "sign_03", "sign_04"; while ( .@i < 4 ) { setmapflag .town$[.@i], mf_loadevent; .@i++; } end; } I believe using OnPCLoadMapEvent is more correct method ... just do something like pc_setreg( sd, add_str("@town_map_cutin_loaded"), pc_readreg( sd, add_str("@town_map_cutin_loaded") ) | 1 << town ); I guess ... ? EDIT for below: XD ... I never make my script works outside rathena xD
-
-
Anyone want to make Roulette script?
AnnieRuru replied to Peopleperson49's question in Script Requests
no ****ing voting !this is not a competition when anyone of us done the script, just make a reply -> I have done this script ... PS : ... I haven't even start =/ though I might finish this one quite fast script request is just a training area or playground for scripters so that we can learn other scripter's technique ... sigh ... -
actually I also agree a quest script, usually is set on 1 character ... not on the account ... you have to ask @Euphy to change it for you x.x
-
change to this ... if ( ( .@ins = callfunc( "instance__", "Devil Square", 30*60, 10*60, "2@g_vs1" ) ) < 0 ) { // 30 mins to clear dungeon, 10 mins timeout if nobody inside mes "failed to create instance"; mes "reason "+ .@ins; close; } http://rathena.org/b...ing#entry156863 change the npc into different map ... should be done by yourself ...
-
post up your full script
-
change this line charcommand "#item "+$rewarditem+" "+@tokena+" "+$@winner$; into this getitem $rewarditem, @tokena, getcharid(3, $@winner$ ); hmm ... or this getitem 7227, callfunc( "F_RandMes", 5, 10,15,20,25,30 ), getcharid(3, $@winner$ );
-
lol, I fixed your script like this prontera,155,176,4 script Converter 100,{ mes "hi there."; mes "select which item do you want to exchange."; .@size = getarraysize( .items ); for ( .@i = 0; .@i < .@size ; set .@i, .@i + 4 ) { if ( countitem ( .items[.@i] ) ) { set .@color$, ( ( countitem ( .items[.@i] ) < .items[.@i + 1] ) ? "^ff0000" : "^00ff00" ); set .@menu$, .@color$ + .@menu$ + getitemname ( .items[.@i] ) +":"; set .@m$[.@j], "1x"+ .@i; set .@j, .@j + 1; } if ( countitem ( .items[.@i + 2] ) ) { set .@color$, ( ( countitem ( .items[.@i + 2] ) < .items[.@i + 3] ) ? "^ff0000" : "^00ff00" ); set .@menu$, .@color$ + .@menu$ + getitemname ( .items[.@i + 2] ) +":"; set .@m$[.@j], "2x"+ .@i; set .@j, .@j + 1; } } next ; set .@s, select ( .@menu$ ) - 1; explode .@array$, .@m$[.@s], "x"; set .@type, atoi ( .@array$[0] ); set .@item, atoi ( .@array$[1] ); if ( countitem ( .items[.@item + (.@type/2)*2] ) < .items[.@item + ((.@type + 1)/3)*3 + .@type%2] ) mes "sorry, you don't have the required."; else { mes "how much?"; input .@n; set .@req, .@n * .items[.@item + ((.@type + 1)/3)*3 + .@type%2]; if ( .@req > countitem ( .items[.@item + (.@type/2)*2] ) ) set .@n, countitem ( .items[.@item + (.@type/2)*2] ) / .items[.@item + ((.@type + 1)/3)*3 + .@type%2]; delitem .items[.@item + (.@type/2)*2], .@req; getitem .items[(.@item + 1)/4 * (.@type % 2)*2], .@n; mes "all done."; } close; OnInit: setarray .items[0], 501, 1, // I purposely change this 502, 1 ; end ; } I input change 1 red potion into 1 orange potion ... I get free red potion ... ???? but changing 1 orange potion into 1 red potion is correct though EDIT: WOW !!! fun this is an algorithm script ! @KeyWorld wanna join in the fun ? xD
-
wow ... at 1st I thought this is simple script ... but suddenly struck me an idea to use this as dynamic shop ... ... let me test some algorithm ... prontera,155,179,5 script kjdhfkjshf 100,{ mes "this is an exchanger shop"; mes "make sure you selected 2 items"; close2; callshop "testshop", 1; end; OnBuyItem: if ( getarraysize( @bought_nameid ) != 2 ) { mes "please select only 2 items"; close; } while ( .@i < 2 ) { while ( @bought_nameid[.@i] != .exchange_list[ .@j[.@i] ] && .@j[.@i] < .shop_size ) .@j[.@i] += 2; if ( .@j[.@i] >= .shop_size ) end; // error .@i++; } mes "selected :-"; mes .exchange_list[ .@j[0] +1 ]+"x "+ getitemname( .exchange_list[ .@j[0] ] ); mes .exchange_list[ .@j[1] +1 ]+"x "+ getitemname( .exchange_list[ .@j[1] ] ); next; .@s = select ( .exchange_list[ .@j[0] +1 ]+"x "+ getitemname( .exchange_list[ .@j[0] ] ) +" -> "+ .exchange_list[ .@j[1] +1 ]+"x "+ getitemname( .exchange_list[ .@j[1] ] ), .exchange_list[ .@j[1] +1 ]+"x "+ getitemname( .exchange_list[ .@j[1] ] ) +" -> "+ .exchange_list[ .@j[0] +1 ]+"x "+ getitemname( .exchange_list[ .@j[0] ] ) ) -1; mes "selected :-"; mes .exchange_list[ .@j[.@s] +1 ]+"x "+ getitemname( .exchange_list[ .@j[.@s] ] ) +" -> "+ .exchange_list[ .@j[!.@s] +1 ]+"x "+ getitemname( .exchange_list[ .@j[!.@s] ] ); mes " "; if ( countitem( .exchange_list[ .@j[.@s] ] ) < .exchange_list[ .@j[.@s] +1 ] ) { mes "not enough "+ getitemname( .exchange_list[ .@j[.@s] ] ); close; } mes "input the amount that you can change"; mes "max = "+( .@max = countitem( .exchange_list[ .@j[.@s] ] ) / .exchange_list[ .@j[.@s] +1 ] ); next; if ( input( .@input, 1, .@max ) ) { mes "invalid amount"; close; } delitem .exchange_list[ .@j[.@s] ], .@input * .exchange_list[ .@j[.@s] +1 ]; getitem .exchange_list[ .@j[!.@s] ], .@input * .exchange_list[ .@j[!.@s] +1 ]; close; OnInit: setarray .exchange_list, 501, 1, // rate of exchange, 1x red potion 502, 1, 503, 5; // rate of exchange, 5x yellow potions npcshopdelitem "testshop", 501; .shop_size = getarraysize( .exchange_list ); for ( .@i = 0; .@i < .shop_size; .@i += 2 ) npcshopadditem "testshop", .exchange_list[.@i], .exchange_list[.@i +1]; npcshopattach "testshop"; end; } - shop testshop -1,501:1000 hehehe ... sry emistry
-
input pop up 1st, then display "test", then progressbar comes in
-
I repeat again ... post that script here ..... the scripts that I made in script request section is very easy to edit for the user <-- you'll find this script is simpler than you thought but if I make it into script release section ... my script will become a configurable script ... its a different style
-
this script seems to have a lot different event in 1 npc ... you have to tell which event that particularly you need us to edit and ... most people usually split out different event in separated file ...
-
try use this one http://rathena.org/board/topic/72376-mvp-summon-script/#entry146696
-
you need to tell the idea behind why you are doing this, I can't figure out the exact method to solve your problem and your questions on post#3 is just totally different question from post#1 ...
-
dunno why but I also feels ... there should be a script command like getquestinfo ... getquestinfo( <quest ID>, <type> ); getquestinfo(60200,1) .. return PLAYTIME getquestinfo(60200,2) .. return HUNTING field no.1, which is target 1 mob ID getquestinfo(60200,3) .. return HUNTING field no.1, which is target 1 mob require getquestinfo(60200,4) .. return HUNTING field no.2, which is target 2 mob ID getquestinfo(60200,5) .. return HUNTING field no.2, which is target 3 mob require ... getquestinfo(60200,8) .. return QUEST NAME if do like this, we only need to change the setting in quest_db.txt and the script part no need to build bunch of arrays ...
-
its UTC http://www.eathena.ws/board/index.php?s=&showtopic=243105&view=findpost&p=1325351 dunno why seems like my topic nobody reads
-
nope this is never going to work prontera,155,179,5 script kjdhfkjshf 100,{ doevent strnpcinfo(0)+"::Onstart"; input .@name$; dispbottom "test"; close; Onstart: progressbar "", 3; end; } this one runs input 1st ... after input finish only runs progressbar prontera,155,179,5 script kjdhfkjshf 100,{ doevent strnpcinfo(0)+"::Onstart"; progressbar "", 3; dispbottom "test"; close; Onstart: input .@name$; end; } this one runs progressbar 1st, after 3 seconds finished then input only pops up input, menu, close2, progressbar.... these sort of script commands can only run 1 at a time and I have never been able to make them run at the same time not sure if source modification able to bypass this limitation ... but I don't find this useful
-
- script sdfdsfsdfsdf -1,{ OnAgitStart: maprespawnguildid "<castle 1>", 0, 3; maprespawnguildid "<castle 2>", 0, 3; maprespawnguildid "<castle 3>", 0, 3; maprespawnguildid "<castle 4>", 0, 3; end; } don't really understand this question
-
lol ... feels like this topic discussion like a script support .... anyways xxxxx, ........, { doevent "asdf::Onasdf"; }, {},{} - script asdf -1,{ Onasdf: set .@itemid, callfunc( "F_RandMes", 5, 501, 502, 503, 504, 505 ); getitem .@itemid, 1; if ( .@itemid == 501 ) announce strcharinfo(0) +" just got "+ getitemname( .@itemid ), 0; end; }