Forum Moderator
  • Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

  • Days Won


Everything posted by Emistry

  1. File Name: Mission Board[b]File Submitter[/b]: [url=http://rathena.org/board/user/241-emistry/]Emistry[/url] [b]File Submitted[/b]: 01 Jan 2014 [b]File Category[/b]: [url=http://rathena.org/board/files/category/142-utilities/]Utilities[/url] [b]Content Author[/b]: Emistry / AnnieRuru original topic : [url="http://www.eathena.ws/board/index.php?showtopic=242306"]http://www.eathena.ws/board/index.php?showtopic=242306[/url] this is actually a quite old topic , anyway i will just borrow the information written by Annieruru .. it's one of my favourite script back in eAthena,[quote] i know that there are serveral server out there who "manage" to make it to save "permanent" quest by using permanent global variable , well ... all i can say is that the method they are currently using are not really a good way ...[/quote][quote] [size=3]ok ... this script allow admins to setup quests on the server[/size] 1 npc allow 40 missions, and allow up to 127 npc's, means total of 5080 quests can be created best use on low rate and medium rate servers server that likes to create lots of quests to keep players busy[/quote] [size=4][background=rgb(255,255,255)]Credit to AnnieRuru and any other contributors from the pass....[/background][/size] [hr] [size=5][b]Installation :[/b][/size] Just a basic simple instruction ...[list] [*]download the NPC script and install into your server [*]download the [url="http://pastebin.com/raw.php?i=misZD8cf"][ SQL Table ][/url] and load into youe mysql or phpmyadmin server. [/list] [size=5][b]Basic Configuration :[/b][/size][code=auto:1021] // gm level to access panel .gm_level = 90; // max no. of required monster .max_required_monster = 10; // max no. of required item .max_required_item = 10; // max no. of required mission ( un-implement yet ) .max_required_mission = 10; // max no. of available mission .max_mission_available = 50; // max value of integer input .max_integer_value = 30000; // max amount of mission per page .max_page_size = 30; // max mission per npc take by character .max_mission_per_char = 4; [/code] [b][size=5]NPC Duplication :[/size][/b] [code=auto:1447] // the number behind the NPC name must be NUMBER with range of ( 1 ~ 500 ) // the number should stay the same for eternity, if you change it frequently, it might affect your missions for each NPC. // ( to conclude, once you assigned the number, dont change it for the sake of your mission board ... ) prontera,151,171,4 duplicate(mission_board) Mission A#1 837 prontera,154,174,4 duplicate(mission_board) Mission B#2 837 prontera,156,176,4 duplicate(mission_board) Mission C#3 837 prontera,159,179,4 duplicate(mission_board) Mission D#4 837[/code] take note the number behind the NPC is the index of each NPC .... [color=#ff0000][b]once you assigned an index to a NPC, try not to change it in the future[/b][/color], since missions are assigned based on these index number. [size=5][b]What's New in this Version :[/b][/size] each npc probably can have more than 40 missions. each NPC can have their own quests....or a quest that can share among any other NPCs. 1 NPC can have many individual quests. All / Certain NPCs share the same quests. Only certains classes[i] ( include inherited classes ) [/i]may do the quests. However, base classes are alway able to pick the quests. All the Quests will not be removed upon server restart / @reloadscript, which mean you dont have to re-setup all the quests everytime server restarted / reloaded. ** You may edit the required monsters for each mission, but will end up remove all the killing progress of each players who have taken the missions. [size=5][b]Future TODO List :[/b][/size] support party-assist , guild-assist to completing the quests . pre-requisite mission or so-called chain missions. custom variable as rewards. etc [i]( you may tell me if you have any ideas to improve this script )[/i] [size=5][b]Screenshots :[/b][/size] http://imgur.com/9zPLLab,LeCTXWI,iAMODwY,uM0G9b7,PtfRQU9,CzIDSja,LWeafsQ,WLcDMaW,Dx3y3fw,7UukU0t#0 [hr] just a scratching script and havent spent really much time to debug every single lines ...overall it still work fine ...[i]( still on holiday mood + school started again )[/i] the structure of the scripts might look messy and hard to read .. >.< ... didnt really plan well on the structure of the scripts.[i] ( Emistry suck on planning )[/i] There are some bugs i guess ... but i not really so sure is it come from this script or will it really bring big effect to the servers.. when playing with this script .... i think my char will failed to connect to server everytime I relog , does any of you facing this problem when using this script ?? AnnieRuru and other member who good at scripts, time for lecturers ... Click here to download this file
  2. Emistry

    Missing Sprites?

    missing the small map display file for the top right corner?
  3. Emistry

    NPC play video

    like this? convert your short videos into thousands of cutin file using softwares and use npc to show it in game.
  4. Emistry

    Disguise event script help

    OnClock0240: OnClock0840: OnClock1440: OnClock2040: setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Disguise Event : Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; disablenpc "Disguise Event"; announce "The Disguise Event has ended",bc_all | bc_blue; end; you could add this part into your script.
  5. Emistry

    any ideas to avoid loging out in a match

    behind the scene .... in case anyone share the same views and would like to join for discussion lol @AnnieRuru
  6. Emistry

    Need help with scripting consumable

    501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,63,2,,,15:50,,,{ itemheal rand(45,65),0; },{},{} // Structure of Database: // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK[:MATK],DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } use the field eLV[:maxLevel]
  7. Emistry

    Utility: Campfire

    View File Campfire Original Topic: http://herc.ws/board/topic/16037-campfire-to-regenerate-hpsp/ Herc Script Link : https://pastebin.com/fksPdpFQ The Idea: Camp Fire to restore / regenerate HP & SP. When you sit by the Camp fire, you start feeling the warmth and the comfort, so your HP & SP begin to regenerate. How to use : 1. add the source mode provided in the script. (or here) 2. make a usable item_db with these bonus script. callfunc("func_CreateCampFire", <range>, <duration>, <heal_rate>); // create campfire callfunc("func_UpdateCampFire", <range>, <duration>, <heal_rate>); // update the campfire duration/heal rate. Preview: Credits : @Dastgir & @Radian for the src mod and @Habilis for the idea Submitter Emistry Submitted 11/01/2018 Category Utilities Video https://www.youtube.com/watch?v=mFPFflLGscE Content Author Emistry  
  8. if you wanted to remove/disable this HP view feature you need to configure it in the conf/groups.conf permissions: { ... ... view_hpmeter: false }
  9. Emistry

    Request script Online Cash Point

    - script OnlineReward#1 -1,{ //--Start of the Script OnPCLoginEvent: attachnpctimer ""+strcharinfo(0)+""; initnpctimer; end; OnTimer30000: //Check if Vending (normal or @at) if(checkvending() >= 1) { dispbottom "The rewards has stopped because you were vending . Please relog if you wish to start again."; stopnpctimer; end; } OnTimer60000: set @minute, @minute + 1; //Check for 1 Minute if(@minute == 1 && (strcharinfo(3) == "prontera" || strcharinfo(3) == "payon")){ set @minute,0; set #CASHPOINTS,#CASHPOINTS+100; dispbottom "You received 100 Cash Points. Current Cash Points: " + #CASHPOINTS; } stopnpctimer; initnpctimer; end; } if(@minute == 1 && (strcharinfo(3) == "prontera" || strcharinfo(3) == "payon")){
  10. Emistry

    Updating github rAthena manually to my vps

    you can check on the message by clicking on the tick or cross symbols. It refer to the job for both appveyor and travis you can click on the details to further read the details for each job.
  11. Emistry

    HP cap on updated rathena

    does the value look like exceed 20m to you? conf/battle/player.conf#L80-L86 // Maximum HPs depending on base level. Default values are: // Lv 99: 330000 // Lv150: 660000 // Lv175: 1100000 max_hp_lv99: 330000 max_hp_lv150: 660000 max_hp: 1100000 its 1.1m and its way better you take a look at the answer/hints that provided by other member rather than just keep asking for spoonfeeding. lol beside, max hp/sp cap was never 20m, unless you meant the value for 2.1b
  12. Emistry

    Refiner & Derefiner

    prontera,111,64,5 script +10 Refiner NPC 813,{ for( set [email protected],EQI_SHOES; [email protected] <= EQI_HAND_R; set [email protected],[email protected] + 1 ) if( getequipisequiped( [email protected] ) ){ if( getequipisenableref( [email protected] ) && getequiprefinerycnt( [email protected] ) <= .max_refine ){ set [email protected]_count,[email protected]_count + 1; set [email protected]$,[email protected]$ + " +"+getequiprefinerycnt( [email protected] )+" "+getequipname( [email protected] ) +":"; }else{ set [email protected]$,[email protected]$ +":"; } }else{ set [email protected]$,[email protected]$ +":"; } if( [email protected]_count ){ mes "You dont have any equipment available for refine."; close; } set [email protected],select( [email protected]$ ) + 1; set [email protected]_equip,getequipid( [email protected] ); do{ if( getequipid( [email protected] ) != [email protected]_equip ){ mes "Dont change to other equipments."; close; } set [email protected]_level,getequipweaponlv( [email protected] ); if( [email protected]_level == 1 ) set [email protected]_refine,6; else if( [email protected]_level == 2 ) set [email protected]_refine,7; else if( [email protected]_level == 3 ) set [email protected]_refine,8; else if( [email protected]_level == 4 ) set [email protected]_refine,9; else if( [email protected]_level == 5 ) set [email protected]_refine,3; else if( [email protected]_level == 6 ) set [email protected]_refine,2; else set [email protected]_refine,4; set [email protected]_count,getequiprefinerycnt( [email protected] ); if( .zeny_cost ){ mes "Every Refine : ^0055FF"+callfunc( "ValueConvert",.zeny_cost )+" Zeny^000000"; mes "De-refine : ^FF0000Free^000000"; mes " "; mes "If current refine below +^FF0000"[email protected]_refine+" : ^FF0000Free^000000"; next; } set [email protected],select(( [email protected]_count >= .max_refine )?"":"Refine to ^0055FF+"+( [email protected]_count + 1 )+" "+getequipname( [email protected] )+"^000000", ( [email protected]_count < 1 )?"":"De-refine -1" ); // temporary disabled de-refine if( Zeny < .zeny_cost && [email protected] == 1 ){ message strcharinfo(0),"Dont have enough zeny."; break; } if( [email protected]_count < 1 && [email protected] == 2 ){ mes "You cant de-refine this anymore."; break; }else if( [email protected]_count >= .max_refine && [email protected] == 1 ){ mes "You cant refine this anymore."; }else{ if( [email protected] == 1 && [email protected]_count >= [email protected]_refine ) set Zeny,Zeny - .zeny_cost; switch( [email protected] ){ Case 1: successrefitem [email protected]; break; Case 2: downrefitem [email protected]; break; default: break; } } if( getequiprefinerycnt( [email protected] ) >= .max_refine ){ mes "Max Refine Reach..."; break; } }while( 1 ); close; OnInit: OnWhisperGlobal: set .zeny_cost,0; set .max_refine,10; waitingroom " Refiner / DeRefiner",0; end; }
  13. View File Healer - Selective Buff A healer that allow player to receive the buffs they want. Player could decide the combination of buff they want. * Notes: For demo purpose, I only write a simple script to demo the rough idea, imagine the buff system you could do with your own creative imagination. Feel free to share with us if you have any nice idea. Preview: Submitter Emistry Submitted 01/06/2019 Category Utilities Video https://youtu.be/2Mfq13pAJdc Content Author Emistry  
  14. Emistry

    Add check for bounded items

    you could try using the getinventorylist prontera,155,181,5 script Sample 4_F_KAFRA1,{ getinventorylist(); for ([email protected] = 0; [email protected] < @inventorylist_count; [email protected]++) { if (@inventorylist_equip[[email protected]] > 0) [email protected]$ = [email protected]$ + "[" + getitemname(@inventorylist_id[[email protected]])+"]"; [email protected]$ = [email protected]$ + ":"; } [email protected] = select([email protected]$) - 1; if (@inventorylist_bound[[email protected]]) { mes "this is bounded item."; } else if ([email protected]_card1[[email protected]]) { mes "It doesn't have card compounded in it."; } else { // uncard... } close; }
  15. Emistry

    Healer - Selective Buff

    Version 1.0.0


    A healer that allow player to receive the buffs they want. Player could decide the combination of buff they want. * Notes: For demo purpose, I only write a simple script to demo the rough idea, imagine the buff system you could do with your own creative imagination. Feel free to share with us if you have any nice idea. Preview:


  16. use unitkill() instead. percentheal aren't a good example although it do the same trick. { skilleffect "AC_CONCENTRATION",0; if (rand(100) < 50) unitkill getcharid(3); },{},{}
  17. Emistry

    GDB on PuTTY terminal

  18. Emistry

    Byorgue Don't spawn summon

    delay too long? 60,000 seconds?
  19. Emistry

    error vendingHelp

    disable this settings to enable vending near npc conf/battle/player.conf#L174-L176
  20. i think this should do the trick. itemID, ..........., { progressbar "0xFFFFFF", 5; unitskilluseid getcharid(3), "NPC_SELFDESTRUCTION", 1; },{ },{ }
  21. Emistry

    Guild NPC request

    you can try this, i think it should do the trick. prontera,155,181,5 script Sample 4_F_KAFRA1,{ OnRetry: [email protected]_id = getcharid(2); query_sql("SELECT `guild_lv` FROM `guild` WHERE `guild_id` = "[email protected]_id, [email protected]_lv); if ([email protected]_id || [email protected]_lv) { mes "Guild not found, or kindly retry."; if ([email protected]_id) if (select("Retry", "Cancel") == 1) { requestguildinfo([email protected]_id, strnpcinfo(3)+"::OnRetry"); } close; } else if (getguildmasterid([email protected]_id) != getcharid(0)) { mes "You're not guild master."; close; } else if ([email protected]_lv >= 50) { mes "Your guild already reached max level."; close; } // increase guild exp if ([email protected]_lv <= 1) guildgetexp(100000); if ([email protected]_lv <= 2) guildgetexp(400000); if ([email protected]_lv <= 3) guildgetexp(900000); if ([email protected]_lv <= 4) guildgetexp(1600000); if ([email protected]_lv <= 5) guildgetexp(2500000); if ([email protected]_lv <= 6) guildgetexp(3600000); if ([email protected]_lv <= 7) guildgetexp(4900000); if ([email protected]_lv <= 8) guildgetexp(6400000); if ([email protected]_lv <= 9) guildgetexp(8100000); if ([email protected]_lv <= 10) guildgetexp(10000000); if ([email protected]_lv <= 11) guildgetexp(12100000); if ([email protected]_lv <= 12) guildgetexp(14400000); if ([email protected]_lv <= 13) guildgetexp(16900000); if ([email protected]_lv <= 14) guildgetexp(19600000); if ([email protected]_lv <= 15) guildgetexp(22500000); if ([email protected]_lv <= 16) guildgetexp(25600000); if ([email protected]_lv <= 17) guildgetexp(28900000); if ([email protected]_lv <= 18) guildgetexp(32400000); if ([email protected]_lv <= 19) guildgetexp(36100000); if ([email protected]_lv <= 20) guildgetexp(40000000); if ([email protected]_lv <= 21) guildgetexp(44100000); if ([email protected]_lv <= 22) guildgetexp(48400000); if ([email protected]_lv <= 23) guildgetexp(52900000); if ([email protected]_lv <= 24) guildgetexp(57600000); if ([email protected]_lv <= 25) guildgetexp(62500000); if ([email protected]_lv <= 26) guildgetexp(67600000); if ([email protected]_lv <= 27) guildgetexp(72900000); if ([email protected]_lv <= 28) guildgetexp(78400000); if ([email protected]_lv <= 29) guildgetexp(84100000); if ([email protected]_lv <= 30) guildgetexp(90000000); if ([email protected]_lv <= 31) guildgetexp(96100000); if ([email protected]_lv <= 32) guildgetexp(102400000); if ([email protected]_lv <= 33) guildgetexp(108900000); if ([email protected]_lv <= 34) guildgetexp(115600000); if ([email protected]_lv <= 35) guildgetexp(122500000); if ([email protected]_lv <= 36) guildgetexp(129600000); if ([email protected]_lv <= 37) guildgetexp(136900000); if ([email protected]_lv <= 38) guildgetexp(144400000); if ([email protected]_lv <= 39) guildgetexp(152100000); if ([email protected]_lv <= 40) guildgetexp(160000000); if ([email protected]_lv <= 41) guildgetexp(168100000); if ([email protected]_lv <= 42) guildgetexp(176400000); if ([email protected]_lv <= 43) guildgetexp(184900000); if ([email protected]_lv <= 44) guildgetexp(193600000); if ([email protected]_lv <= 45) guildgetexp(202500000); if ([email protected]_lv <= 46) guildgetexp(211600000); if ([email protected]_lv <= 47) guildgetexp(220900000); if ([email protected]_lv <= 48) guildgetexp(230400000); if ([email protected]_lv <= 49) guildgetexp(240100000); if ([email protected]_lv < 50) guildgetexp(250000000); // guild skills. guildskill(10000,1); guildskill(10001,1); guildskill(10002,1); guildskill(10003,3); guildskill(10004,10); guildskill(10005,1); guildskill(10006,5); guildskill(10007,5); guildskill(10008,5); guildskill(10009,5); guildskill(10010,1); guildskill(10011,3); guildskill(10012,1); guildskill(10013,1); guildskill(10014,1); guildskill(10016,5); mes "Done"; close; } it would be more accurate if there was a script command like *getguildinfo that retrieve the guild information.
  22. Emistry

    warp custom with item

    prontera,155,181,5 script Sample 4_F_KAFRA1,{ mes "Warp to "+.map$+" ?"; if (.item_id_size) { for ([email protected] = 0; [email protected] < .item_id_size; [email protected]++) { mes "> "+.item_qty[[email protected]]+"x "+getitemname(.item_id[[email protected]]); if (countitem(.item_id[[email protected]]) < .item_qty[[email protected]]) [email protected]++; } } if (select("Warp", "Cancel") == 1) { if ([email protected]) { mes "You didnt have enough items."; } else { if (.item_id_size) for ([email protected] = 0; [email protected] < .item_id_size; [email protected]++) delitem .item_id[[email protected]], .item_qty[[email protected]]; warp .map$, 0, 0; } } close; OnInit: .map$ = "prontera"; setarray .item_id, 501, 502, 503; setarray .item_qty, 100, 200, 300; .item_id_size = getarraysize(.item_id); end; }
  23. View File Usable Refinery Ores Description Players are able to click on the Ores items to refine the selected equipment. They can refine their Equipment at anywhere anytime they want. Based on requirement of Weapon Level and Type, different ores might be needed as well as Zeny. Preview Submitter Emistry Submitted 01/18/16 Category Utilities Content Author  
  24. Emistry

    bMaxHPrate x getrefine

    // +10 HP for every refines. bonus bMaxHP, (getrefine() * 10); // +10 HP for every 2 refines. bonus bMaxHP, ((getrefine() / 2) * 10); // +10 HP for every 3 refines. bonus bMaxHP, ((getrefine() / 3) * 10); // +10 HP for every 4 refines. bonus bMaxHP, ((getrefine() / 4) * 10); // +10 HP for every 5 refines. bonus bMaxHP, ((getrefine() / 5) * 10);
  25. Emistry

    bug damage dragon breat and tiger cannon

    your max stat are too high and lead to max def and hence you getting damage immune =='