Jump to content

Mumbles

Retired Staff
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Mumbles

  1. Drop an English version of helpmsgstr.lua into datalua filesdatainfo or patch it into your GRF.
  2. Could we adjust @reloadmobdb to reload permanent mob spawn data as well? o.O;
  3. Mumbles

    Bind commands

    I'd like to see this happen as well. c: Additionally, would it be possible for bind commands to be automatically added to the @commands list? Perhaps under a "Custom" or "Special" category.
  4. Revised. - script verifystats -1,{ OnPCLoginEvent: // Check and verify all stats for (.@i = bStr; .@i <= bLuk; .@i++) { // Add and count stat points .@StatCount += readparam(.@i); // Count max stat parameters if (readparam(.@i) == .MaxStat) .@MaxStatCount++; // Verify stats if (readparam(.@i) > .MaxStat || .@MaxStatCount >= .ParamCount && .@StatCount > .MaxCount) { // Reset status points ResetStatus; // Reset skill points (if enabled) if (.SkillReset) ResetSkill; // Display error message message strcharinfo(0), "Verification System : Your stats have been reset."; } } end; OnInit: // Configuration .MaxStat = 99; // Max stat parameter .ParamCount = 2; // Max stat parameter count .MaxCount = 210; // Max stat count (ex: 99 + 99 + 9 + 1 + 1 + 1) .SkillReset = 0; // Reset skills? (0 = off, 1 = on) end; }
  5. Here's my method. This verifies max stat parameter and the total stat count. - script verifystats -1,{ OnPCLoginEvent: // Check and verify all stats for (.@i = bStr; .@i <= bLuk; .@i++) { // Add and count stat points .@StatCount += readparam(.@i); // Verify stats if (readparam(.@i) > .MaxStat || .@StatCount > .MaxCount) { // Reset status points ResetStatus; // Reset skill points (if enabled) if (.SkillReset) ResetSkill; // Display error message message strcharinfo(0), "Verification System : Your stats have been reset."; } } end; OnInit: // Configuration .MaxStat = 99; // Max stat parameter .MaxCount = 210; // Max stat count (ex: 99 + 99 + 9 + 1 + 1 + 1) .SkillReset = 0; // Reset skills? (0 = off, 1 = on) end; }
  6. Those functions appear to be custom; you wouldn't find any official documentation for them here. Try going through your files from rAthena and find where those script functions are written.
  7. Where are your LUA files located (data folder, GRF)? If they're located in your data folder, is your client diffed to read from the data folder first? I'll test out a 2013-03-20 client later tonight.
  8. Sounds like you might be missing monster sprites, or have outdated/incorrect LUA files for your client. Make sure that your kRO installation is fully updated and that your LUA files are current to your client version.
  9. Mumbles

    Clone stats

    Do the atcommands @clone, @slaveclone, and @evilclone not do this for you? The script command clone may also be used to serve this purpose.
  10. You get this error in npc/custom/instances/EndlessCellar.txt, npc/custom/instances/Museum.txt, and npc/custom/instances/DawnInstance.txt because you're sending a value with the instance_id() function. parse_callfunc: expected ')' to close argument list Try running your script without a number in the parentheses. You get this error in npc/yggdrasil/instances/glast_heim_memorial.txt because playertalk() is not a Hercules function. parse_line: expect command, missing function name or calling undeclared function Find the custom playertalk() function and load it into a separate file. You get this error in npc/re/instances/BuwayaCave.txt because the syntax for instance_create() is invalid. parse_callfunc: not enough arguments, expected ',' The proper syntax is: instance_create "<name>", <party id>; You get these errors in npc/re/instances/BuwayaCave.txt and npc/re/instances/BangungotHospital.txt respectively because the syntax for instance_mapname() is invalid and/or it is not (or no longer) a Hercules function. parse_callfunc: not enough arguments, expected ','parse_line: need ';' Find the correct syntax for the custom instance_mapname() function. I'm not entirely sure why you get this error in npc/re/instances/BuwayaCave.txt, but I was unable to find instance_enter() in Hercules' documentation for script commands. parse_simpleexpr: unmatched ')'
  11. Mumbles

    callfunc

    Was the file that used F_ChooseJob official? I mean, I don't know how far back you reverted but I was unable to find that function in the latest release.
  12. Not directly (without hexing your client), though you could just dual-client a non-GM character and type #disguise PlayerName or #disguise "Player Name" (if there is a space in the name); you may do this similarly with fakename, warp, and various other commands.
  13. Mumbles

    callfunc

    Can you post the script for your F_ChooseJob function? As for your item_db2 entry, your entry appears to be correct; not sure what's going wrong there. Any output messages on the console or user-end effects (or lack thereof) when you attempt to use one?
  14. If you could posts segments of code along with the error output caused by each segment, you might get a more constructive responsive. You could just post the script as well.
  15. Whoa, I wasn't aware of that! I got so used to triggering that label manually lol. That's great that we no longer need to; thanks for the heads up! c:
  16. o.O; Are you not using Hercules? It seems to be erroring at the variable declarations. Here's an adapted version that uses the set command for variable declarations. izlude,160,149,4 script Point Exchanger::point_x 714,{ mes .name$; mes "Hello there, "+ strcharinfo(0) +"!"; mes "I can exchange your "+ getitemname(.item_id) +" for "+ .x_rate +" Points each!"; next; // End the session if player chooses to if (select("Exchange "+ getitemname(.item_id) +":^FF0000End session^000000") == 2) { mes .name$; mes "Aw, what a shame! See you later, then!"; close; } mes .name$; mes "Please input the amount of coins you would like to exchange. Remember, 1 "+ getitemname(.item_id) +" is equivalent to "+ .x_rate +" Points!"; next; input .@amount; // Input coin amount to be exchanged // User does not have specified amount of coins if (countitem(.item_id) < .@amount) { mes .name$; mes "I'm sorry, but you do not have "+ .@amount +" "+ getitemname(.item_id) +" in your inventory! You currently have "+ countitem(.item_id) +"."; close; } delitem .item_id, .@amount; // Delete specified amount of coins set .@exchange, .@amount * .x_rate; // Calculate amount to be updated set #CASHPOINTS, #CASHPOINTS + .@exchange; // Update points mes .name$; mes "The transaction was successful! You traded "+ .@amount +" "+ getitemname(.item_id) +" for "+ .@exchange +" Points! You now have "+ #CASHPOINTS +" Points."; close; OnWhisperGlobal: // Whisper anything to initialize settings message strcharinfo(0), strnpcinfo(1) +" : 'OnInit' label has been intialized."; OnInit: // Configuration set .name$, "[^0000FFPoint Exchanger^000000]"; // NPC name set .item_id, 7539; // Item ID of coin to exchange set .x_rate, 30; // Exchange rate (1 coin for x points) end; }
  17. @Emistry - No worries; I actually had to dig around a bit in rAthena's files to find this function lol. @Frost - I went ahead and tested this on the latest release of Hercules with a 2010-07-30a client. The navigation part doesn't really work, but markers are displayed perfectly fine on the map. This solution isn't pretty, but I literally just dropped the F_Navi function at the top of the file; this will enable the function within this file only, I believe (someone correct me if I'm wrong). If you want it to be a global function, I suggest you use the script function method shown in my previous reply; just be mindful of your tabs, as I came across dropped tab indentation when I initially loaded the script. If you're still erroring, screenshot or paste a copy of the error(s) [whichever is more appropriate] so that we can get a more specific look at what's going on. Solution (edit header and duplicate as needed): izlude,146,133,4 script navtest 105,{ function F_Navi { // Uncomment to disable the navigation system. //set .@disabled,1; // This function takes 0 ~ 3 parameters. switch(getargcount()) { case 0: // Check if system is disabled. return .@disabled; case 1: // Display information message, if enabled. if (!.@disabled) { next; mes getarg(0); mes "When you click on the ^B9062F[location name]^000000, you'll receive the most advanced ^B9062FNavigation^000000 services!"; } return; default: // Display navigation link, if enabled; else set text color, if available. if (!.@disabled) return "<NAVI>[" + getarg(0) + "]<INFO>" + getarg(1) + ",0,000,0</INFO></NAVI>"; else if (getargcount() == 3) return getarg(2)+getarg(0)+"^000000"; else return getarg(0); } } cutin "prt_soldier",2; mes "[Alberta Guide]"; mes "Welcome to ^8B4513Alberta^000000,"; mes "the Port City."; mes "Do you need help navigating the city?"; F_Navi("[Alberta Guide]"); next; set .@str$,"Would you like to check any other locations?"; while (1) { switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:[ Destination Ports ]:Remove Marks from Mini-Map:Cancel")) { case 1: set .@loop,1; while (.@loop) { switch(select("[ Tool Shop ]:[ Forge ]:[ Weapon & Armor Shop ]:[ Inn ]:[ Beauty Salon ]:[ Merchant Guild ]:Previous Menu")) { case 1: mes "[Alberta Guide]"; mes "Let me mark the location of the"; mes "the "+F_Navi("Tool Shop","alberta,98,154","^0000FF"); mes "on your mini-map."; mes .@str$; viewpoint 1,98,154,0,0x0A82FF; next; break; case 2: mes "[Alberta Guide]"; mes "The "+F_Navi("Forge","alberta,35,41","^B9062F")+" is currently"; mes "located inside the Merchant Guild building."; mes .@str$; viewpoint 1,35,41,1,0xFF0000; next; break; case 3: mes "[Alberta Guide]"; mes "Let me mark the location of the"; mes "the "+F_Navi("Weapon & Armor Shop","alberta,117,37","^FF5400"); mes "on your mini-map."; mes .@str$; viewpoint 1,117,37,2,0xFFB400; next; break; case 4: mes "[Alberta Guide]"; mes "Let me mark the location of the"; mes "the "+F_Navi("Inn","alberta,65,233","^006400"); mes "on your mini-map."; mes .@str$; viewpoint 1,65,233,3,0xAAFF00; next; break; case 5: mes "[Alberta Guide]"; mes "Let me mark the location of the"; mes "the "+F_Navi("Beauty Salon","alberta,48,145","^7F3300"); mes "on your mini-map."; mes .@str$; viewpoint 1,48,145,4,0xD2691E; next; break; case 6: mes "[Alberta Guide]"; mes "The "+F_Navi("Merchant Guild","alberta,33,41")+" is where"; mes "you can change your job to ^800080Merchant^000000."; mes "Let me mark its location"; mes "on your mini-map."; mes .@str$; viewpoint 1,33,41,5,0xDA70D6; next; break; case 7: set .@loop,0; break; } } break; case 2: set .@loop,1; while (.@loop) { switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Cool Event Employee ]:[ Bullet Merchant ]:[ Cooking Ingredient Merchant ]:Previous Menu")) { case 1: mes "[Alberta Guide]"; mes "^B9062FEden Teleport Officers^000000 are located in "+F_Navi("south Alberta","alberta,121,68"); mes "and inside the "+F_Navi("Merchant Guild","alberta,33,41")+" building."; mes "Let me mark their locations on your mini-map."; mes .@str$; viewpoint 1,33,41,6,0xFF0000; viewpoint 1,121,68,7,0xFF0000; next; break; case 2: mes "[Alberta Guide]"; mes "Let me mark the location of the"; mes "^0000FFKafra Employees^000000"; mes "on your mini-map."; mes .@str$; viewpoint 1,33,41,8,0x0A82FF; viewpoint 1,113,60,9,0x0A82FF; next; break; case 3: mes "[Alberta Guide]"; mes "When you win event items,"; mes "you can claim them through the "+F_Navi("Cool Event Employee","alberta,148,57","^FF5400")+"."; mes .@str$; viewpoint 1,148,57,10,0xFFB400; next; break; case 4: mes "[Alberta Guide]"; mes "The ^7F3300Bullet Merchants^000000 for ^7F3300Gunslingers^000000"; mes "are located"; mes "near the "+F_Navi("center of the city","alberta,117,158")+"."; mes .@str$; viewpoint 1,117,158,11,0xD2691E; next; break; case 5: mes "[Alberta Guide]"; mes "The "+F_Navi("Chef Assistant","alberta,167,135","^006400")+" in Alberta"; mes "has many regular customers,"; mes "especially for his ^006400Delicious Fishes^000000."; mes .@str$; viewpoint 1,167,135,12,0xAAFF00; next; break; case 6: set .@loop,0; break; } } break; case 3: set .@loop,1; while (.@loop) { switch(select("[ Port - Northern Dock ]:[ Port - Central Dock ]:[ Port - Southern Dock ]:Previous Menu")) { case 1: mes "[Alberta Guide]"; mes "You can use the "+F_Navi("Northern Dock","alberta,192,196"); mes "to go to ^0000FFPort Malaya^000000 or ^0000FFDewata^000000."; mes .@str$; viewpoint 1,192,196,13,0xFF0000; next; break; case 2: mes "[Alberta Guide]"; mes "You can use the "+F_Navi("Central Dock","alberta,192,151"); mes "to go to the ^B9062FSunken Ship^000000 or ^B9062FIzlude Marina^000000."; mes .@str$; viewpoint 1,192,151,14,0xFF0000; next; break; case 3: mes "[Alberta Guide]"; mes "You can use the "+F_Navi("Southern Dock","alberta,245,86"); mes "to go to ^0000FFTurtle Island^000000, ^0000FFBrasilis^000000, ^0000FFAmatsu^000000, ^0000FFKunlun^000000, ^0000FFMoscovia^000000, ^0000FFLouyang^000000, or ^0000FFAyothaya^000000."; mes .@str$; viewpoint 1,245,86,15,0xFF0000; next; break; case 4: set .@loop,0; break; } } break; case 4: mes "[Alberta Guide]"; mes "Sure, I'll remove all marks from your mini-map."; mes "Is there anything else I can do for you?"; viewpoint 2,1,1,0,0xFFFF00; viewpoint 2,1,1,1,0x000000; viewpoint 2,1,1,2,0xFF0000; viewpoint 2,1,1,3,0xFFFF00; viewpoint 2,1,1,4,0xFFFF00; viewpoint 2,1,1,5,0xFFFF00; viewpoint 2,1,1,6,0xFFFF00; viewpoint 2,1,1,7,0xFFFF00; viewpoint 2,1,1,8,0xFFFF00; viewpoint 2,1,1,9,0xFFFF00; viewpoint 2,1,1,10,0xFFFF00; viewpoint 2,1,1,11,0xFFFF00; viewpoint 2,1,1,12,0x000000; viewpoint 2,1,1,13,0xFFFF00; viewpoint 2,1,1,14,0xFFFF00; viewpoint 2,1,1,15,0xFFFF00; next; break; case 5: mes "[Alberta Guide]"; mes "Enjoy your stay."; close2; cutin "prt_soldier",255; end; } }}
  18. Here's my method. izlude,160,149,4 script Point Exchanger::point_x 714,{ mes .name$; mes "Hello there, "+ strcharinfo(0) +"!"; mes "I can exchange your "+ getitemname(.item_id) +" for "+ .x_rate +" Points each!"; next; // End the session if player chooses to if (select("Exchange "+ getitemname(.item_id) +":^FF0000End session^000000") == 2) { mes .name$; mes "Aw, what a shame! See you later, then!"; close; } mes .name$; mes "Please input the amount of coins you would like to exchange. Remember, 1 "+ getitemname(.item_id) +" is equivalent to "+ .x_rate +" Points!"; next; input .@amount; // Input coin amount to be exchanged // User does not have specified amount of coins if (countitem(.item_id) < .@amount) { mes .name$; mes "I'm sorry, but you do not have "+ .@amount +" "+ getitemname(.item_id) +" in your inventory! You currently have "+ countitem(.item_id) +"."; close; } delitem .item_id, .@amount; // Delete specified amount of coins .@exchange = .@amount * .x_rate; // Calculate amount to be updated #CASHPOINTS += .@exchange; // Update points mes .name$; mes "The transaction was successful! You traded "+ .@amount +" "+ getitemname(.item_id) +" for "+ .@exchange +" Points! You now have "+ #CASHPOINTS +" Points."; close; OnWhisperGlobal: // Whisper anything to initialize settings message strcharinfo(0), strnpcinfo(1) +" : 'OnInit' label has been intialized."; OnInit: // Configuration .name$ = "[^0000FFPoint Exchanger^000000]"; // NPC name .item_id = 7539; // Item ID of coin to exchange .x_rate = 30; // Exchange rate (1 coin for x points) end; } It's commented in a way that explains how the script progresses. If you load this into a live server, whisper anything to npc:point_x to initialize its settings.
  19. I figured as much. You should consider a new host for your Flux installation. I host with Bluehost, and have a working Flux installation on my web server. They are fairly cheap and easy to work with. Regardless of who you decide to host your files with, I recommend you contact them beforehand and ask if they allow connections to external MySQL installations. This is usually allowed on dedicated servers. Alternatively, you can reroute your cpanel.domain.com to your VPS's IP address; here, you would host the cpanel of your website directly on your VPS itself (so that you can just use "localhost" or 127.0.0.1 for your MySQL hostname). To learn how to use your VPS to host a website read this guide on installing an Apahce HTTP server: http://httpd.apache.org/docs/2.2/install.html
  20. Harmony will still be useful for me until some sort of MAC address logging and filtering is developed for Hercules as an official feature. c:
  21. Last thing that comes to mind is that your webhost alone is not permitting outgoing connections on that port; this is something you would have to resolve with your webhost; I've had similar problems when hosting with GoDaddy. Oh and you should probably set up the rest of your connections settings in your servers.php file; you're missing configuration for your logs, map, char, and login arrays.
  22. Here's a comparison of the status conditions before and after they were changed. Status List r497/r246 by Valil
  23. You don't need shared SQL if you have MySQL installed and running on your VPS; it was merely an alternative suggestion in case you didn't want to go through the trouble of setting it up. See if MySQL is running on your system by checking the port (typically 3306) here with your VPS's IP: Check Ports Tool
  24. Are you sure MySQL is even running on your VPS? If you purchased an unmanaged VPS, it's unlikely that you'll have it pre-installed for you. Guide: Installing MySQL on Unix/Linux Guide: Installing MySQL on Microsoft Windows Alternatively, you can purchase shared SQL and just point FluxCP (and your server's SQL settings) there. Offloaded SQL via Frantech - $1.00 per month
×
×
  • Create New...

Important Information

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