Jump to content

Mumbles

Retired Staff
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Mumbles

  1. That's a good question; I assume using the rate/type would work separately, since they're not part of the same function, but I may be wrong. @alootid would work similarly concurrently, but I don't see it being a part of a "combination" per se, unless it's used in such a way that just adds a specific item to the list of rate/type items being autolooted.
  2. It works fine, but won't delete your pick. Here's a version that does: - script Sample -1,{ OnPCLoadMapEvent: getmapxy(.@map$, .@x, .@y, 0); if (.@map$ == "guild_vs3") { if (!countitem(7318) || getequipid(1) != 5137) { message strcharinfo(0),"You need to have an Alice Doll equipped and 1 Old Pick to proceed!"; sleep2 1000; warp "SavePoint", 0, 0; } delitem 7318, 1; message strcharinfo(0), "1 Old Pick has been deleted from your inventory."; } end;} guild_vs3 mapflag loadevent
  3. Sirius has been virtually non-responsive for over six months now. As far as support and updates go, Harmony is dead; I am unaware of their actual server status but I would assume they still serve their function, should you actually get Harmony working from your end.
  4. That kicks you out of the map "guild_vs3" and sends you to your save point if you don't have item 7318 in your inventory or item 5137 equipped. I recommend you use the other script; don't use both.
  5. prontera,150,150,0 script Sample 100,{ if ( countitem(7318) && getequipid(1) == 5137 ) { // allow them to go to the map delitem 7318, 1; warp "guild_vs3",0,0; end; }}
  6. Add this line before warping them to the map: delitem 7318, 1;
  7. This tends to happen when you have a player with a nonexistent skill ID attached to their character; these skills are usually obtained by faulty item scripts or missing database entries in the skill_db.
  8. Currently, we have three different autoloot commands: autoloot alootid autoloottype My only question is, Why aren't these three features merged into one command with various syntaxes?, like so: autoloot autoloot rate <number %> autoloot item <name or ID> autoloot type <type> autoloot settings autoloot reset ...and aloot variations for those who like to shorthand, of course. It'd also be interesting to see rate and type combined; for example, autolooting any equipment items that drop at a rate of 12% or less.
  9. Give this a try: http://herc.ws/board/topic/2780-utility-point-exchanger/
  10. Utility: Points to Zeny Exchanger As per themon's request: http://herc.ws/board/topic/2774-zeny-to-cash-point/ Description: Allows players to exchange points for zeny and vice-versa. Point variable, exchange rate, and minimum exchange can be configured easily below the 'OnInit' label. Optimised for Hercules emulators. Download: https://github.com/datmumbles/Scripts/raw/master/util/points2zeny.txt
  11. A link to your other topic (even when read) doesn't tell anyone who might fulfill your request anything about what you are requesting. o.o;
  12. Why not use Microsoft Visual Express 2010 C++? It's free.
  13. Not sure if this is quite what you were looking for, but I wrote this for instant third-class jobs a while ago: http://herc.ws/board/topic/902-utility-automatic-third-class-jobs/
  14. Mumbles

    MAC IP Address

    Sorry for the necro-reply, but even if you did change your MAC address, you would briefly disconnect from your network while the connection resets. You would then have to log in again, thus logging your MAC address again and keeping you limited from most typical dual-login detection methods using MAC address. However, changing your MAC address does allow you to bypass other conventional uses of MAC address logging, so hardware ID detection would prove to be more effective. @Ryuuzaki: It'd be cool to see this (or hardware ID logging) as a plugin, though I haven't read your patch yet and I'm unsure if that'd even be possible. From what I understand about what Yommy said is that this is about an NPC that can be used for one time only. For me, "Last Mac" is better for events like "Woe Rewards" (especially for those who is playing under 1 internet connection, therefore having the same ip) and many more. Yes, and Yommy was also saying that one-time use could easily be bypassed. I was saying that it could still be viable for dual-client checks, since the network connection is reset along with the MAC address. I'd say the safest bet would be to NOT tell your players that MAC address logging is enabled until someone comes up with hardware IDing.
  15. Mumbles

    MAC IP Address

    Sorry for the necro-reply, but even if you did change your MAC address, you would briefly disconnect from your network while the connection resets. You would then have to log in again, thus logging your MAC address again and keeping you limited from most typical dual-login detection methods using MAC address. However, changing your MAC address does allow you to bypass other conventional uses of MAC address logging, so hardware ID detection would prove to be more effective. @Ryuuzaki: It'd be cool to see this (or hardware ID logging) as a plugin, though I haven't read your patch yet and I'm unsure if that'd even be possible.
  16. I assume you mean Visual Basic 2013? If that's the case, have you tried loading the Hercules-12.sln file in the root directory? I typically just double-click to load it, then press F7 to build the project. Disclaimer: I use MSVE 2010, so I'm not sure if this will actually work.
  17. Configure your MySQL server's root account (or whichever) to match your SQL settings in inter-server.conf and login-server.conf. The settings you highlighted are for the char and map server's login authentication, not your MySQL server.
  18. True, I guess I overlooked that. Perhaps it could be rewritten (or added onto) with a OnPCLoginEvent with a proper check. gettime(8), which returns the day of the year, could possibly be utilised here to make such a check.
  19. Why not use gettime(4) to determine the day of the week? /*=========================================================Limited NPCby Via===========================================================Request: http://goo.gl/Du8yRC===========================================================Description:Allows for limited NPC use up to a preconfigured amount.=========================================================*/prontera,150,150,5 script Limited NPC#via::weekly_limit 998,{ // Function prototypes function getDayName; // Check if limit can be reset if (gettime(4) == .limit_reset) { // Check if limit has not yet been reset if (!#resetted) #limit_count = 0; // Reset limit #resetted++; // Reset identifier } else #resetted = 0; // Reset the reset identifer // Check if weekly limit has been reached if (#limit_count == .weekly_limit) { mes .npc_name$; mes "I'm sorry, but you may only use my services "+ .weekly_limit +" times per week. Limitations are lifted every "+ getDayName() +"."; close; } #limit_count++; // Increase limit count mes .npc_name$; mes "Hello there! I've spoken to you "+ #limit_count +" out of "+ .weekly_limit +" times this week."; close; // Return the name of the current day function getDayName { switch(gettime(4)) { case 0: return "Sunday"; case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; } } OnInit: // Configuration settings .npc_name$ = "[^0000FFLimited NPC^000000]"; .weekly_limit = 3; // Usage limit per week .limit_reset = 1; // Day of the week to reset limits (0 = Sunday, 1 = Monday, etc.) end; }
  20. Hey Uzieal, I really enjoyed your badges, and I was wondering if you would be willing to make a small set for my forums. The following titles would need badges: Administrator Supervisor Developer Event Manager Community Manager Community Contributor Forum Moderator Let me know either way! Thanks, Via
  21. *facepalms* After going over my syntax, I realised that I had misunderstood the usage of checkweight() and was trying to make this check a lot more complicated than it needed to be. checkweight() determines if the items specified would cause you to be overweight or not; I mistakenly presumed it would calculate the weight. The correct method to retrieve the weight of an item would be getiteminfo(<item ID>, 6). The proper check would be this: if (Weight > 121) I didn't want to repeat chunks of code, so I used arrays to shorthand it. Give this a try; I've tested it thoroughly: prontera,150,150,5 script Sample#via::sample_npc 998,{ // Loop through items for (.@i = 0; .@i < getarraysize(.item_id); .@i++) { // Check if player has the exact amount of these items and zeny if (countitem(.item_id[.@i]) < .amount[.@i] || Zeny < .cost) { // Error message mes "[ Divine ]"; mes "I'm sorry, but you don't have the items and zeny required to proceed."; close; } } // Loop through items for (.@i = 0; .@i < getarraysize(.item_id); .@i++) { // Determine accumulative weight .@total_weight = .@total_weight + (getiteminfo(.item_id[.@i], 6) * .amount[.@i]); } // Check if the player's weight exceeds the items checked for if (Weight > .@total_weight) { mes "[ Divine ]"; mes "Sorry, but you're too heavy to proceed."; close; } // Confirmation dialogue mes "[ Divine ]"; mes "Ok, alright! You can go in here now!"; next; // Loop through items for (.@i = 0; .@i < getarraysize(.item_id); .@i++) { // Delete items delitem .item_id[.@i], .amount[.@i]; } // Delete Zeny Zeny -= .cost; // Warp player warp "prontera", 154, 285; close; OnInit: // Configuration setarray .item_id[0], 628, 969, 7019; setarray .amount[0], 20, 1, 1; .cost = 50000; end; }
  22. I don't see why you would need to check it twice. The usage of checkweight() here will return 0 if the player is over the weight of the items and their respective amounts; this means that if the player is carry anything other than what was listed, (s)he will be unable to proceed. @Slowpoker: Is your character wearing any sort of equipment? Anything equipped counts towards your accumulative weight. Edit: I just noticed a very small (but critical) typo in the script I gave you lol. Change this: if (checkweight(628, 20, 969, 1, 7019, 1)) To this: if (!checkweight(628, 20, 969, 1, 7019, 1)) The final output should be: // ...next;// Check if player has the exact amount of these items and zenyif(countitem(628) == 20 && countitem(969) == 1 && countitem(7019) == 1 && Zeny == 50000){ // Check if the player's weight exceeds the items checked for if (!checkweight(628, 20, 969, 1, 7019, 1)) { mes "[ Divine ]"; mes "Sorry, but you're too heavy to proceed."; close; } // Delete items and deduct zeny delitem 628, 20; delitem 969, 1; delitem 7019, 1; Zeny -= 50000; // Confirmation dialogue mes "[ Divine ]"; mes "Ok, alright! You can go in here now!"; next; // Warp player warp "prontera",154,285; close;}// Error messagemes "[ Divine ]";mes "I'm sorry, but you don't have the items required to proceed.";close;
  23. I'm still a little confused as to what you're trying to do, but from what I understand, you want to see if the player has the exact amounts of the items specified; the weight check is to determine if the player is carrying anything other than the items in the amounts specified. If that's the case, then your process needs to be reorganised a little. Give this a try; read the comments to see how the script progresses: // ...next;// Check if player has the exact amount of these items and zenyif(countitem(628) == 20 && countitem(969) == 1 && countitem(7019) == 1 && Zeny == 50000){ // Check if the player's weight exceeds the items checked for if (checkweight(628, 20, 969, 1, 7019, 1)) { mes "[ Divine ]"; mes "Sorry, but you're too heavy to proceed."; close; } // Delete items and deduct zeny delitem 628, 20; delitem 969, 1; delitem 7019, 1; Zeny -= 50000; // Confirmation dialogue mes "[ Divine ]"; mes "Ok, alright! You can go in here now!"; next; // Warp player warp "prontera",154,285; close;}// Error messagemes "[ Divine ]";mes "I'm sorry, but you don't have the items required to proceed.";close;
  24. The proper method would be to use readparam(). Usage: if (readparam(Weight) > 121){ mes "Sorry, but you're too heavy to proceed."; close;}
  25. Open your Windows Firewall and create a new rule. Add an exception for ports 5121, 6121, and 6900 for incoming TCP connections. When you're prompted, choose to allow connections on these ports.
×
×
  • Create New...

Important Information

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