Jump to content

AnnieRuru

Members
  • Posts

    2044
  • Joined

  • Last visited

  • Days Won

    51

Everything posted by AnnieRuru

  1. - 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", ....
  2. 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
  3. 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 ...
  4. 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$; }
  5. 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
  6. .... 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; } }
  7. - 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
  8. 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 ...
  9. 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
  10. 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 ...
  11. post up your full script
  12. 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$ );
  13. 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
  14. 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
  15. input pop up 1st, then display "test", then progressbar comes in
  16. 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
  17. 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 ...
  18. try use this one http://rathena.org/board/topic/72376-mvp-summon-script/#entry146696
  19. 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 ...
  20. 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 ...
  21. its UTC http://www.eathena.ws/board/index.php?s=&showtopic=243105&view=findpost&p=1325351 dunno why seems like my topic nobody reads
  22. 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
  23. - 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
  24. 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; }
×
×
  • Create New...