Jump to content

Missingno

Members
  • Posts

    135
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Missingno

  1. Adjust the IDs and amounts in these arrays: setarray .Package1[0],501,1,502,2,503,3; setarray .Package2[0],601,5,602,10; setarray .Package3[0],607,10;
  2. You could just add a delwaitingroom command before the waitingroom command.
  3. What's the use in getmapxy() if you're only using the map name returned? It'd make more sense just use strcharinfo(3) to return the invoking player's map name. Example: if (strcharinfo(3) != instance_mapname("abyss_03")) { end; }
  4. You could use Euphy's Quest Shop and just replace getitem commands with getitembound and the bound type.
  5. I wouldn't recommend dropping global_reg_value, since it stores character and account variables; any players' quest progress would be erased. Regarding your second question, you can change from MyISAM to InnoDB with this query: ALTER TABLE `table_name` ENGINE=INNODB
  6. Updated the script in my previous post (fixed an error with the SQL update for duplicate keys).
  7. Yes, but neither eAthena nor rAthena accept assignments in that manner (=, +=, -=, *=, /=, etc.) using set. Read the documentation or the Wiki article for set if you're still confused.
  8. Missingno

    mes

    Glad it worked out for you, and thanks for the compliment! I try to make my code readable and user-friendly. (:
  9. - script reward -1,{ OnInit: // Configuration .reward_id = 7720; .amount = 5; .min_gm = 40; end; OnWhisperGlobal: // Check GM level if (getgmlevel() < .min_gm) { message strcharinfo(0), "You are not authorised to access this feature."; end; } // Check if reward session ended if (select("Reward a player:End session") == 2) { close; } do { // Input target player's name message strcharinfo(0), "Enter the name of the character to be rewarded."; input .@player_name$; // Check if specified player is logged in if (!isloggedin(getcharid(3, .@player_name$), getcharid(0, .@player_name$))) { message strcharinfo(0), "'"+ .@player_name$ +"' is either not logged in or does not exist."; } } while (!isloggedin(getcharid(3, .@player_name$), getcharid(0, .@player_name$))); // Reward specified player getitem .reward_id, .amount, getcharid(3, .@player_name$); // Announce reward announce "The GM '"+ strcharinfo(0) +"' has rewarded '"+ .@player_name$ +"' with "+ .amount +" "+ getitemname(.reward_id) +".", bc_all; close; } Whisper to npc:reward to activate the GM panel; anyone below GM level 40 will be replied to with a fail message. I suspect you might be using eAthena, though; in which case, change lines 5 through 7 for compatibility: OnInit: // Configuration set .reward_id, 7720; set .amount, 5; set .min_gm, 40; end;
  10. CentOS...maybe you need to use yum. yum install screen
  11. Just import them using Workbench, phpMyAdmin, or whatever GUI you're using.
  12. Download and install screen, then run your server from a screen session. sudo apt-get install screen screen -S server cd path/to/server/files/ ./athena-start start To detach from screen, press Ctrl A D simultaneously; to resume our screen session named "server", type this: screen -R server
  13. You sure you're using rAthena? I just pulled the latest commit a few minutes ago and ran grep through it; nothing turns up for "experimental values":
  14. Use the necessary files from sql-files/upgrades/ in r17701 to update your database from r16797 all the way to r17701 prior to updating your server. In your case, you would need to apply upgrade_svn16823.sql through upgrade_svn17541.sql.
  15. You'd probably be better of using a temporary NPC variable (.@last_map$), since it doesn't seem like you'll need that data exclusive to the attached player; same goes for where you're storing the account IDs (.@acct_id). This will cause your script to error, as you're trying to store a string (strcharinfo(0), which will return the player's name as a string) as a numerical value for @char_id (again, probably better off as a temporary NPC variable, .@char_id); from what I gather, you intend to retrieve the player's character ID, which can be done with getcharid(0). Additionally, your SQL query will fail, because the table char needs to be enclosed in backticks (`char`); char is a reserved keyword and will not execute correctly if not enclosed properly. In regards to your script, it just seems like you're trying to force-update a player's last map, which may actually be overwritten when the char-server saves again. o_o
  16. Missingno

    Edit

    Do it from your home directory. o_o cd ~ fuser 5121/tcp kill PID fuser 6121/tcp kill PID fuser 6900/tcp kill PID
  17. Read the documentation on rentitem and replace any occurrences of getitem with it.
  18. how make Emistry Multi-Currency to become Rental Item after you Quested it??? help Use rentitem instead of getitem.
  19. I always thought stat bonuses weren't read from costume headgears intentionally. o_o
  20. Missingno

    Edit

    This usually happens when you've already got an instance of a zone running. Abort your current operation and type the following: fuser 5121/tcp fuser 6121/tcp fuser 6900/tcp Each entry should return a process ID; to terminate these processes, input this, with PID being the process ID. kill PID When you're done, try running your server again.
  21. You don't need to use callfunc for local functions; because of the way it is written, it can be used like any other script command.
  22. Or you could write a local function and place it at the beginning of your script: function getranditem { // Possible items to receive (ID, amount) setarray .@item_id[0], 909, 2, 909, 3, 909, 3; do { // Randomise index location .@loc = rand(getarraysize(.@item_id)); } while (getitemname(.@item_id[.@loc]) == "null" || .@loc % 2); // Receive item getitem .@item_id[.@loc], .@item_id[.@loc + 1]; return; } Place this after your header but before anything else in the script starts; then, you can call on this function by writing: getranditem;
  23. You can modify stats for pre-renewal mobs in db/pre-re/mob_db.txt Mind you, hit and flee are sub-stats, and cannot be directly edited.
  24. Uh...I don't even know where to begin helping you in that case, but it could probably be written a lot better. No offence intended. o_o If you're going to have separate random prizes (meaning completely different items and amounts) for each prize, then you might have to stick with what you pasted here; otherwise, if you're going to use the same random set of prizes for all of those, place it outside of the switch.
  25. Not really sure what to tell you for your second question; hit and flee are calculated based on several factors. Here are the official formulas for renewal: Hit: 175 + BaseLv + DEX + Floor(LUK ÷ 3) + Bonus Flee: 100 + SkillBonus + [BaseLv + AGI + LUK ÷ 5 + ItemBonus] × {1 - [(Mobs − 2) × 0.1]}
×
×
  • Create New...