Jump to content

heroji

Members
  • Content Count

    50
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by heroji


  1. Just now, meko said:

    Keep in mind that performing SQL queries is slow, especially when there's 200 rows of results so you should be using getunits() when possible.

    If you do not provide a map to getunits() it will search the whole server, just like the SQL query that is used in Ridleys script.

    i see does it also affects your server performance?


  2. 33 minutes ago, NoOne said:

    thank you sir!

     

    one more thing can i remove the limit? because theres 160 players on the map and only 120+ receive the item when i use @itemmap

    query_sql("SELECT `account_id`, `name` FROM `char` WHERE `online` = 1 ORDER BY `account_id` LIMIT 128 OFFSET "+.@offset, .@aids, .@name$);

    or  try change the limit to 200 offset..


  3. *getitembound(<item id>, <amount>, <bound type>{, <account ID>})

    *getitembound("<item name>", <amount>, <bound type>{, <account ID>})

    This command behaves identically to getitem(), but the items created will be bound to the target character as specified by the bound type. All items created in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in some cases cannot be traded or stored.

    Valid bound types are:

    1 - Account Bound

    2 - Guild Bound

    3 - Party Bound

    4 - Character Bound


  4. @spy command


    It allows you to listen to other players' conversations in real-time!

    Features:

    Can hook up to 5 players online! (adjustable depends on your pc)

    It detects All/Pm/Guild&Party chatlogs.

    View logs players by name or all.

    Added a Clean chat command.

    Use protection with password. (Account Based)

    No source edit!

    Have fun! 

     

    How to use:

    First of all you have to install it in game by typing the command @spy <(password)> (in this case the pw is  .heroji ).

     

    Now you can use the command:

    @spy                       ( disconnect all the players hooked or show online players)

    @spy <name>        ( hook the player to spy )

    @spy .clean             ( clean chatlog screen )

    @spy .logsall           ( show all chatlogs saved )

    @spy .logs <name>   (show all chatlogs of a player )

    @spy .logsdrop       ( will drop all the chatlogs saved in the table sql *use carefully no backup!* )

     

    Enjoy! i tested it on @anacondaq RO server configuration..and works fine.

    if you are getting [obfuscate] messages, its happening when the player is spamming the chat or you hook yourself.

    P.s: This is my first script and I just started a month ago into scripting  so if you find bug, issue or comment just post it,

    I would really appreciate it.


     


  5. I think  broadcast  can only be for all and for yourself...

    Target flags: - bc_all: Broadcast message is sent server-wide (default). - bc_map: Message is sent to everyone in the same map as the source of the broadcast (see below). - bc_area: Message is sent to players in the vicinity of the source. - bc_self: Message is sent only to current player.


  6. adding the 'loadevent' mapflag didn't work..

    -	script	sadas	-1,{
    OnPCLoadMapEvent:
    mes "hi";
    end;
    }
    izlude	mapflag	loadevent

    But somehow reinstalling the open_server folder solved it..also OnPCLoginEvent works fine now but i lost all the database..

    i'm using @anacondaq Guide RO server.

    Do you why is this happening sir @Kenpachi?

    Thank you


  7. Hello i have a problem with OnPCLoadMapEvent: works only at prontera, when i try to go to the other cities is not working..

    
    -	script	sadas	-1,{
    OnPCLoadMapEvent:
    mes "hi";
    end;
    }

    also OnPCLoginEvent: is not working in other cities...

    please help, thank you.


  8. try use this one and add getitem for each case callsub..

    //==============================================================================//
    //= Script Release : Job Changer + Max Leveler  [ Version 1.6 ]
    //==================================By==========================================//
    //= ManiacSociety
    //==============================================================================//
    //= Idea Came From : ManiacSociety
    //= Helper : Emistry & Kenpachi
    //==============================================================================//
    //= D E S C R I P T I O N S
    //==============================================================================//
    // -- 1. Character can choose a Job which he like to be.
    // -- 2. This NPC only have 1 Time Usage.
    //         If it is set to Account Based then that account can use 1 times.
    //         If it is set to Character Based then all new character can use 1 times.
    // -- 3. Complete skills / Skill Points will be given if it is set to be.
    // -- 4. Base Level and Job Level will be given upon Job Change.
    // -- 5. Allow players to click an items to call out the NPC.
    //==============================================================================//
    //= V E R S I O N S
    //==============================================================================//
    // -- [ 1.6 ] : Added Item Script which allow the Scripts work as a "Tickets".
    // -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings
    // -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes.                            
    // -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations.            
    // -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts.                            
    // -- [ 1.1 ] : Added New Job Change Option.                                    
    // -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer.                        
    //==============================================================================//
    //= R U L E S
    //==============================================================================//
    // -- 1. Do not use for exchanging purpose.                                        
    // -- 2. Do not claim it as yours.                                                
    // -- 3. Do not change or remove the credits.
    // -- 4. Do not sell the script in order to get paid.
    // -- 5. Do not re-sharing upon modified without permission.
    //==============================================================================//
     
    // -- Add this at item DB. ( Change it to any items to your like. )
    // -- 30000,JobClassTicket,JobClassTicket,11,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ doevent "ClassHelper::OnPCLoginEvent"; },{},{}
     
    prontera,153,193,5    script    Class Helper    4_F_SHAMAN,{
     
    // -- Configuration Option
    set .npcname$,"[ ^0000FF Class Helper ^000000 ]";
    set .InfoMenu,0;                    // Classes Informations Option [ 0 - Disable / 1 - Enable ]
    set .1stClassMenu,1;                // First Job Class Option [ 0 - Disable / 1 - Enable ]
    set .2ndClassMenu,1;                // Second Job Class Option [ 0 - Disable / 1 - Enable ]
    set .High1stClassMenu,1;            // High 1st Class Option [ 0 - Disable / 1 - Enable ]
    set .Trans2ndClassMenu,1;            // Transcendent Class Option [ 0 - Disable / 1 - Enable ]
    set .Trans3rdClassMenu,0;            // Third Job Class Option [ 0 - Disable / 1 - Enable ]
    set .ExpandedClassMenu,1;            // Expanded Class Option [ 0 - Disable / 1 - Enable ]
    set .BabyClassMenu,0;                // Baby Job Class Option [ 0 - Disable / 1 - Enable ]
    set .Baby3rdClassMenu,0;            // Baby Third Job Class Option [ 0 - Disable / 1 - Enable ]
    set .Allskills,0;                    // Complete Skills Option [ 0 - Disable / 1 - Enable ]
     
    // -- Usable for Only 1 Time
    set .Based,1;                        // [ 0 - Account Based  / 1 - Character Based ]
     
     
    if( ClassHelper == 1 || #ClassHelper == 1 ) end;
     
    Main_Menu:
        mes .npcname$;
        mes "I am the Job Class Helper...";
        mes "I am here to help you.";
        mes " ^FF0000________________________________^000000";
        mes "Do you wish to become Stronger ?";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?";
        next;
        switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000",
                    ( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000",
                    ( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000",    
                    ( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000",    
                    ( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000",    
                    ( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000",        
                    ( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000",    
                    ( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000",        
                    ( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000",        
                    "^FF0000Cancel^000000")) {
     
                        case 1: goto Classes_info;
                        case 2:    goto FirstJob_Classes;
                        case 3:    goto SecondJob_Classes;
                        case 4:    goto HighFirstJob_Classes;
                        case 5:    goto TransSecondJob_Classes;
                        case 6:    goto TransThirdJob_Classes;
                        case 7:    goto ExpandedJob_Classes;
                        case 8:    goto BabyJob_Classes;
                        case 9:    goto BabyThirdJob_Classes;
                        case 10:    close;
                }
        
    FirstJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Swordman^000000",
                    "^000000Magician^000000",
                    "^000000Archer^000000",
                    "^000000Acolyte^000000",
                    "^000000Merchant^000000",
                    "^000000Thief^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
     
                case 1:    callsub Job_Changing,1,99,50,60,"All";
                case 2:    callsub Job_Changing,2,99,50,60,"All";
                case 3:    callsub Job_Changing,3,99,50,60,"All";
                case 4:    callsub Job_Changing,4,99,50,60,"All";
                case 5:    callsub Job_Changing,5,99,50,60,"All";
                case 6:    callsub Job_Changing,6,99,50,60,"All";
                case 7:    goto Main_Menu;
            }
     
    HighFirstJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000High Swordman^000000",
                    "^000000High Magician^000000",
                    "^000000High Archer^000000",
                    "^000000High Acolyte^000000",
                    "^000000High Merchant^000000",
                    "^000000High Thief^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
     
                case 1:    callsub Job_Changing,4002,99,50,60,"All";
                case 2:    callsub Job_Changing,4003,99,50,60,"All";
                case 3:    callsub Job_Changing,4004,99,50,60,"All";
                case 4:    callsub Job_Changing,4005,99,50,60,"All";
                case 5:    callsub Job_Changing,4006,99,50,60,"All";
                case 6:    callsub Job_Changing,4007,99,50,60,"All";
                case 7:    goto Main_Menu;
            }
            
    SecondJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Knight^000000",
                    "^000000Priest^000000",
                    "^000000Wizard^000000",
                    "^000000Blacksmith^000000",
                    "^000000Hunter^000000",
                    "^000000Assassin^000000",
                    "^000000Crusader^000000",
                    "^000000Monk^000000",
                    "^000000Sage^000000",
                    "^000000Rogue^000000",
                    "^000000Alchemist^000000",
                    ( Sex == 1 )?"":"^000000Dancer^000000",        
                    ( Sex == 0 )?"":"^000000Bard^000000",    
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
                
                case 1:    callsub Job_Changing,7,99,50,110,"All";
                case 2:    callsub Job_Changing,8,99,50,110,"All";
                case 3:    callsub Job_Changing,9,99,50,110,"All";
                case 4:    callsub Job_Changing,10,99,50,110,"All";
                case 5:    callsub Job_Changing,11,99,50,110,"All";
                case 6:    callsub Job_Changing,12,99,50,110,"All";
                case 7:    callsub Job_Changing,14,99,50,110,"All";
                case 8:    callsub Job_Changing,15,99,50,110,"All";
                case 9:    callsub Job_Changing,16,99,50,110,"All";
                case 10:    callsub Job_Changing,17,99,50,110,"All";
                case 11:    callsub Job_Changing,18,99,50,110,"All";
                case 12:    callsub Job_Changing,20,99,50,110,"All";
                case 13:    callsub Job_Changing,19,99,50,110,"All";
                case 14:    goto Main_Menu;
            }
     
    TransSecondJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Lord Knight^000000",
                    "^000000High Priest^000000",
                    "^000000High Wizard^000000",
                    "^000000Whitesmith^000000",
                    "^000000Sniper^000000",
                    "^000000Assassin Cross^000000",
                    "^000000Paladin^000000",
                    "^000000Champion^000000",
                    "^000000Professor^000000",
                    "^000000Stalker^000000",
                    //"^000000Creator^000000",
                    ( Sex == 1 )?"":"^000000Gypsy^000000",        
                    ( Sex == 0 )?"":"^000000Clown^000000",    
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
                
                case 1:    callsub Job_Changing,4008,99,70,130,"All";
                case 2:    callsub Job_Changing,4009,99,70,130,"All";
                case 3:    callsub Job_Changing,4010,99,70,130,"All";
                case 4:    callsub Job_Changing,4011,99,70,130,"All";
                case 5:    callsub Job_Changing,4012,99,70,130,"All";
                case 6:    callsub Job_Changing,4013,99,70,130,"All";
                case 7:    callsub Job_Changing,4015,99,70,130,"All";
                case 8:    callsub Job_Changing,4016,99,70,130,"All";
                case 9:    callsub Job_Changing,4017,99,70,130,"All";
                case 10:    callsub Job_Changing,4018,99,70,130,"All";
                case 11:    callsub Job_Changing,4019,99,70,130,"All";
                case 12:    callsub Job_Changing,4021,99,70,130,"All";
                case 13:    callsub Job_Changing,4020,99,70,130,"All";
                case 14:    goto Main_Menu;
            }
     
    TransThirdJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Rune Knight^000000",
                    "^000000Warlock^000000",
                    "^000000Ranger^000000",
                    "^000000Arch Bishop^000000",
                    "^000000Mechanic^000000",
                    "^000000Guillotine Cross^000000",
                    "^000000Royal Guard^000000",
                    "^000000Sorcerer^000000",
                    ( Sex == 1 )?"":"^000000Wanderer^000000",        
                    ( Sex == 0 )?"":"^000000Minstrel^000000",    
                    "^000000Shura^000000",
                    "^000000Genetic^000000",
                    "^000000Shadow Chaser^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
                
                case 1:    callsub Job_Changing,4060,99,70,200,"All";
                case 2:    callsub Job_Changing,4061,99,70,200,"All";
                case 3:    callsub Job_Changing,4062,99,70,200,"All";
                case 4:    callsub Job_Changing,4063,99,70,200,"All";
                case 5:    callsub Job_Changing,4064,99,70,200,"All";
                case 6:    callsub Job_Changing,4065,99,70,200,"All";
                case 7:    callsub Job_Changing,4073,99,70,200,"All";
                case 8:    callsub Job_Changing,4074,99,70,200,"All";
                case 9:    callsub Job_Changing,4076,99,70,200,"All";
                case 10:    callsub Job_Changing,4075,70,70,200,"All";
                case 11:    callsub Job_Changing,4077,70,70,200,"All";
                case 12:    callsub Job_Changing,4078,70,70,200,"All";
                case 13:    callsub Job_Changing,4079,70,70,200,"All";
                case 14:    goto Main_Menu;
            }
                    
    ExpandedJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Super Novice^000000",
                    "^000000Gunslinger^000000",
                    "^000000Ninja^000000",
                    "^000000Takewon^000000",
                    "^000000Star Gladiator^000000",
                    "^000000Soul Linker^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
     
                case 1:    callsub Job_Changing,23,99,99,110,"All";
                case 2:    callsub Job_Changing,24,99,50,600,"All";
                case 3:    callsub Job_Changing,25,99,50,60,"All";
                case 4:    callsub Job_Changing,4046,99,50,60,"All";
                case 5:    callsub Job_Changing,4047,99,50,110,"All";
                case 6:    callsub Job_Changing,4049,99,50,110,"All";
                case 7:    goto Main_Menu;
            }
     
    BabyJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Baby Swordman^000000",
                    "^000000Baby Magician^000000",
                    "^000000Baby Archer^000000",
                    "^000000Baby Acolyte^000000",
                    "^000000Baby Merchant^000000",
                    "^000000Baby Thief^000000",
                    "^000000Baby Knight^000000",
                    "^000000Baby Priest^000000",
                    "^000000Baby Wizard^000000",
                    "^000000Baby Blacksmith^000000",
                    "^000000Baby Hunter^000000",
                    "^000000Baby Assassin^000000",
                    "^000000Baby Crusader^000000",
                    "^000000Baby Monk^000000",
                    "^000000Baby Sage^000000",
                    "^000000Baby Rogue^000000",
                    "^000000Baby Alchemist^000000",
                    ( Sex == 1 )?"":"^000000Baby Dancer^000000",        
                    ( Sex == 0 )?"":"^000000Baby Bard^000000",    
                    "^000000Baby Baby^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
                
                case 1:    callsub Job_Changing,4024,99,50,60,"All";
                case 2:    callsub Job_Changing,4025,99,50,60,"All";
                case 3:    callsub Job_Changing,4026,99,50,60,"All";
                case 4:    callsub Job_Changing,4027,99,50,60,"All";
                case 5:    callsub Job_Changing,4028,99,50,60,"All";
                case 6:    callsub Job_Changing,4029,99,50,60,"All";
                case 7:    callsub Job_Changing,4030,99,50,110,"All";
                case 8:    callsub Job_Changing,4031,99,50,110,"All";
                case 9:    callsub Job_Changing,4032,99,50,110,"All";
                case 10:    callsub Job_Changing,4033,99,50,110,"All";
                case 11:    callsub Job_Changing,4034,99,50,110,"All";
                case 12:    callsub Job_Changing,4035,99,50,110,"All";
                case 13:    callsub Job_Changing,4037,99,50,110,"All";
                case 14:    callsub Job_Changing,4038,99,50,110,"All";
                case 15:    callsub Job_Changing,4039,99,50,110,"All";
                case 16:    callsub Job_Changing,4040,99,50,110,"All";
                case 17:    callsub Job_Changing,4041,99,50,110,"All";
                case 18:    callsub Job_Changing,4043,99,50,110,"All";
                case 19:    callsub Job_Changing,4042,99,50,110,"All";
                case 20:    callsub Job_Changing,4045,99,50,110,"All";
                case 21:    goto Main_Menu;
            }
            
    BabyThirdJob_Classes:
        mes .npcname$;
        mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
        next;
        switch(select("^000000Baby Rune Knight^000000",
                    "^000000Baby Warlock^000000",
                    "^000000Baby Ranger^000000",
                    "^000000Baby Arch Bishop^000000",
                    "^000000Baby Mechanic^000000",
                    "^000000Baby Guillotine Cross^000000",
                    "^000000Baby Royal Guard^000000",
                    "^000000Baby Sorcerer^000000",
                    ( Sex == 0 )?"":"^000000Baby Wanderer^000000",        
                    ( Sex == 1 )?"":"^000000Baby Minstrel^000000",    
                    "^000000Baby Shura^000000",
                    "^000000Baby Genetic^000000",
                    "^000000Baby Shadow Chaser^000000",
                    "^FF0000Back^000000")) {
     
    // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;    
                
                case 1:    callsub Job_Changing,4096,99,70,200,"All";
                case 2:    callsub Job_Changing,4097,99,70,200,"All";
                case 3:    callsub Job_Changing,4098,99,70,200,"All";
                case 4:    callsub Job_Changing,4099,99,70,200,"All";
                case 5:    callsub Job_Changing,4100,99,70,200,"All";
                case 6:    callsub Job_Changing,4101,99,70,200,"All";
                case 7:    callsub Job_Changing,4102,99,70,200,"All";
                case 8:    callsub Job_Changing,4103,99,70,200,"All";
                case 9:    callsub Job_Changing,4105,99,70,200,"All";
                case 10:    callsub Job_Changing,4104,99,70,200,"All";
                case 11:    callsub Job_Changing,4106,99,70,200,"All";
                case 12:    callsub Job_Changing,4107,99,70,200,"All";
                case 13:    callsub Job_Changing,4108,99,70,200,"All";
                case 14:    goto Main_Menu;
            }
     
    Job_Changing:
            mes .npcname$;
            mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000.";
            if (compare(getarg(4),"All")){    announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00;    }
            if (compare(getarg(4),"Map")){    announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00;    }
            if (compare(getarg(4),"Area")){    announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00;    }
            if (compare(getarg(4),"Self")){    announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00;    }
            jobchange getarg(0);
            set BaseLevel,getarg(1);
            set JobLevel,getarg(2);
            resetskill;
            resetstatus;
            //set SkillPoint,getarg(3);
            if ( .Allskills == 1 ){
                atcommand "@allskills";
                set SkillPoint,0;
            }
            percentheal 100,100;
            if ( .Based == 0 ){    set #ClassHelper,1;    }
            if ( .Based == 1 ){    set ClassHelper,1;    }
            //warp "prontera",0,0;
            close;
        
    Classes_info:
        mes .npcname$;
        mes "=====[^000000 Swordman Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Archer Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Mage Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Thief Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Acolyte Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Merchant Classes ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Super Novice ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Gunslinger ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Ninja ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Taekwon ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. ";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Star Gladiator ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power.";
        mes " ^FF0000________________________________^000000";
        next;
        mes .npcname$;
        mes "=====[^000000 Soul Linker ^000000]=====";
        mes " ^FF0000________________________________^000000";
        mes "^4EEE94Description :^000000";
        mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability.";
        mes " ^FF0000________________________________^000000";
        next;
        goto Main_Menu;
    }
     


  9. 4 hours ago, anacondaq said:

    you need zero exe + zero client, I have zero experience with this :) Not even tried before (because it's out of my interest). But maybe in very near future (maybe after a month) I will try to do that. If not forget. I think it wont be hard to do. Sorry, but I can't help you.

     

     

    readme.txt

    Inside emulator /doc/ folder read it.

    Wiki of hercules

    Ideally script_commands.txt (very long file, but please read it, it will explain everything)

     

    I don't know, It should. If not try /showname in game (in chat). I tried - and it worked. But even if it does not work. you can always download or open 05_folder from the RO Offline Pack, and open Nemo Patcher and patch again the exe with patches that you wish to see. 

     

    Please try latest full kRO client by the link in the first post. 

     

    What is data.grf? It's archive (like rar, or zip) of files inside /data/ folder.

    What is .lua or lub? Lua = uncompiled lub file. Lub it's compiled.

    Lua you can easy open with text editor and read what is written here, lub you can't open and you will see hex codes (byte code).

    BUT! There is a trick inside game client to load lub files always first over lua files. So if you can't find lua file, try to open lub file with GRF Editor, it has built-in lub  to lua decompiler. Also about other files - i do not remember, sorry. Ideally if you will start to use SDE (server database editor) and inside GUI will add all what you want. If not - try to experiment and do not afraid to break files (always do backups first). And try to play with files, edit, copy-paste lines, and you will get what is related for what. Also you can ask community for help. 

     

     

     

    As you see on your screenshot you have denied access to your user inside emulator with name herc_PRE_user which trying to connect to localhost (your PC database), but something wrong.

    What can be wrong?
    Maybe the SQL server offlien (try to restart)

    Maybe you have installed some mysql server (you should not do that, because inside Open Server already built-in mysql server).

    If nothing helps - you can always re-download pack by links in the first post where everything works out the box. 

     

     

     

    check herc wiki, and try to use google with next query: google.com -> "site:herc.ws how to change drop rate".

    But I did answer for most common questions inside readme.md already. Try to open the file with any text editor.

    Alternatively you can install VSCode (editor by Microsoft) and open readme.md with markdown syntax high lite and you will see that everything structured and explained for newbies. 

    I think you don't have installed Microsoft C++ Redistributables. Try to open 08_ folder inside the pack root folder, and install for your OS or x64.exe or x86.exe which contains all C++ Redistributables by Microsoft. Usually the OpenServer require these libs to be installed. 

     

    Find and edit towninfo.lub or data\luafiles514\lua files\signboardlist.lub

    Please read readme.md and watch youtube video.

    Do not skip anything, because this is bare minimul to guarantee that everything will work fine out the box. Otherwise you will have problems like that. Always restart your PC before trying to launch the game server. On your screenshot looks like you have double servers running or port blocked (rarely happens, busy by some app).

     

     

     

    npc/custom/support_me.txt you can rename it, or delete

     

    You don't need to compile the emulator, it's already pre-compiled by me in debug mode. But even if you did it, the error on the screen not related to compilation. The error on the screen related to data.grf and your kRO client. Please download full kro client by links in the first post, and everything will works fine, also do not mix different clients, they are not compatible. For example I support the topic since 2016? Or like that, and there was dozens of different versions with different client versions and date releases also with different client files for full kRO client, but all that you need to know - they almos always not compatible. So, if you wish to run RO offline -> use all files provided in the one folder, do not mix them. (that means you need to download ~4gb)

     

     

    I think this is fixed in 20200419

    Optionally you can fix it by importing upgrade files into your database. How to do it -> readme.md

     

    ??

    Check the first topic links again. 

     

     

     

    green flag -> terminal -> mysql -uroot -> use herc_prere_db; update `char` SET hair=0, hair_style=0, cloth_style=0 WHERE account_id > 1;

     

     

    read readme.md _M + edit login table in your database with phpmyadmin.

     

     

     

     

     

    ??? read readme.md.

     

    Wew, try to play with patches again. Also note: already applied patches you can find in the nemo folder in txt file (load profile (this txt file)) and you will see all applied patches to the exe inside the package. Also you can try to play with these patches. What about auras - I do not know, to be honest - do not remember. 

     

    Usually you don't need to do this if you don't know what is it.

    Newbie pack - just entry point into the emulator software development, to make everything work, like a playground, and only after learning something new you will do some things. Upgrading emulator by yourself - means also you need after each file change inside /src/ folder to re-compile your emulator. Do you know how to do it? So, if you know how to compile -> you should to know how to use git.

    Solving merge conflicts - not an easy thing to do, and require some deep understanding what is going on here. Since 20200419 version of the RO offline, you can always do git reset --hard command, and it will destroy all changes that will block your upgarde process. But I do not recommend to do it, because you can potentially lost your some custom script (that you will made or edit by yourself).

     

     

    If you will find more places like that what possible to fix, i will happy to provide update with fixes in the next release. I just need maps where problems occurs. You can use weediffcache tool for working with mapcache. 

     

     

    my profile used in nemo inside nemo folder (exe folder). Just try to open different folder, you will find the small file with all applied patches (it's just .txt file).

     

    the fix inside 20200419 (link in the top message). But optionally you can fix it by inserting requested sql files inside your game database with phpmyadmin for example. 

     

    First of all -> not from me, i do not sell any vpses. Second -> it's just a guide where super simple toolkit for explaining how setup everything with images and with almost no efforts. Third -> about what patch are you talk about? Please explain. If you make changes on your server -> you need restart your server for apply these changes. Or alternatively you can use technical admin commands for restarting on the live server scripts, or battle conf files, or db files, or item database, or mob database. Please open script_commands.txt (search `@reload` command) (@reloaditemdb, @reloadscript @reloadmobdb, @reloadbattleconf) and so on.

     

    no, without re-compiling impossible to change the behavior of the skill. 

     

    version of nemo - always latest, even now (v20200419 with latest hash available on gitlab).

    Patches applied inside nemo you can find inside NEMO folder (exe folder or like that) it's .txt file i forgot how it called.

    It will be stored near the patched Exe.

     

    Please try to use SourceTree app it's GUI for git. It will be much easier. 

     

    This is question not for me. I saw several pull request with some not bad content, like lasagna, but progress still very slow.

    The  very good pros of herc.ws is the emulator technically far far ahead of rathena in technical aspect, but some really required by some people content are absent, and implementation of the content (technical part) already here, only left script, mob, warp part... 

     

    Try to use SourceTree app. Or GitKraken.

     

    Update v20200419

    TODO: 

    Inside discord i suggest to write:
    1. what is most missing content inside the package (maybe you looking for especially something, but you can't find it inside the package)

    2. Where is your most common mistakes / problems that you face with the RO Offline Pack?

    3. Bugreports / suggestions appreciated. 

     

    Note: usually I do not answer on herc.ws board frequently, I visit the forum rare, and answer rare. Usually I do upgraes for the package once per few months. The package is stand-alone and you can upgrade it always by yourself.

    4 hours ago, anacondaq said:

    you need zero exe + zero client, I have zero experience with this :) Not even tried before (because it's out of my interest). But maybe in very near future (maybe after a month) I will try to do that. If not forget. I think it wont be hard to do. Sorry, but I can't help you.

     

     

    readme.txt

    Inside emulator /doc/ folder read it.

    Wiki of hercules

    Ideally script_commands.txt (very long file, but please read it, it will explain everything)

     

    I don't know, It should. If not try /showname in game (in chat). I tried - and it worked. But even if it does not work. you can always download or open 05_folder from the RO Offline Pack, and open Nemo Patcher and patch again the exe with patches that you wish to see. 

     

    Please try latest full kRO client by the link in the first post. 

     

    What is data.grf? It's archive (like rar, or zip) of files inside /data/ folder.

    What is .lua or lub? Lua = uncompiled lub file. Lub it's compiled.

    Lua you can easy open with text editor and read what is written here, lub you can't open and you will see hex codes (byte code).

    BUT! There is a trick inside game client to load lub files always first over lua files. So if you can't find lua file, try to open lub file with GRF Editor, it has built-in lub  to lua decompiler. Also about other files - i do not remember, sorry. Ideally if you will start to use SDE (server database editor) and inside GUI will add all what you want. If not - try to experiment and do not afraid to break files (always do backups first). And try to play with files, edit, copy-paste lines, and you will get what is related for what. Also you can ask community for help. 

     

     

     

    As you see on your screenshot you have denied access to your user inside emulator with name herc_PRE_user which trying to connect to localhost (your PC database), but something wrong.

    What can be wrong?
    Maybe the SQL server offlien (try to restart)

    Maybe you have installed some mysql server (you should not do that, because inside Open Server already built-in mysql server).

    If nothing helps - you can always re-download pack by links in the first post where everything works out the box. 

     

     

     

    check herc wiki, and try to use google with next query: google.com -> "site:herc.ws how to change drop rate".

    But I did answer for most common questions inside readme.md already. Try to open the file with any text editor.

    Alternatively you can install VSCode (editor by Microsoft) and open readme.md with markdown syntax high lite and you will see that everything structured and explained for newbies. 

    I think you don't have installed Microsoft C++ Redistributables. Try to open 08_ folder inside the pack root folder, and install for your OS or x64.exe or x86.exe which contains all C++ Redistributables by Microsoft. Usually the OpenServer require these libs to be installed. 

     

    Find and edit towninfo.lub or data\luafiles514\lua files\signboardlist.lub

    Please read readme.md and watch youtube video.

    Do not skip anything, because this is bare minimul to guarantee that everything will work fine out the box. Otherwise you will have problems like that. Always restart your PC before trying to launch the game server. On your screenshot looks like you have double servers running or port blocked (rarely happens, busy by some app).

     

     

     

    npc/custom/support_me.txt you can rename it, or delete

     

    You don't need to compile the emulator, it's already pre-compiled by me in debug mode. But even if you did it, the error on the screen not related to compilation. The error on the screen related to data.grf and your kRO client. Please download full kro client by links in the first post, and everything will works fine, also do not mix different clients, they are not compatible. For example I support the topic since 2016? Or like that, and there was dozens of different versions with different client versions and date releases also with different client files for full kRO client, but all that you need to know - they almos always not compatible. So, if you wish to run RO offline -> use all files provided in the one folder, do not mix them. (that means you need to download ~4gb)

     

     

    I think this is fixed in 20200419

    Optionally you can fix it by importing upgrade files into your database. How to do it -> readme.md

     

    ??

    Check the first topic links again. 

     

     

     

    green flag -> terminal -> mysql -uroot -> use herc_prere_db; update `char` SET hair=0, hair_style=0, cloth_style=0 WHERE account_id > 1;

     

     

    read readme.md _M + edit login table in your database with phpmyadmin.

     

     

     

     

     

    ??? read readme.md.

     

    Wew, try to play with patches again. Also note: already applied patches you can find in the nemo folder in txt file (load profile (this txt file)) and you will see all applied patches to the exe inside the package. Also you can try to play with these patches. What about auras - I do not know, to be honest - do not remember. 

     

    Usually you don't need to do this if you don't know what is it.

    Newbie pack - just entry point into the emulator software development, to make everything work, like a playground, and only after learning something new you will do some things. Upgrading emulator by yourself - means also you need after each file change inside /src/ folder to re-compile your emulator. Do you know how to do it? So, if you know how to compile -> you should to know how to use git.

    Solving merge conflicts - not an easy thing to do, and require some deep understanding what is going on here. Since 20200419 version of the RO offline, you can always do git reset --hard command, and it will destroy all changes that will block your upgarde process. But I do not recommend to do it, because you can potentially lost your some custom script (that you will made or edit by yourself).

     

     

    If you will find more places like that what possible to fix, i will happy to provide update with fixes in the next release. I just need maps where problems occurs. You can use weediffcache tool for working with mapcache. 

     

     

    my profile used in nemo inside nemo folder (exe folder). Just try to open different folder, you will find the small file with all applied patches (it's just .txt file).

     

    the fix inside 20200419 (link in the top message). But optionally you can fix it by inserting requested sql files inside your game database with phpmyadmin for example. 

     

    First of all -> not from me, i do not sell any vpses. Second -> it's just a guide where super simple toolkit for explaining how setup everything with images and with almost no efforts. Third -> about what patch are you talk about? Please explain. If you make changes on your server -> you need restart your server for apply these changes. Or alternatively you can use technical admin commands for restarting on the live server scripts, or battle conf files, or db files, or item database, or mob database. Please open script_commands.txt (search `@reload` command) (@reloaditemdb, @reloadscript @reloadmobdb, @reloadbattleconf) and so on.

     

    no, without re-compiling impossible to change the behavior of the skill. 

     

    version of nemo - always latest, even now (v20200419 with latest hash available on gitlab).

    Patches applied inside nemo you can find inside NEMO folder (exe folder or like that) it's .txt file i forgot how it called.

    It will be stored near the patched Exe.

     

    Please try to use SourceTree app it's GUI for git. It will be much easier. 

     

    This is question not for me. I saw several pull request with some not bad content, like lasagna, but progress still very slow.

    The  very good pros of herc.ws is the emulator technically far far ahead of rathena in technical aspect, but some really required by some people content are absent, and implementation of the content (technical part) already here, only left script, mob, warp part... 

     

    Try to use SourceTree app. Or GitKraken.

     

    Update v20200419

    TODO: 

    Inside discord i suggest to write:
    1. what is most missing content inside the package (maybe you looking for especially something, but you can't find it inside the package)

    2. Where is your most common mistakes / problems that you face with the RO Offline Pack?

    3. Bugreports / suggestions appreciated. 

     

    Note: usually I do not answer on herc.ws board frequently, I visit the forum rare, and answer rare. Usually I do upgraes for the package once per few months. The package is stand-alone and you can upgrade it always by yourself.

    @anacondaq wow! thank you for answering our questions and keeping us updated..your the best. god bless 


  10. Hi all, i'm try to make my own script ( i am a newbie ) this is my first time so be gentle with me..

    I want to announce when player kills another player and when die reset the kills to 0, i tried to use OnPCDieEvent: but it also count when the other player dies..is there a way to get only when you die?

    -	script	A_A	-1,{
    end;
    OnPCKillEvent:
    dispbottom "You got "+ #Kill +" and "+ strcharinfo(0) +" ", 0xf7ae57;
    set #Kill, #Kill + 1;
    if(#Kill == 3){
    announce (""+ strcharinfo(0) +"is on a KILLING SPREE",bc_self | bc_yellow);
    }
    if(#Kill == 4){
    announce (""+ strcharinfo(0) +"is DOMINATING!",bc_self | bc_yellow);
    
    }
    if(#Kill == 5){
    announce (""+ strcharinfo(0) +"has a MEGA KILL!",bc_self | bc_yellow);
    
    }
    if(#Kill == 6){
    announce (""+ strcharinfo(0) +"is UNSTOPPABLE!!",bc_self | bc_yellow);
    
    }
    if(#Kill <= 7){
    announce (""+ strcharinfo(0) +"is WICKED SICK!!!",bc_self | bc_yellow);
    
    }
    }
    
    
    }

     


  11. Quote

        This command is deprecated and it will be removed in a future update. Please see the script documentation for an alternative.

        93:         mes "Are you sure?";
        94:                 if(select("No:Yes")==1) goto L_exit;
        95:                 set counts,1;
    *   96:                 specialeffect2 EF_BEGINASURA;
            ~~~~~~~~~~~~~~~~^
        97:                 dispbottom "Pvp System Enabled";
        98:                 dispbottom "[Pvp System]  You currently have "+#PvpPoints+" Pvp Point(s).";
        99:                 close;

    will be removed in a future update.? do i have to change it or i can leave it..

×
×
  • Create New...

Important Information

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