Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Obviously not. A webserver understands other language than Hercules' scripting language. You should at least have basic knowledge of the language your web server will support (PHP is the most common web server language) and make a script on that language and syntax.
  2. I think I haven't understood you. Could you please elaborate?
  3. If you can't use them, and provided you didn't modify it or in case you've modified it wrong, you should have got errors or any kind of notice when parsing the items on the console. Have you checked it?
  4. No, it has 1 line only. Use the first one if you won't be using any NPC event for the monster, or the second one if you'll be using it. If you'll not have an NPC for whick you want to run the event, then you'll always get that error, so it'd be better if you didn't put any event label if not using them. Have you seen the examples on my text? By reading the text and trying to understand the examples, it should be quite clear. P.S.: No, you can't remove the looting behavior of a poring unless you make a custom entry on the mob database that removes that AI part of the mob.
  5. Hi. I think it's better for you to tell and check all the errors you made on that (along with some comments of mine), so that you can learn more from this and the examples: [*]The curly braces usually denote optional parameters and are required not to be present (if you put an optional parameter, just put it as if it was another one without the curly braces, unless specifically noted in the manual). [*]If you will spawn monsters at random in a map (The (x,y) coordinates are (0,0) ), you don't need to specify the width and height of the spawn rectangle. They'll just be ignored from the map server. [*]The monster parameter (or boss_monster if you want to spawn a mob that is considered a boss) must be left intact, these are reserved words that must ot be changed. [*]You could also leave out the level of the Poring if you want so that the server assigns them their default level, which is 1. [*]Amount of Porings has no issues except that they could make your client laggy. You sure you want to summon that much amount of porings? [*]From the amount of porings on, you could have finished your mob spawn if you want, no need to fill every variable unless you want to use them, in that order. [*]You can leave the delays to 0 (or just omit them) if you want the server to apply the minimum delay of 5000 ms (5 seconds) [*]Is that an event label you'll actually use or have you just invented it? In case you won't use any NPC label it's better to set them to 0. [*]You could have left out the last two parameters if you didn't want to give them any use. Possible fixes to your mob spawn would be these. Use the first one if you don't want to enforce any delay or use any special event label or the second if you will use the event label and the delays: new_zone03,0,0 monster Poring 1002,400new_zone03,0,0 monster Poring 1002,400,10000,5000,"PoringCatcher::OnEventName" Hope this gives you some insight on this and helps you learn a bit more!
  6. Hi. For the reward after finishing all of the Endless Tower instance, you could modify the script that warps you back to Alberta to give their users their respective items. Just add the item and the amount just before making the player warp back to the town. Go to the part of the script just before that (which in current hercules is npc/instances/EndlessTower.txt, line 2184 and just before warping put the command that will give you the item, like this: getitem <item id>,<amount>; Where item ID is the TCG's id and the amount is the amount of items you want to give the player. You could refer to the scripting manual for any questions on that command. About the other question, could you please elaborate more? I don't understand that one.
  7. Id'd be nice if you elaborated on your idea a bit more, since you give a general idea but when programming or scripting all ideas must be crystal clear so that you get exactly what you want. These are the questions that have just arisen on my head after a quick read: When or how should the event be started? At a certain time or by a given command (e.g. by a GM whisper)? What the map should be? Scripting can't make maps and I don't know any map with these features. A random amount of monsters, or always the same? What kind of monsters? We can disable item usage (and drop) via mapflag on a certain map, but there's currently no possibility of disabling attacks against the monsters. Only way I can think about it ATM is giving the participant an item that makes them be 90% that are removed once they get off the event, but there should be a smoother way I'm neglecting at the moment. Would be PvP on? In that case my idea of giving them 90% won't work. Some monster can kill more than one person at a given time, what to do in that case? It's a tie? Or just avoid monsters that can kill more than one person at a time? Should there be no penalty to be applied upon death? etcetera. Hope I helped giving you some more insight on this process.
  8. It wasn't that hard, wasn't it?
  9. I'd better tell you on a live example. Could you please paste the content of your clientinfo.xml here? Try to open it as plaintext, else it's possible you won't be able to open it.
  10. Either: Edit your data/clientinfo.xml so that your client will stop recognicing your account as GM account. Your clientinfo may be inside a GRF so maybe you'll be in need of using appropriate tools for it. Make another account, if it isn't marked by your clientinfo.xml as GM, it will behave as normal. For more information about your clientinfo.xml, you may see this Wiki entry.
  11. I don't get it. Could you please elaborate a bit more? You mean the GM outfit? That's put on the client side, only some accounts will have the GM suit. If you make a new account entry from scratch you'll probabli not have the GM outfit.
  12. jaBote

    MVP Announcer

    Whoa, that's true Patskie. I don't know why the parser passed that but I didn't test the script. Thanks! @themon There's no big deal, just change the regular spaces on the first line of Patskie's answer to tabulation spaces and it's OK.
  13. Every time you change anything inside the /src folder, you must recompile if you want the changes to take effect. I don't know any exceptions to this.
  14. jaBote

    MVP Announcer

    That's a source request then. I'm still not good at source requests. Mind if moving this topic to source requests?
  15. It depends on how and where you have your website. Usually, just navigate to your website directory system and put the script wherever you like, then you should access to your rankings with any browser.
  16. a) That's is due to the fact you're using Euphy's WoE setter, not your client. If so, you can easily change the reward to the one you want this NPC line: npc/custom/woe_controller.txt, line 70 Change it to the item ID you want to give, and the amount of them you want the guildmasters to get. Follow the instructions some lines before that configuration b ) Finished! c) Hmm, I didn't find that someone did put a cap on the server side. Try changing the MAX_LEVEL definition from src/map/map.h, line 39 to a higher value. Remember that every time you make changes inside /src, you have to recompile so that these changes will take effect. d) Then it's an issue of the client side only. Try to find the file that manages your item data on the client. According to the Client Side Translation project posted here in Hercules (topic link), it's stored on the System/itemInfo.lua (or .lub, doesn't matter) file. Set the slotCount parameter for each item you want to change to a value between 0 and 4. Hope this completes the help!
  17. jaBote

    MVP Announcer

    The script works, you just forgot first line spaces are actually tabs: - script Sample -1,{ OnInit: setarray .Maps$[0],"prontera","payon","geffen"; .mob_id = 1002; end; OnMinute00: .random_index = rand(getarraysize(.Maps$)); monster .Maps$[.random_index],0,0,getmonsterinfo(.mob_id,0),.mob_id,1,strnpcinfo(1)+"::OnKill"; announce getmonsterinfo(.mob_id,0)+ " has been spawned on map " +.Maps$[.random_index],0; end; OnKill: announce getmonsterinfo(.mob_id,0)+ " has been killed and will spawn again at " +(gettime(3)+1)+ ":" +gettime(2)+ " " +(gettime(3)+1>11?"PM":"AM"),0; end;} Yeah, it's an MvP (or whichever mob you want to spawn, this one is in fact a poring) each hour, on a random city. If you want to add more monsters and maps there please use my script modification of Patskie's: - script Sample -1,{ OnInit: setarray .Maps$[0],"prontera","payon","geffen","aldebaran"; // Add more map names here following this syntax (up to 128) setarray .mob_ids[0], 1002,1031,1062,1090,1096,1120,1388,1582,1613,1836,1894; // Add more mob IDs here following this syntax (up to 128) end; OnMinute00: .random_map = rand(getarraysize(.Maps$)); .random_mob = rand(getarraysize(.mob_ids)); monster .Maps$[.random_map],0,0,getmonsterinfo(.mob_ids[.random_mob],0),.mob_ids[.random_mob],1,strnpcinfo(3)+"::OnKill"; announce getmonsterinfo(.mob_ids[.random_mob],0)+ " has been spawned on map " +.Maps$[.random_map],0; end; OnKill: announce getmonsterinfo(.mob_ids[.random_mob],0)+ " has been killed and will spawn again at " +(gettime(3)+1)+ ":" +gettime(2)+ " " +(gettime(3)+1>11?"PM":"AM"),0; end;}
  18. For third request (no duplicate jobs in party) deleting items from cart it's not useful, so I think you mean the cart items aren't being deleted in the second request. Cart items are just like a second storage and aren't officially removed if, for example, you rebirth a Blacksmith or Alchemist since when you get back to High Merchant the're still there, so it'd be normal if "resetted" players still had their cart content, isn't it?
  19. Or, if you want to disable skills on certain maps only, you could do that in your map_zone_db.conf file: db/pre-re/map_zone_db.conf for pre-renewal servers or db/re/map_zone_db.conf for renewal servers.
  20. I've reached a very similar SQL to yours, please compare and remember to make a backup before applying (I haven't tested them but there shouldn't be problems): -- rAthena to Hercules main database upgrade query.-- Please don't use if too outdated.-- Remember to make a backup before applying.-- Apply in the same database you applied your main.sql-- Last revision: November 2, 2013-- Drop table `skillcooldown` since it's not used in HerculesDROP TABLE IF EXISTS `skillcooldown`;-- Upgrades for table `cart_inventory`ALTER TABLE `cart_inventory` MODIFY `equip` INT(11) UNSIGNED NOT NULL default '0', DROP COLUMN `bound`;-- Upgrades for table `char`ALTER TABLE `char` DROP COLUMN `moves`, ADD `slotchange` SMALLINT(3) UNSIGNED NOT NULL default '0', ADD `char_opt` INT( 11 ) UNSIGNED NOT NULL default '0', ADD `font` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0';-- Upgrades for table `guild_storage`ALTER TABLE `guild_storage` MODIFY `equip` INT(11) UNSIGNED NOT NULL default '0', DROP COLUMN `bound`;-- Upgrades for table `inventory`ALTER TABLE `inventory` MODIFY `equip` INT(11) UNSIGNED NOT NULL default '0', DROP COLUMN `bound`;---- Table structure for table `sql_updates`--CREATE TABLE IF NOT EXISTS `sql_updates` ( `timestamp` int(11) unsigned NOT NULL, `ignored` enum('Yes','No') NOT NULL DEFAULT 'No', PRIMARY KEY (`timestamp`)) ENGINE=MyISAM;-- Existent updates to enterINSERT INTO `sql_updates` (`timestamp`) VALUES (1360858500);INSERT INTO `sql_updates` (`timestamp`) VALUES (1360951560);INSERT INTO `sql_updates` (`timestamp`) VALUES (1362445531);INSERT INTO `sql_updates` (`timestamp`) VALUES (1362528000);INSERT INTO `sql_updates` (`timestamp`) VALUES (1362794218);INSERT INTO `sql_updates` (`timestamp`) VALUES (1364409316);INSERT INTO `sql_updates` (`timestamp`) VALUES (1366075474);INSERT INTO `sql_updates` (`timestamp`) VALUES (1366078541);INSERT INTO `sql_updates` (`timestamp`) VALUES (1381354728);INSERT INTO `sql_updates` (`timestamp`) VALUES (1381423003);INSERT INTO `sql_updates` (`timestamp`) VALUES (1382892428);INSERT INTO `sql_updates` (`timestamp`) VALUES (1383167577);-- Updates to table `storage`ALTER TABLE `storage` MODIFY `equip` INT(11) UNSIGNED NOT NULL default '0', DROP COLUMN `bound`;---- Table structure for table `account_data`--CREATE TABLE IF NOT EXISTS `account_data` ( `account_id` int(11) unsigned NOT NULL default '0', `bank_vault` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`account_id`)) ENGINE=MyISAM; uPaste.me mirror: http://upaste.me/7fbc8490ebb57a6a Also, even if not needed, here's the log upgrade query: -- rAthena to Hercules log database upgrade query.-- Please don't use if too outdated.-- Remember to make a backup before applying.-- Apply in the same database you applied your logs.sql-- Last revision: November 2, 2013-- Upgrades to table `picklog`ALTER TABLE `picklog` MODIFY `type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$') NOT NULL default 'P';-- Drop table `cashlog` since it's not used in HerculesDROP TABLE IF EXISTS `cashlog`;uPaste.me mirror: http://upaste.me/a011849121f6f38c Hope it's useful.
  21. a) This is kinda complicated. If you want the guild leader to receive items after a WoE you'd better save the owner guild's IDs during the WoE to be used after that or either do some weird tricks with the getcastledata script command. Then, once you've got the guild ID, simply get their guild master (via getguildmaster) and give him the reward. b ) Max player stats are defined in conf/battle/player.conf as said. c) Max base and job levels are defined in db/re/exp.txt for renewal servers or db/pre-re/exp.txt for pre-renewal servers. You can get how these work by reading the small documentation there. d) You should change itemslotcounttable.txt if your client is 2012-04-10 or earlier or your data/cskroption.lub (or iteminfo.lua or whatever it is named, I'm not good on this) for clients later than that, and you'd also have to change your db/re/item_db.txt or db/pre-re/item_db.txt (depending on reneral or pre-renewal), plus your db/item_db2.txt if you have custom items. They all have a Slot parameter in there you need to change for making the items have 4 slots. If you use SQL item DBs on your servers, then your item DBs are on your SQL database, not on the db/ folder Hope I've helped.
  22. I think yes but haven't tested. Same for if you simply omit the engine and the default charset.
  23. Oh, I just realised you're missing the end on your code. Either run it without stating anything about this: ENGINE=MyISAM DEFAULT CHARSET=latin1 Or run the whole table query: CREATE TABLE IF NOT EXISTS `pvp_rank` ( `char_id` int(11) NOT NULL, `account_id` int(11) NOT NULL, `char` varchar(30) NOT NULL, `kill` int(11) NOT NULL, `death` int(11) NOT NULL, `kdr` varchar(30) NOT NULL, `killingstreak` int(11) NOT NULL, `multikill` int(11) NOT NULL, `killingspree` int(11) NOT NULL, `dominating` int(11) NOT NULL, `megakill` int(11) NOT NULL, `unstoppable` int(11) NOT NULL, `wickedsick` int(11) NOT NULL, `monsterkill` int(11) NOT NULL, `godlike` int(11) NOT NULL, `beyondgodlike` int(11) NOT NULL, `doublekill` int(11) NOT NULL, `triplekill` int(11) NOT NULL, `ultrakill` int(11) NOT NULL, `rampage` int(11) NOT NULL, `ownage` int(11) NOT NULL, `nemesiskill` int(11) NOT NULL, `feedcount` int(11) NOT NULL, PRIMARY KEY (`char_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  24. First one. Comments in SQL start with -- (double dash), not // (double slash), so the commented line (in C) is what is giving you the error. Anyways, you could simply avoid copying that line, since comments are made for better programmer's understanding, compilers and parsers just ignore them (if they can parse them as comments).
  25. jaBote

    New Instance System

    I haven't messed with instances yet, but I think all instance parameters from that file are defined inside the script itself, by using these script commands: *instance_attachmap("<map name>",<instance id>{,<use base name>{,"<new map name>"}});*instance_set_timeout <alive timeout>,<idle timeout>{,<instance id>}; Hope this helps you.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.