Jump to content

Gelo

Members
  • Posts

    56
  • Joined

  • Last visited

Everything posted by Gelo

  1. Hi, Need help on this script, I am creating a custom refiner script from different scripts. My idea is refine items to players choice. They can change the refine number anytime they want. This is a free refiner. Problem: It is refining well whenever I want to refine but all items in the inventory is also affected. Help! quiz_02,144,367,3 script Refine Smith 63,{ mes "[Smith]"; mes "Hi,I can Refine your"; mes "Equipment to Maximum of +10"; mes "What do you want from me?"; next; switch(select("Refine:Nothing")){ case 1: mes "[Smith]"; mes "Which item you want to refine?"; next; setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower"; setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW; for(set .@i,1; .@i<=10; set .@i,.@i+1) set .@menu$, .@menu$+((getequipisequiped(.@indices[.@i]))?getequipname(.@indices[.@i]):.@position$[.@i]+"- [Empty]")+":"; set .@part, .@indices[ select(.@menu$) ]; if (!getequipisequiped(.@part)) { mes "[Refine Master]"; mes "You have to equip the item you want to refine."; close; } if (!getequipisenableref(.@part)) { emotion e_otl; mes "[Refine Master]"; mes "Oh, I'm sorry."; mes "This item is impossible to refine."; close; } else { mes "Choose your ups"; next; switch (select("+1:+2:+3:+4:+5:+6:+7:+8:+9:+10")){ case 1: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; atcommand "@refine "+ .@part[@menu] +" +1"; next; mes "thanks"; close; case 2: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; atcommand "@refine "+ .@part[@menu] +" +2"; next; mes "thanks"; close; case 31: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +3"; next; mes "thanks"; close; case 4: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +4"; next; mes "thanks"; close; case 5: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +5"; next; mes "thanks"; close; case 6: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +6"; next; mes "thanks"; close; case 7: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +7"; next; mes "thanks"; close; case 8: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +8"; next; mes "thanks"; close; case 9: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +9"; next; mes "thanks"; close; case 10: mes "ok"; atcommand "@refine "+ .@part[@menu] +" -10"; next; atcommand "@refine "+ .@part[@menu] +" +10"; next; mes "thanks"; close; } } case 2: mes "ok"; close; end; } }
  2. Wow thanks for the on client link, that will be useful! Also the ads on patcher is great and that's also on my plan.
  3. Hi there!, Is it possible to put google ads on top or bottom of the ragnarok client? Or any possible way to put google ads on RO? I know this may be a bit complicated but if there are any existing idea or project about this please share Because I want to create a 100% donation-free server and earn a little on google ads. thank you
  4. need help because there is no description in some items for example my HD Elunium Box (10) and HD Oridecon Box (10) I already check idnum2's and num2's desctable text files. 16396# A box that contains 10 "Purified Eluminium" inside. ^ffffff_^000000 ^000088Once this item is purchased, termination of contract is impossible. Also, this item is not refundable.^000000 ^ffffff_^000000 Weight : ^7777771^000000 # I'm using renewal data folder from alexiandria.
  5. Can someone help me remove this login message? I search google and rathena and cant find one. Im using 2012-04-10 client, please help me, thank you
  6. Hello gelo.. You may try these steps. -Open No-ip Program -> File -> Preferences (And there will be a window that pops out). -Under Network Adapter -> Change "Windows Default" and Click your router's name. (Ex: D-Link etc-etc) -Now after changing your network adapter, Click "Detect my IP using remote methods". -Now, after that Close the window, And Click "Refresh Now" button. Note: Your IP must be dynamic. How to verify it? Then here are the other steps. -Login to your Router, and look at your WAN ip. Now Compare your Router's WAN IP to your NO-IP's IP client, If those IP are the same then congrats! If not then let me know, there's still another method to make your friend connect to your server EDIT: I put some screenies on comparing IPs from the Router and NO-IP client. (These steps are based on my experience) Thanks for helping veiler, I already try it but still having the same problem.
  7. It also redirects to my modem configuration. huhu bump
  8. i already did that, i use the no-ip.org and it cannot connect at all. I also change the char_ip(map_athena.conf) and login_ip(char_athena.conf) to my LAN IP(192.168.1.34). I also change the map_ip(map_athena.conf) and char_ip(char_athena.conf) to my WAN ip or the no-ip.org.
  9. I try to log-in on my own but the login-server do not detect it. I also diffed the client to allow DNS. this is my server map_athena.conf: //-------------------------------------------------------------- //rAthena Map-Server Configuration File //-------------------------------------------------------------- // Note: "Comments" are all text on the right side of a double slash "//" // Whatever text is commented will not be parsed by the servers, and serves // only as information/reference. //-------------------------------------------------------------- // Configuration Info //-------------------------------------------------------------- // Interserver communication passwords, set in account.txt (or equiv.) userid: s1 passwd: p1 // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: 127.0.0.1 // The map server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Character Server Port char_port: 6121 // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: (hidden).no-ip.org // Map Server Port map_port: 5121 //Time-stamp format which will be printed before all messages. //Can at most be 20 characters long. //Common formats: // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format) // %H:%M:%S (hour:minute:second, 24 hour format) // %d/%b/%Y (day/Month/year) //For full format information, consult the strftime() manual. //timestamp_format: [%d/%b %H:%M] //If redirected output contains escape sequences (color codes) stdout_with_ansisequence: no //Makes server log selected message types to a file in the /log/ folder //1: Log Warning Messages //2: Log Error and SQL Error messages. //4: Log Debug Messages //Example: "console_msg_log: 7" logs all 3 kinds //Messages logged by this overrides console_silent setting console_msg_log: 0 //Makes server output more silent by omitting certain types of messages: //1: Hide Information messages //2: Hide Status messages //4: Hide Notice Messages //8: Hide Warning Messages //16: Hide Error and SQL Error messages. //32: Hide Debug Messages //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) console_silent: 0 //Where should all database data be read from? db_path: db // Enable the @guildspy and @partyspy at commands? // Note that enabling them decreases packet sending performance. enable_spy: no // Read map data from GATs and RSWs in GRF files or a data directory // as referenced by grf-files.txt rather than from the mapcache? use_grf: no // Console Commands // Allow for console commands to be used on/off // This prevents usage of >& log.file console: off // Database autosave time // All characters are saved on this time in seconds (example: // autosave of 60 secs with 60 characters online -> one char is saved every // second) autosave_time: 300 // Min database save intervals (in ms) // Prevent saving characters faster than at this rate (prevents char-server // save-load getting too high as character-count increases) minsave_time: 100 // Apart from the autosave_time, players will also get saved when involved // in the following (add as needed): // 1: after every successful trade // 2: after every vending transaction // 4: after closing storage/guild storage. // 8: After hatching/returning to egg a pet. // 16: After successfully sending a mail with attachment // 32: After successfully submitting an item for auction // 64: After successfully get/delete/complete a quest // NOTE: These settings decrease the chance of dupes/lost items when there's a // server crash at the expense of increasing the map/char server lag. If your // server rarely crashes, but experiences interserver lag, you may want to set // these off. save_settings: 127 // Message of the day file, when a character logs on, this message is displayed. motd_txt: conf/motd.txt // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands. help_txt: conf/help.txt help2_txt: conf/help2.txt charhelp_txt: conf/charhelp.txt // Maps: import: conf/maps_athena.conf import: conf/import/map_conf.txt Char_athena.conf // Athena Character configuration file. // Note: "Comments" are all text on the right side of a double slash "//" // Whatever text is commented will not be parsed by the servers, and serves // only as information/reference. // Server Communication username and password. userid: s1 passwd: p1 // Server name, use alternative character such as ASCII 160 for spaces. // NOTE: Do not use spaces or any of these characters which are not allowed in // Windows filenames \/:*?"<>| // ... or else guild emblems won't work client-side! server_name: rAthena // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters) wisp_server_name: Server // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: 127.0.0.1 // The character server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Login Server Port login_port: 6900 // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: (hidden).no-ip.org // Character Server Port char_port: 6121 //Time-stamp format which will be printed before all messages. //Can at most be 20 characters long. //Common formats: // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format) // %H:%M:%S (hour:minute:second, 24 hour format) // %d/%b/%Y (day/Month/year) //For full format information, consult the strftime() manual. //timestamp_format: [%d/%b %H:%M] //If redirected output contains escape sequences (color codes) stdout_with_ansisequence: no //Makes server output more silent by ommitting certain types of messages: //1: Hide Information messages //2: Hide Status messages //4: Hide Notice Messages //8: Hide Warning Messages //16: Hide Error and SQL Error messages. //32: Hide Debug Messages //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) console_silent: 0 // Console Commands // Allow for console commands to be used on/off // This prevents usage of >& log.file console: off // Type of server. // No functional side effects at the moment. // Displayed next to the server name in the client. // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=P2P char_maintenance: 0 // Enable or disable creation of new characters. // Now it is actually supported [Kevin] char_new: 1 // Display (New) in the server list. char_new_display: 0 // Maximum users able to connect to the server. // Set to 0 to disable users to log-in. (-1 means unlimited) max_connect_user: -1 // Group ID that is allowed to bypass the server limit of users. // Default: -1 = nobody (there are no groups with ID < 0) // See: conf/groups.conf gm_allow_group: 99 // How often should the server save all files? (In seconds) // Note: Applies to all data files on TXT servers. // On SQL servers, it applies to guilds (character save interval is defined on the map config) autosave_time: 60 // Display information on the console whenever characters/guilds/parties/pets are loaded/saved? save_log: yes // Starting point for new characters // Format: <map_name>,<x>,<y> start_point: new_1-1,53,111 // Starting items for new characters // Max number of items is MAX_STARTITEM in char.c (default 32) // Format: <id>,<amount>,<position>:<id>,<amount>,<position>:... // To auto-equip an item, include the position where it will be equipped; otherwise, use zero. start_items: 1201,1,2:2301,1,16 // Starting zeny for new characters start_zeny: 0 // Size for the fame-lists fame_list_alchemist: 10 fame_list_blacksmith: 10 fame_list_taekwon: 10 // Guild earned exp modifier. // Adjusts taxed exp before adding it to the guild's exp. For example, if set // to 200, the guild receives double the player's taxed exp. guild_exp_rate: 100 // Name used for unknown characters unknown_char_name: Unknown // To log the character server? log_char: 1 // Allow or not identical name for characters but with a different case (upper/lower): // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed name_ignoring_case: no // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are: // NOTE: Applies to character, party and guild names. // 0: no restriction (default) // 1: only letters/symbols in 'char_name_letters' option. // 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles. char_name_option: 1 // Set the letters/symbols that you want use with the 'char_name_option' option. // Note: Don't add spaces unless you mean to add 'space' to the list. char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@$&*()-_+=[]{}\/ // How many Characters are allowed per Account ? (0 = disabled) // You can not exceed the limit of MAX_CHARS slots, defined in mmo.h // Doing that, chars_per_account will be default to MAX_CHARS. chars_per_account: 0 // Restrict character deletion by BaseLevel // 0: no restriction (players can delete characters of any level) // -X: you can't delete chars with BaseLevel <= X // Y: you can't delete chars with BaseLevel >= Y // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel) char_del_level: 0 // Amount of time in seconds by which the character deletion is delayed. // Default: 86400 (24 hours) // NOTE: Requires client 2010-08-03aragexeRE or newer. char_del_delay: 86400 // What folder the DB files are in (item_db.txt, etc.) db_path: db //=================================== // Pincode system //=================================== // NOTE: Requires client 2011-03-09aragexeRE or newer. // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse. // Default: yes pincode_enabled: no // How often does a user have to change his pincode? // 0: never (default) // X: every X days pincode_changetime: 0 // How often can a user enter the wrong pincode? // Default: 3 (client maximum) pincode_maxtry: 3 // Are users forced to use a pincode when the system is enabled? // Default: yes pincode_force: yes //=================================== // Addon system //=================================== // Character moving // NOTE: Requires client 2011-09-28aragexeRE or newer. // Allows users to move their characters between slots. // Default: yes char_move_enabled: yes // Allow users to move a character to a used slot? // If enabled the characters are exchanged. // Default: yes char_movetoused: yes // Allow users to move characters as often as they like? char_moves_unlimited: no import: conf/import/char_conf.txt my clientinfo.xml <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <servicetype>korea</servicetype> <servertype>primary</servertype> <connection> <display>Ragnarok</display> <balloon>the balloon</balloon> <desc>description</desc> <address>(hidden).no-ip.org</address> <port>6900</port> <version>36</version> <langtype>0</langtype> <registrationweb>flux.domain.com</registrationweb> <aid> <admin></admin> </aid> <loading> <image>loadingscreen01.jpg</image> </loading> </connection> </clientinfo> I think what affects my server is that my WAN or Public IP redirects to the router login configuration. I've already search google about this but I can't fix it.
  10. So my friend wants to connect to me for testing purposes. I already did port forwarding and the ports are already open. one problem, I already set-up no-ip.org and I already changed my clientinfo.xml . the problem is the server is not connecting and when I open my no-ip.com address, it shows my router set-up Can anyone help me? Please? Thank you Sorry for bad english bummpp
  11. I am using 2012-04-10aRagexeRE client. I already use that patch but doesn't fix the problem
  12. How can I fix this incorrect language in the cash shop NPC's. Check the screenshot. Thanks rAthena. Anyways, I am using 2012-04-10 client.
  13. I get this error after i update my SVN: make[1]: Entering directory `/root/Desktop/trunk/3rdparty/mt19937ar' CC mt19937ar.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/mt19937ar' make[1]: Entering directory `/root/Desktop/trunk/3rdparty/libconfig' CC libconfig.c CC grammar.c CC scanctx.c CC scanner.c CC strbuf.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/libconfig' make[1]: Entering directory `/root/Desktop/trunk/src/common' MKDIR obj_all CC core.c CC socket.c CC timer.c CC db.c CC nullpo.c CC malloc.c CC showmsg.c CC strlib.c CC utils.c CC grfio.c CC mapindex.c CC ers.c CC md5calc.c CC core.c CC socket.c CC malloc.c CC random.c CC des.c CC conf.c CC thread.c CC mutex.c CC raconf.c CC mempool.c CC msg_conf.c msg_conf.c:72:2: warning: no newline at end of file CC cli.c cli.c:137:2: warning: no newline at end of file AR obj_all/common.a MKDIR obj_sql CC sql.c AR obj_sql/common_sql.a make[1]: Leaving directory `/root/Desktop/trunk/src/common' make[1]: Entering directory `/root/Desktop/trunk/src/login' MKDIR obj_sql CC login.c CC account_sql.c CC ipban_sql.c CC loginlog_sql.c LD login-server_sql make[1]: Leaving directory `/root/Desktop/trunk/src/login' make[1]: Entering directory `/root/Desktop/trunk/src/char' MKDIR obj_sql CC char.c char.c:5106:2: warning: no newline at end of file CC inter.c CC int_party.c CC int_guild.c CC int_storage.c CC int_pet.c CC int_homun.c CC int_mail.c CC int_auction.c CC int_quest.c CC int_mercenary.c CC int_elemental.c LD char-server_sql make[1]: Leaving directory `/root/Desktop/trunk/src/char' make[1]: Entering directory `/root/Desktop/trunk/src/map' MKDIR obj_sql CC map.c CC chrif.c make[1]: Warning: File `clif.c' has modification time 77 s in the future CC clif.c clif.c: In function ‘clif_spawn’: clif.c:1364: error: ‘OPTION_MOUNTING’ undeclared (first use in this function) clif.c:1364: error: (Each undeclared identifier is reported only once clif.c:1364: error: for each function it appears in.) clif.c: In function ‘clif_changelook’: clif.c:3057: error: ‘LOOK_FLOOR’ undeclared (first use in this function) clif.c: In function ‘clif_getareachar_pc’: clif.c:4048: error: ‘OPTION_MOUNTING’ undeclared (first use in this function) make[1]: *** [obj_sql/clif.o] Error 1 make[1]: Leaving directory `/root/Desktop/trunk/src/map' make: *** [map_sql] Error 2 make[1]: Entering directory `/root/Desktop/trunk/3rdparty/mt19937ar' CC mt19937ar.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/mt19937ar' make[1]: Entering directory `/root/Desktop/trunk/3rdparty/libconfig' CC libconfig.c CC grammar.c CC scanctx.c CC scanner.c CC strbuf.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/libconfig' make[1]: Entering directory `/root/Desktop/trunk/src/common' MKDIR obj_all CC core.c CC socket.c CC timer.c CC db.c CC nullpo.c CC malloc.c CC showmsg.c CC strlib.c CC utils.c CC grfio.c CC mapindex.c CC ers.c CC md5calc.c CC core.c CC socket.c CC malloc.c CC random.c CC des.c CC conf.c CC thread.c CC mutex.c CC raconf.c CC mempool.c CC msg_conf.c msg_conf.c:72:2: warning: no newline at end of file CC cli.c cli.c:137:2: warning: no newline at end of file AR obj_all/common.a MKDIR obj_sql CC sql.c AR obj_sql/common_sql.a make[1]: Leaving directory `/root/Desktop/trunk/src/common' make[1]: Entering directory `/root/Desktop/trunk/src/login' MKDIR obj_sql CC login.c CC account_sql.c CC ipban_sql.c CC loginlog_sql.c LD login-server_sql make[1]: Leaving directory `/root/Desktop/trunk/src/login' make[1]: Entering directory `/root/Desktop/trunk/src/char' MKDIR obj_sql CC char.c char.c:5106:2: warning: no newline at end of file CC inter.c CC int_party.c CC int_guild.c CC int_storage.c CC int_pet.c CC int_homun.c CC int_mail.c CC int_auction.c CC int_quest.c CC int_mercenary.c CC int_elemental.c LD char-server_sql make[1]: Leaving directory `/root/Desktop/trunk/src/char' make[1]: Entering directory `/root/Desktop/trunk/src/map' MKDIR obj_sql CC map.c CC chrif.c CC clif.c clif.c: In function ‘clif_spawn’: clif.c:1364: error: ‘OPTION_MOUNTING’ undeclared (first use in this function) clif.c:1364: error: (Each undeclared identifier is reported only once clif.c:1364: error: for each function it appears in.) clif.c: In function ‘clif_changelook’: clif.c:3057: error: ‘LOOK_FLOOR’ undeclared (first use in this function) clif.c: In function ‘clif_getareachar_pc’: clif.c:4048: error: ‘OPTION_MOUNTING’ undeclared (first use in this function) make[1]: *** [obj_sql/clif.o] Error 1 make[1]: Leaving directory `/root/Desktop/trunk/src/map' make: *** [map_sql] Error 2 Hope you can help me ASAP! thanks rathena I already tried to update my sql. Delete all tables and re install, also try to update the latest upgrades. please help me. thanks rathena
  14. I have a bug on guarantee refine ticket. If I don't have anything to refine and I click the ticket. my character will get stuck. uhh please help.
  15. I tried to edit the Thana tower quest and this works good, but I need some tip to make it a better and understandable. thanks rathena! prt_in,122,114,4 script Execute Quest 72,{ if(test_quest2 == 0){ mes "You want to activate This quest?"; next; set test_quest2,1; mes "Quest initialized"; close;} if(test_quest2 > 1){ mes "Quest is already activated"; close; } } prt_in,125,114,4 script Quest2 72,{ if(test_quest2 == 1) goto done; if(test_quest2 == 2) goto initialize_3rd; mes "[Thalos]"; mes "You must find initialize the 1st NPC first"; close; done: mes "[Thalos]"; mes "Quest to is ready"; mes "I need this items"; mes "Item 1: xxxx"; mes "Item 2: xxxx"; mes "item 3: xxxx"; next; mes "do you have the items now?"; next; if (countitem(918) > 8) goto q2_done; mes "Seems that you need to hunt for those items"; close; q2_done: delitem 918,8; set test_quest2,2; mes "Good, I'll warp you to mr quest3"; next; warp "prt_in", 127, 118; close; initialize_3rd: mes "you need to talk to the final NPC to finish quest"; close; } prt_in,127,114,4 script Quest 3 72,{ if(test_quest2 == 2) goto q3_done; mes "You didn't initialize quest"; close; q3_done: mes "[Mediane]"; mes "Okay, You I need this items to create you 1 test"; mes "1000 x"; mes "200 x"; mes "150 x"; mes "120 x"; next; if (countitem(7539) < 1000) goto no_items; mes "Congratulations! You can now recieve your Final quest items!"; set test_quest2,0; delitem 7539,1000; getitem 7179,100; close; no_items: mes "YOu are lacking some items"; close; }
  16. The NPC is like this: NPC 1 Needs this x Number of item1 , x number of item2 and x number of item3. then player will be warped in the map x. In NPC 2, Needed to have this x item1, x item2 to summon the boss monster.. If the player dies, he can come back again without any quest but when he finished the quest(killing the boss) the quest will reset. Thanks..!
  17. Need help with this, when a player select Exchange points to Bronze Coins, it will only accept 1000 Points. if the points is more than 1000 it will message that the user cannot exchange because max points that can be trade is 1000 points. and also, NPC will check the players weight, if more than 50% weight, it will message the character that he/she is overweight. thanks in advance prontera,164,172,2 script Points Room 757,{ waitingroom "Collect Points and Get Bronze Coins, 10 GPoints = 1 BC!",0; if(countitem(20812) < 1){ mes "You are not a VIP Card User, you will get random points from 1 to 5"; next;} else{ mes "You are a VIP Card User!, You can get random points from 5 to 10."; next;} switch( select( "Enter Greedy Points Room", "Exchange Points to "+getitemname(.CoinID), "Check Points", "Infomation", "Exit" ) ){ Case 1: atcommand "@die"; atcommand "@die"; atcommand "@alive"; set .@A,rand(50); set .@B,rand(50); mes "[insert the right answer to enter]"; mes "If A = "+.@A+" B = "+.@B; switch( rand(1) ){ Case 0: set .@Answer,.@A + .@B; mes "How many is A + B ?"; break; //Case 1: set .@Answer,.@A - .@B; mes "How many is A - B ?"; break; //Case 2: set .@Answer,.@A * .@B; mes "How many is A * B ?"; break; //Case 3: set .@Answer,.@A / .@B; mes "How many is A / B ?"; break; } input .@Input; if( .@Input != .@Answer ){ mes "Incorrect Code Please Try Again"; Close; } else if( .@Input == .@Answer ){ warp .Map$,0,0; end; } Case 2: mes "[Points Room]"; mes "You got "+#Points+" Points."; mes "How many Points will be used to change into "+getitemname(.CoinID)+" ?"; mes "^FF0033NOTE: Make sure you are not overweight and the Bronze Coins in your inventory should not exceed to 30,000 pieces^000000"; mes "Each "+getitemname(.CoinID)+" = "+.Rate+" Points."; if( #Points >= .Rate ){ input .@Amount,0,#Points; set .@Calculation,( .@Amount / .Rate ); if( .@Calculation ){ set #Points,#Points - ( .@Calculation * .Rate ); getitem 673,.@Calculation; mes "Gained "+.@Calculation+" x "+getitemname(.CoinID); } } close; Case 3: mes "[Points Room]"; mes "You got "+#Points+" Greedy Points."; close; Case 4: mes "[Points Room]"; mes "***^FF0033ABOUT POINTS ROOM!^000000***"; mes "Points room is a place where you can collect ^33FF33Greedy Points^000000 and exchange it to ^666633Bronze Coins^000000"; next; mes "For Every Greedy Pouring, you gain random points from 1 to 5. if you have a VIP card, you can get random points from 5 to 10"; next; mes "Damage recieve by Greedy Pourings is 1"; next; mes "Skills are disabled inside the Points Room"; next; mes "Points Exchange rate:"; mes "^FF660010 Greedy Points = 1 Bronze Coins^000000"; next; mes "^FF0033TIP!: Use Sniper with falcon and items that increases walking speed for faster points.^000000"; close; end; default: break; } close; OnInit: set .Map$,"jupe_core2"; set .CoinID,673; set .Rate,10; monster .Map$,0,0,1906,100,strnpcinfo(0)+"::OnNPCKillEvent"; end; OnNPCKillEvent: if (strcharinfo(3) != "jupe_core2") end; if (killedrid != 2126) end; if(countitem(20812) < 1){ set #Points,#Points + rand(1,5);} else{ set #Points,#Points + rand(5,10);} monster .Map$,0,0,2126,1,strnpcinfo(0)+"::OnNPCKillEvent"; dispbottom "You Currently Have " +#Points +" Greedy Points"; end; } new_zone03,96,23,2 script Exit 757,{ mes "[Exit Points Room]"; mes "Do you want to leave this room now?"; next; menu "Yes",exit,"No",-; close; exit: warp "prontera",155,197; close; end; }
  18. need help for this script edit, this NPC is for donation giver NPC: -If NPC is clicked by GM, NPC will ask the GM the exact name of the player that will receive the reward. The player will be notified by a dispbottom that he/she has a pending reward until he/she has already claimed it. (Offline or Online player can receive it) -NPC will ask what item # will be given to the player.A msg box will inform the GM what item will be given. -NPC will ask how many # of items will be given to the player. -NPC will display the informations given by admin -NPC will ask if this will be finalized. -if NPC is clicked by player, NPC have msg box asking "Do you want to claim you rewards?" and options "Yes" or "No" -If yes, check the player weight(If(weight<3000)) give the item to the player and announce: "Player has claimed his donation", else, msg box will appear. you are overweight then close. -If option selected = no. NPC will end. The idea is still like the code bellow, with logs, list the unclaimed rewards, delete a reward, delete all unclaimed reward, and manage logs. Thank you everyone //===== eAthena Script ======================================= //= Item Rewards NPC //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.8 //===== Description: ========================================= //= Useful for event rewards, when a player is not necessarily online. //= Logging is available, if needed (holds 128 names). //= Note: Unclaimed rewards are limited to 64 at a time. //============================================================ prontera,138,172,6 script Claim Donation 790,{ waitingroom "Claim your donations here!",0; // --------------------- Config --------------------- // Package format is "ID1,Count1,ID2,Count2,..." // GM Access: Level required to open the GM menu. // GM Delete: Level required to erase entries. // GM Logging: Level required to manage logs. set .GMAccess,99; set .GMDelete,99; set .GMLogging,99; set .PackageCount,6; setarray .Package1[0],7179,50; // -------------------------------------------------- if (getgmlevel() >= .GMAccess) goto GM_Menu; mes "[GM Donation NPC]"; set .@i,0; while (.@i < getarraysize($itemreward$)) { if (strcharinfo(0) == $itemreward$[.@i]) goto GetReward; set .@i, .@i+2; } mes "You have no rewards pending."; close; GetReward: if (((Weight*100)/MaxWeight) > 49) { mes "You are over the weight limit."; close; } if (!checkweight(5055,getarraysize(getd(".Package"+$itemreward$[.@i+1])))) { mes "Clear space in your inventory."; close; } set .@j,0; while (.@j < getarraysize(getd(".Package"+$itemreward$[.@i+1]))) { getitem getd(".Package"+$itemreward$[.@i+1]+"["+.@j+"]"),getd(".Package"+$itemreward$[.@i+1]+"["+(.@j+1)+"]"); set .@j, .@j+2; } specialeffect2 248; announce "Donation:"+ strcharinfo(0)+" has received Donation Package "+$itemreward$[.@i+1]+"!",0; deletearray $itemreward$[.@i],2; mes "Here you go!"; close; OnMinute00: OnMinute30: if (!getarraysize($itemreward$)) end; set .@i,0; while (.@i < getarraysize($itemreward$)) { message $itemreward$[.@i],"[You have a Donation pending. See the GM Donation NPC.]"; sleep 10; set .@i, .@i+2; } end; GM_Menu: mes "[GM Donation NPC]"; mes "What would you like to do?"; next; switch(select(" ~ ^FF55FFPackage information^000000: ~ ^FF55FFList unclaimed rewards^000000: ~ ^00D900Give a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete all unclaimed rewards^000000: ~ "+((getgmlevel()<.GMLogging)?"^777777":"^55AAFF")+"Manage logs^000000: ~ [Close]")) { case 1: mes "[GM Donation NPC]"; set .@j,1; while (getd(".Package"+.@j)) { mes "^660099Package " + .@j + ":^000000"; set .@i,0; while (.@i < getarraysize(getd(".Package"+.@j))) { mes " ~ " + getd(".Package"+.@j+"["+(.@i+1)+"]") + "x " + getitemname(getd(".Package"+.@j+"["+(.@i)+"]")); set .@i, .@i+2; } set .@j, .@j+1; } next; goto GM_Menu; case 2: mes "[GM Donation NPC]"; mes "Used space: ^F52887" + (getarraysize($itemreward$)/2) + "^000000/64"; mes "--------------------------------"; set .@i,0; while (.@i < getarraysize($itemreward$)) { mes "^B041FF" + $itemreward$[.@i] + "^000000: package #" + $itemreward$[.@i+1]; set .@i, .@i+2; } next; goto GM_Menu; case 3: mes "[GM Donation NPC]"; if (getarraysize($itemreward$) > 127) { mes "No more names can be stored."; mes "Delete some values and try again."; next; goto GM_Menu; } mes "Input a name, then a package number."; input .@name$; query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+.@name$+"'",.@charid; if (!.@charid) { mes "The name is invalid."; next; goto GM_Menu; } else set .@charid,0; input .@package,1,.PackageCount; next; mes "[GM Donation NPC]"; mes "Player: ^B041FF" + .@name$ + "^000000"; mes "Package: ^B041FF#" + .@package + "^000000"; mes " "; mes "Are you sure?"; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; } setarray $itemreward$[getarraysize($itemreward$)],.@name$,.@package; message .@name$,"[You have a Donation pending. See the GM Donation NPC at @warp prontera 148 160.]"; if ($itemlog) { if (getarraysize($itemlog1$) > 127) { deletearray $itemlog1$[0],1; deletearray $itemlog2$[0],1; } setarray $itemlog1$[getarraysize($itemlog1$)],strcharinfo(0); setarray $itemlog2$[getarraysize($itemlog2$)],.@name$; } mes "Reward added."; next; goto GM_Menu; case 4: mes "[GM Donation NPC]"; if (getgmlevel() < .GMDelete) { mes "You are not permitted to delete entries."; next; goto GM_Menu; } mes "Input a name to cancel a reward."; input .@name$; set .@i,0; while (.@i < getarraysize($itemreward$)) { if ($itemreward$[.@i] == .@name$) { deletearray $itemreward$[.@i],2; mes "Name cleared."; next; goto GM_Menu; } set .@i, .@i+2; } mes "The name is invalid."; next; goto GM_Menu; case 5: mes "[GM Donation NPC]"; if (getgmlevel() < .GMDelete) { mes "You are not permitted to delete entries."; next; goto GM_Menu; } mes "^FF0000This action cannot be undone.^000000"; mes "Are you sure?"; mes " "; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; } deletearray $itemreward$[0],getarraysize($itemreward$); mes "All entries cleared."; next; goto GM_Menu; case 6: Log_Menu: mes "[GM Donation NPC]"; if (getgmlevel() < .GMLogging) { mes "You are not permitted to manage logs."; next; goto GM_Menu; } mes "Logs are currently "+(($itemlog)?"^00D900enabled^000000":"^FF0000disabled^000000")+"."; next; switch(select(" ~ ^55AAFFView Logs^000000: ~ "+((!$itemlog)?"^00D900Enable":"^777777Disable")+" logging^000000: ~ ^DE0000Delete all logs^000000: ~ [Go back]")) { case 1: mes "[GM Donation NPC]"; mes "Used space: ^F52887" + (getarraysize($itemlog1$)) + "^000000/128"; mes "--------------------------------"; set .@i,0; while (.@i < getarraysize($itemlog1$)) { mes "^B041FF" + $itemlog1$[.@i] + "^000000: sent to ^55AAFF" + $itemlog2$[.@i] + "^000000"; set .@i, .@i+1; } next; goto Log_Menu; case 2: set $itemlog, ((!$itemlog)?1:0); goto Log_Menu; case 3: mes "[GM Donation NPC]"; mes "^FF0000This action cannot be undone.^000000"; mes "Are you sure?"; mes " "; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; } deletearray $itemlog1$[0],getarraysize($itemlog1$); deletearray $itemlog2$[0],getarraysize($itemlog2$); mes "Logs cleared."; next; goto Log_Menu; case 4: next; goto GM_Menu; } case 7: close; } } boomp!
×
×
  • Create New...