Jump to content

Mumbles

Retired Staff
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by Mumbles


  1. 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;    }

  2. 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;    }

  3. 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.


  4. 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 ')'

  5. whenever using fakename + disguise my gm character name is still yellow, and when playing HnS it easy it find me.

     

    is there a way to ignore the aid/yellow whenever you're in a disguise/fakename?

    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.


  6. 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?


  7.  

    @ Via: BTW OnInit labels are now automatically fired when a NPC is loaded so there's no longer need to whisper to any npc or using the messy if (!.init) donpcevent strnpcinfo(3)+"::OnInit"; and these 'dirty' tricks to make the NPCs start working when they aren't loaded on server start ;).

    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:


  8. Missing function

     

    missingfunc_zps13ceb677.jpg

     

    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;    }

  9. @Via ... aw...how come i never thought that was  a custom function .. >.< damn.. i keep search the src ..and doc folder ...and failed...

     

    @ts

    you said you get error...what's the error ?

     

    navigation only work in 2011 client and above...

     

    @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;			    }	    }}

  10. 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.


  11. 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


  12. I bet Harmony is moved on this update.

     

    PS: Does this mean goodbye Harmony? Since for I know most of the server only buy harmony to get rid of bot/wpe and mostly disable the most harmony security stuff. ( NDL , SPEED HACK )

     

    Though I find personally that harmony is really a rock solid when it comes to security ; its just that most of the players get auto-ban, and crazy weird stuff in playing default harmony setup server.

     

    You'd have to remove and for me I only use harmony for bot/wpe.

     

    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:


  13. 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.


  14. 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


  15.  

    Change this line:

     

    removemapflag .7_map$,mf_restricted,1;

     

    To this:

     

    removemapflag .7_map$,mf_restricted;

     

    Tested and working. More information on setmapflag and removemapflag can be found on the Wiki.

     

    Note: Out of respect for Euphy's paid work, I'd ask that you please remove the script from your original post; however, this is entirely up to you.

     

    And to avoid any drama that might transpire from it being redistributed. @__@

     

    I m confused, the mf_restrict was already dropped since the map zone system implemented

     

    http://herc.ws/board/topic/302-introducing-hercules-map-zone-database/

    The mf_restrict (restrict) was dropped.

     

    Oh wow, I wasn't aware that it had been dropped. Before adding a removemapflag for mf_zone, he should go through and modify his mf_restricted mapflags to mf_zone; additionally, modifications to map_zone_db.conf in the pre-re/re folders should be made. In any case, the error was not in the mapflag that was being removed; the script errored because there was a comma and another parameter after the mapflag parameter.

     

    @xilence01:

    I'd recommend that you update your mf_restricted mapflags to mf_zone, and adjust your map_zone_db.conf in the pre-re/re folders as needed.


  16. Change this line:

     

    removemapflag .7_map$,mf_restricted,1;

     

    To this:

     

    removemapflag .7_map$,mf_restricted;

     

    Tested and working. More information on setmapflag and removemapflag can be found on the Wiki.

     

    Note: Out of respect for Euphy's paid work, I'd ask that you please remove the script from your original post; however, this is entirely up to you.

     

    And to avoid any drama that might transpire from it being redistributed. @__@

×
×
  • Create New...

Important Information

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