AnnieRuru

Members
  • Content Count

    1,995
  • Avg. Content Per Day

    1
  • Joined

  • Last visited

  • Days Won

    39

Everything posted by AnnieRuru

  1. then shouldn't use time limit, just set another npc variable for it prontera,150,185,0 script test override 1_F_MARIA,{ [email protected] = 3; // official script only has 3 digits ... sux ... maximum is 9 btw if ( .start == 0 ) { if ( getgmlevel() != 99 ) { dispbottom "only GM can activate this event."; end; } F_ShuffleNumbers 1, 9, [email protected], [email protected]; for ( [email protected] = 0; [email protected] < [email protected]; [email protected] ) .guess += [email protected][[email protected]] * (10 ** [email protected]); // change 10**[email protected] into pow(10,[email protected]) for rathena dispbottom "input this number -> "+ .guess; .start = 1; end; } else if ( .start == 1 ) { input [email protected]; if ( .start != 1 ) { // <--- THIS is what you need dispbottom "the guessing time has over"; end; } if ( [email protected] != .guess ) { // Let's do some MATH !! if ( [email protected] < 10 ** ([email protected] -1) || [email protected] >= 10 ** [email protected] ) { dispbottom "Number input requirement has not been fulfilled. Please enter a "+ [email protected] +" digit number."; end; } for ( [email protected] = 0; [email protected] < [email protected]; [email protected] ) [email protected][[email protected]] = [email protected] / ( 10**[email protected] ) % 10; for ( [email protected] = 0; [email protected] < [email protected]; [email protected] ) { if ( [email protected][[email protected]] == 0 ) { dispbottom "Violation of number input parameter. Number 0 has been input."; end; } if ( countstr( [email protected] +"", [email protected][[email protected]] +"" ) > 1 ) { dispbottom "Violation of number input parameter. Number has been input more than once."; end; } } for ( [email protected] = 0; [email protected] < [email protected]; [email protected] ) { if ( compare( .guess +"", [email protected][[email protected]] +"" ) ) [email protected]_number; if ( charat( [email protected] +"", [email protected] ) == charat( .guess +"", [email protected] ) ) [email protected]_pos; } dispbottom "Your guess has "+ [email protected]_number +" digit of number that is on the answer, and "+ [email protected]_pos +" digit having same position with the answer."; end; } npctalk strcharinfo(0) +" has guess correctly"; getitem Apple, 1; .start = .guess = 0; end; } }
  2. use gettimetick(2) prontera,150,185,0 script test override 1_F_MARIA,{ [email protected] = 3 + gettimetick(2); // 3 seconds while ([email protected] > gettimetick(2) ) { mes "You are talking to this npc"; next; select("-Yes"); } mes "times up"; close; } if you are doing this like a quiz, where player has to reply within the time limit, then have to use if ... goto on every after select btw, seems like I have lose a fan ... sad ....
  3. http://herc.ws/board/topic/7218-sample-questlog-achievement-script/?do=findComment&comment=91023 yes, for some reason, nemo patcher has Recommended to use /showname when you diff the client you can disable it during client patch
  4. because this is made in hercules forum http://herc.ws/board/topic/463-pk-patch-v11/. http://herc.ws/board/topic/11004-pk-plugin/. https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/%40pk.c <-- latest
  5. rathena is different https://github.com/rathena/rathena/blob/master/src/map/script_constants.hpp#L3516 /* emoticons */ export_constant(ET_SURPRISE); export_constant(ET_QUESTION); export_constant(ET_DELIGHT); export_constant(ET_THROB); export_constant(ET_SWEAT); export_constant(ET_AHA); export_constant(ET_FRET); export_constant(ET_ANGER); export_constant(ET_MONEY); export_constant(ET_THINK); export_constant(ET_SCISSOR); export_constant(ET_ROCK); export_constant(ET_WRAP); export_constant(ET_FLAG); export_constant(ET_BIGTHROB); export_constant(ET_THANKS); export_constant(ET_KEK); export_constant(ET_SORRY); export_constant(ET_SMILE); export_constant(ET_PROFUSELY_SWEAT); export_constant(ET_SCRATCH); export_constant(ET_BEST); export_constant(ET_STARE_ABOUT); export_constant(ET_HUK); export_constant(ET_O); export_constant(ET_X); export_constant(ET_HELP); export_constant(ET_GO); export_constant(ET_CRY); export_constant(ET_KIK); export_constant(ET_CHUP); export_constant(ET_CHUPCHUP); export_constant(ET_HNG); export_constant(ET_OK); export_constant(ET_CHAT_PROHIBIT); export_constant(ET_INDONESIA_FLAG); export_constant(ET_STARE); export_constant(ET_HUNGRY); export_constant(ET_COOL); export_constant(ET_MERONG); export_constant(ET_SHY); export_constant(ET_GOODBOY); export_constant(ET_SPTIME); export_constant(ET_SEXY); export_constant(ET_COMEON); export_constant(ET_SLEEPY); export_constant(ET_CONGRATULATION); export_constant(ET_HPTIME); export_constant(ET_PH_FLAG); export_constant(ET_MY_FLAG); export_constant(ET_SI_FLAG); export_constant(ET_BR_FLAG); export_constant(ET_SPARK); export_constant(ET_CONFUSE); export_constant(ET_OHNO); export_constant(ET_HUM); export_constant(ET_BLABLA); export_constant(ET_OTL); export_constant(ET_DICE1); export_constant(ET_DICE2); export_constant(ET_DICE3); export_constant(ET_DICE4); export_constant(ET_DICE5); export_constant(ET_DICE6); export_constant(ET_INDIA_FLAG); export_constant(ET_LUV); export_constant(ET_FLAG8); export_constant(ET_FLAG9); export_constant(ET_MOBILE); export_constant(ET_MAIL); export_constant(ET_ANTENNA0); export_constant(ET_ANTENNA1); export_constant(ET_ANTENNA2); export_constant(ET_ANTENNA3); export_constant(ET_HUM2); export_constant(ET_ABS); export_constant(ET_OOPS); export_constant(ET_SPIT); export_constant(ET_ENE); export_constant(ET_PANIC); export_constant(ET_WHISP); export_constant(ET_YUT1); export_constant(ET_YUT2); export_constant(ET_YUT3); export_constant(ET_YUT4); export_constant(ET_YUT5); export_constant(ET_YUT6); export_constant(ET_YUT7); hercules start with e_ , rathena start with ET_
  6. this script is just super old ... when this script was freshly made version 1.0, 3rd job wasn't even release yet (year 2009) there is a get-around, by using level range + job restriction, since 3rd job is always level > 99 the sample quest log script was made way back during eathena period, so rathena should support up 0.3 I guess version 1.0 and above is just hercules about the daily quest ... although its custom, but *setquest with adjustable time limit is official I think rathena will get to it eventually after convert quest_db.txt into YAML format...
  7. that's one of my old bad habit, forgot to enclose bitmask check into bracket https://github.com/AnnieRuru/Release/blob/master/scripts/Quest %26 Shops/Mission Board/mission_board_r2.6.txt
  8. Method 1 - just unequip the item prontera,155,185,5 script khfskjdfh 1_F_MARIA,{ for ( [email protected] = 1; [email protected] <= 10; [email protected] ) if ( getequiprefinerycnt([email protected]) >= 7 ) unequip [email protected]; end; } Method 2 - delete the item prontera,158,185,5 script khfskjdfh2 1_F_MARIA,{ getinventorylist; for ( [email protected] = 0; [email protected] < @inventorylist_count; [email protected] ) { if ( (@inventorylist_equip[[email protected]] & 1023) && @inventorylist_refine[[email protected]] >= 7 ) { if ( @inventorylist_option_id1[[email protected]] ) { // that's why rathena random option check so sux, still has to fall back to delitem2 setarray [email protected]_id, @inventorylist_option_id1[[email protected]], @inventorylist_option_id2[[email protected]], @inventorylist_option_id3[[email protected]], @inventorylist_option_id4[[email protected]], @inventorylist_option_id5[[email protected]]; setarray [email protected]_value, @inventorylist_option_value1[[email protected]], @inventorylist_option_value2[[email protected]], @inventorylist_option_value3[[email protected]], @inventorylist_option_value4[[email protected]], @inventorylist_option_value5[[email protected]]; setarray [email protected]_parameter, @inventorylist_option_parameter1[[email protected]], @inventorylist_option_parameter2[[email protected]], @inventorylist_option_parameter3[[email protected]], @inventorylist_option_parameter4[[email protected]], @inventorylist_option_parameter5[[email protected]]; delitem3 @inventorylist_id[[email protected]], @inventorylist_amount[[email protected]], @inventorylist_identify[[email protected]], @inventorylist_refine[[email protected]], @inventorylist_attribute[[email protected]], @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]], [email protected]_id, [email protected]_value, [email protected]_parameter; } else delitem2 @inventorylist_id[[email protected]], @inventorylist_amount[[email protected]], @inventorylist_identify[[email protected]], @inventorylist_refine[[email protected]], @inventorylist_attribute[[email protected]], @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]]; } } end; } btw if you are thinking of denying players to use high refine in a pvp map or event map, after you delete the item player still can equip inside the map you have to create your own mapflag in this case
  9. just took a crack on this http://herc.ws/board/topic/16648-iteml-function/ it seems your script command missing to view the costumes >>> this script is tested on rathena function script F_ITEML { [email protected] = getarg(0); [email protected]$ = callsub( S_Base62, [email protected] ); [email protected] = getiteminfo( [email protected], 2 ); if ( [email protected] == IT_WEAPON || [email protected] == IT_ARMOR ) [email protected]_slot = true; [email protected]_loc$ = callsub( S_Base62, getiteminfo( [email protected], 5 ), 5 ); [email protected]$ = "&"+ callsub( S_Base62, getiteminfo( [email protected], 11 ) ); return "<ITEML>"+ [email protected]_loc$ + [email protected]_slot + [email protected]$ + [email protected]$ +"</ITEML>"; S_Base62: [email protected] = getarg(0); while ( [email protected] ) { [email protected]_value$ = [email protected]$[ [email protected] % 62 ] + [email protected]_value$; [email protected] /= 62; } [email protected]_zeroes = getarg(1, 2); while ( getstrlen([email protected]_value$) < [email protected]_zeroes ) [email protected]_value$ = insertchar( [email protected]_value$, "0", 0 ); return [email protected]_value$; } - script ITEML FAKE_NPC,{ OnInit: setarray [email protected]$,"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; end; } prontera,155,185,3 script itemlinktest#1 1_F_MARIA,{ input [email protected]; npctalk itemlink([email protected]); npctalk F_ITEML([email protected]); debugmes itemlink([email protected]); debugmes F_ITEML([email protected]); end; } result in [Debug]: script debug : 2000000 110000034 : <ITEML>0000011jZ</ITEML> [Debug]: script debug : 2000000 110000034 : <ITEML>0004811jZ&2H</ITEML> the difference is when input an item with costume enable yours to the left, mine to the right 48 is convert as 256, which is EQP_HEAD_TOP 2H is 167, which is the ViewID
  10. *itemlink(<item_id>{,<refine>,<card0>,<card1>,<card2>,<card3>}); compare with getitem2 *getitem2(<item id>, <amount>, <identify>, <refine>, <attribute>, <card1>, <card2>, <card3>, <card4>{, <account ID>}) what happen to the <identify> and <attribute> field ? EDIT: -> Testing ... 1. if the item is not identify ... I can't even get the shift-click to work .. 2. if the item is broken, shift-click it will display non-broken item .... hmm .... I think these guys have thought it out ... nvm, disregard this post
  11. Ima love this so much gonna take this idea and release it on hercules forum
  12. type "@showexp" will confirm your current exp gain
  13. - script WoE Reward FAKE_NPC,{ OnAgitEnd: callsub S_AgitEnd, 0, 20; OnAgitEnd2: callsub S_AgitEnd, 20, 30; S_AgitEnd: [email protected] = getarg(0); [email protected] = getarg(1); for ( [email protected] = [email protected]; [email protected] < [email protected]; [email protected] ) { [email protected]_id = getcastledata( .castle$[[email protected]], CD_GUILD_ID ); if ( [email protected]_id ) { deletearray [email protected]_id; getguildmember [email protected]_id, 1; getguildmember [email protected]_id, 2; 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]]; if ( inarray( [email protected]_id, get_unique_id() ) == -1 ) { dispbottom "Reward given for conquered "+ getcastlename(.castle$[[email protected]]) +"("+ .castle$[[email protected]] +")"; getitem 31509, 1; getitem 12103, 1; getitem 16770, 1; getitem 6380, 15; getitem 31510, 1; [email protected]_id[ getarraysize([email protected]_id) ] = get_unique_id(); } } } } } end; OnInit: setarray .castle$[0], "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; end; } somehow I was expecting him to post a reply, but he edit the 1st post instead, so I bump
  14. pajodex asked this question over discord, so this was answered there http://herc.ws/board/topic/7014-who-has-annierurus-pvp-ladder-with-announcement-files-and-sql-queries/?do=findComment&comment=42630 well, even if I make an updated version, it will be hercules only, since rathena<->hercules are getting further apart
  15. can't help but give a rep for posting 1 of my old script I've been searching this for years with this script in hand, I think I can make an update soon
  16. got a PM for this something isn't right about this script set [email protected], query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"[email protected]+"' AND "[email protected]$,[email protected],[email protected]); this part should use *getguildmember script command query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"[email protected][[email protected]]+",'** Siege Reward: "+getcastlename(.Castles$[[email protected]])+" **',"+ "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "[email protected]$+".% % % % % [ Your reward is attached. ]',"+ .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); and this part should use *mail script command not to mention this script doesn't support woe:te I'm sorry but this script is too outdated for me to fix, it was working fine during the time of the creation, but now this script considered outdated perhaps, simple script like this is the best https://rathena.org/board/topic/110929-woe-reward-script/?do=findComment&comment=357542 then I could write it off easily
  17. guild_vs2,50,50,5 script #asdf HIDDEN_WARP_NPC,3,3,{ end; OnTouch: getmapxy [email protected]$, [email protected], [email protected], UNITTYPE_PC; dispbottom [email protected] +" "+ [email protected]; if ( [email protected] == 47 ) pushpc DIR_WEST, 1; else if ( [email protected] == 53 ) pushpc DIR_EAST, 1; else if ( [email protected] == 47 ) pushpc DIR_SOUTH, 1; else if ( [email protected] == 53 ) pushpc DIR_NORTH, 1; end; } hercules code, you know how to convert
  18. "@costumeitem" came from this topic the item bonus came from the <Script> field itself ... if you want to add bonuses to the costume item, either make a new shadow item ... or add random option to the costume ...
  19. if(!getgmlevel() || .Options&512){ // 512: Allow GMs to Join PvP .Options = 1|2|4|8|16|32|128|256|1024;//|2048|4096; you probably test this script with a GM account either enable the .Options|512 bits, or remove the .Options&512 checks
  20. to block MVP list, add where ~mode & MD_MVP I have absolutely no idea how to retrieve the list of miniboss in rathena ... enlighten me please, because rathena changed monster mode already
  21. AnnieRuru

    Custom "Woe"

    no, don't trust ratemyserver ... that site based on rathena item database should trust more on iro wiki and divine pride yes, this item gives zeny https://www.divine-pride.net/database/item/12399/kRO
  22. exact same script, this bug doesn't happen on hercules you can report in rathena github https://github.com/rathena/rathena/issues
  23. prontera,147,174,5 script Change Dress 509,{ monster "this", -1,-1, "--ja--", .mobid[ rand(.total_mob) ], 1; setunitdata [email protected], UMOB_MASTERAID, getcharid(3); setunitdata [email protected], UMOB_MODE, MD_CANMOVE | MD_CANATTACK | MD_AGGRESSIVE | MD_ASSIST; end; OnInit: if (checkre(0)) { [email protected]_db$ = "mob_db_re"; [email protected]_db$ = "item_db_re"; } else { [email protected]_db$ = "mob_db"; [email protected]_db$ = "item_db"; } .total_mob = query_sql( "select id from "+ [email protected]_db$ +" where mode & "+( MD_CANMOVE | MD_CANATTACK ), .mobid ); end; }
  24. prontera,147,174,5 script Change Dress 509,{ if ( !(eaclass() & EAJL_THIRD) || BaseJob == Job_SuperNovice ) { mes "I'm sorry, but you do not have 3rd class."; close; } mes "Hi "+strcharinfo(0)+" do you want to change your dress?"; next; if ( select ( "Yes", "No" ) == 2 ) close; if ( Zeny < 100000000 ) { mes "You need 100,000,000 Zeny"; close; } [email protected] = select("Primary Dress", "Second Dress") -1; if ( getlook(LOOK_BODY2) == [email protected] ) { mes "You already wearing that dress"; close; } setlook LOOK_BODY2, [email protected]; Zeny -= 100000000; mes "Done!"; close; } this script was like... just few topics down below ...