Jump to content

Mhalicot

Community Contributors
  • Content Count

    1971
  • Joined

  • Last visited

  • Days Won

    37

Posts posted by Mhalicot


  1. So anyone have a solution to this problem? I've added everything in accessoryid.lub, accname.lub, and accname_eng.lub

     

    Also in itemInfo.lub I've added my item. But everytime I run my exe I get the following error(s), client loads properly afterwards.

     

    And when I add the item to item_db2.conf, nothing gets loaded in the map-server but 0 entries

     

    Make sure that you add your custom item ouside the /* */ sign.. this is a common mistakes when using item_db2.conf. or please share your item_db2.conf?


  2.  

    ~ I did not really know if i should post this here or the Database section,

    But i assumed that fixing the skills require some src edits that are

    far beyond my knowledge. If anyone can help me out with any of these, Its

    really much appreciated <3

     

    Job Skills

     

    Song and Dance effect only lasts for 10 seconds and disappears even if still in the song / dance area

    Aqua 3 and Ventus 3 Defensive modes don't work.

    Expiatio (Archbishop Skill) doesn't have an icon, doesn't have any effect.

    Warmer (Sorcerer Skill) doesn't have an icon.

    Warmer (Sorcerer Skill) heals monster. 

    Frigg's Song (Bard and Dancer Skill) description said consumes Crystalized Teardrops, but consumes Regrettable Tears

    Abracadabra (Sorcerer Skill) only summons old MvP (none past Louyang Update) 

    Full Throttle Buff and Rebound Debuff icons shows symbols instead of words

     

    Homunculus Skills

    Eleanor's Offensive Skills always misses, even to dummies with 1 agi. 

    Sera's Pain Killer doesn't work

     

     

    It is better to post it in Buck Tracker section so that our developers can easily take a look at it.. please post accordingly.


  3.  

    I tried to add the "@afk" plugin...I use linux system, so I just put the afk.c at src/plugins and recompile...

     

    But when I turn on the emulator I get the warning "HPM: fail to load plugin, skipping..."

     

    When you recompile the plugins did you receive any error?


  4. Hello,

     

    I'd made some modification in your script because some if will be deleted in future. see details Deprecation of Legacy Script Commands. But I haven't test it yet.

    //==============================================================================////= 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::OnMenu"; },{},{}-	script	ClassHelper	-1,{OnInit:// -- Configuration Option.npcname$ = "[ ^0000FF Class Helper ^000000 ]";.InfoMenu =1;                    // Classes Informations Option [ 0 - Disable / 1 - Enable ].1stClassMenu =1;                // First Job Class Option [ 0 - Disable / 1 - Enable ].2ndClassMenu = 1;                // Second Job Class Option [ 0 - Disable / 1 - Enable ].High1stClassMenu = 1;            // High 1st Class Option [ 0 - Disable / 1 - Enable ].Trans2ndClassMenu = 1;            // Transcendent Class Option [ 0 - Disable / 1 - Enable ].Trans3rdClassMenu = 1;            // Third Job Class Option [ 0 - Disable / 1 - Enable ].ExpandedClassMenu = 1;            // Expanded Class Option [ 0 - Disable / 1 - Enable ].BabyClassMenu = 1;                // Baby Job Class Option [ 0 - Disable / 1 - Enable ].Baby3rdClassMenu = 1;            // Baby Third Job Class Option [ 0 - Disable / 1 - Enable ].Allskills = 0;                    // Complete Skills Option [ 0 - Disable / 1 - Enable ]// -- Usable for Only 1 Time.Based = 1;                        // [ 0 - Account Based  / 1 - Character Based ]end;OnMenu:    if( ClassHelper == 1 || #ClassHelper == 1 ) end;    mes .npcname$;    mes "PLEASE CHOOSE YOUR JOB...";    mes " ^FF0000________________________________^000000";    mes "What do you want to be?";    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)?"":"^4EEE94Classes Information^000000",                ( !.1stClassMenu)?"":"^0000FFFirst Job Classes^000000",                ( !.2ndClassMenu)?"":"^0000FFSecond Job Classes^000000",                    ( !.High1stClassMenu)?"":"^0000FFHigh First Job Classes^000000",                    ( !.Trans2ndClassMenu)?"":"^0000FFTranscendent Job Classes^000000",                    ( !.Trans3rdClassMenu)?"":"^0000FFThird Job Classes^000000",                        ( !.ExpandedClassMenu)?"":"^0000FFExpanded Job Classes^000000",                    ( !.BabyClassMenu)?"":"^0000FFBaby Normal Job Classes^000000",                        ( !.Baby3rdClassMenu)?"":"^0000FFBaby Third Job Classes^000000",                        "^FF0000Sorry, I admire nobody....^000000")) {                    case 1:		callsub Classes_info;                    case 2:		callsub FirstJob_Classes;                    case 3:		callsub SecondJob_Classes;                    case 4:		callsub HighFirstJob_Classes;                    case 5:		callsub TransSecondJob_Classes;                    case 6:		callsub TransThirdJob_Classes;                    case 7:		callsub ExpandedJob_Classes;                    case 8:		callsub BabyJob_Classes;                    case 9:		callsub BabyThirdJob_Classes;                    case 10:                                    if (!.Based)	#ClassHelper = 1;                            else	ClassHelper = 1;                            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("^76EE00Swordman^000000",                "^76EE00Magician^000000",                "^76EE00Archer^000000",                "^76EE00Acolyte^000000",                "^76EE00Merchant^000000",                "^76EE00Thief^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                case 1:    callsub Job_Changing,1,174,50,60,"All";            case 2:    callsub Job_Changing,2,174,50,60,"All";            case 3:    callsub Job_Changing,3,174,50,60,"All";            case 4:    callsub Job_Changing,4,174,50,60,"All";            case 5:    callsub Job_Changing,5,174,50,60,"All";            case 6:    callsub Job_Changing,6,174,50,60,"All";            case 7:    callsub OnMenu;        }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("^76EE00High Swordsman^000000",                "^76EE00High Magician^000000",                "^76EE00High Archer^000000",                "^76EE00High Acolyte^000000",                "^76EE00High Merchant^000000",                "^76EE00High Thief^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                case 1:    callsub Job_Changing,4002,174,50,60,"All";            case 2:    callsub Job_Changing,4003,174,50,60,"All";            case 3:    callsub Job_Changing,4004,174,50,60,"All";            case 4:    callsub Job_Changing,4005,174,50,60,"All";            case 5:    callsub Job_Changing,4006,174,50,60,"All";            case 6:    callsub Job_Changing,4007,174,50,60,"All";            case 7:    callsub OnMenu;        }        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("^76EE00Knight^000000",                "^76EE00Priest^000000",                "^76EE00Wizard^000000",                "^76EE00Blacksmith^000000",                "^76EE00Hunter^000000",                "^76EE00Assassin^000000",                "^76EE00Crusader^000000",                "^76EE00Monk^000000",                "^76EE00Sage^000000",                "^76EE00Rogue^000000",                "^76EE00Alchemist^000000",                ( Sex == 0 )?"":"^76EE00Dancer^000000",                        ( Sex == 1 )?"":"^76EE00Bard^000000",                    "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                            case 1:    callsub Job_Changing,7,174,50,110,"All";            case 2:    callsub Job_Changing,8,174,50,110,"All";            case 3:    callsub Job_Changing,9,174,50,110,"All";            case 4:    callsub Job_Changing,10,174,50,110,"All";            case 5:    callsub Job_Changing,11,174,50,110,"All";            case 6:    callsub Job_Changing,12,174,50,110,"All";            case 7:    callsub Job_Changing,14,174,50,110,"All";            case 8:    callsub Job_Changing,15,174,50,110,"All";            case 9:    callsub Job_Changing,16,174,50,110,"All";            case 10:    callsub Job_Changing,17,174,50,110,"All";            case 11:    callsub Job_Changing,18,174,50,110,"All";            case 12:    callsub Job_Changing,20,174,50,110,"All";            case 13:    callsub Job_Changing,19,174,50,110,"All";            case 14:    callsub OnMenu;        }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("^76EE00Lord Knight^000000",                "^76EE00High Priest^000000",                "^76EE00High Wizard^000000",                "^76EE00Whitesmith^000000",                "^76EE00Sniper^000000",                "^76EE00Assassin Cross^000000",                "^76EE00Paladin^000000",                "^76EE00Champion^000000",                "^76EE00Professor^000000",                "^76EE00Stalker^000000",                "^76EE00Creator^000000",                ( Sex == 0 )?"":"^76EE00Gypsy^000000",                        ( Sex == 1 )?"":"^76EE00Clowm^000000",                    "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                            case 1:    callsub Job_Changing,4008,174,70,130,"All";            case 2:    callsub Job_Changing,4009,174,70,130,"All";            case 3:    callsub Job_Changing,4010,174,70,130,"All";            case 4:    callsub Job_Changing,4011,174,70,130,"All";            case 5:    callsub Job_Changing,4012,174,70,130,"All";            case 6:    callsub Job_Changing,4013,174,70,130,"All";            case 7:    callsub Job_Changing,4015,174,70,130,"All";            case 8:    callsub Job_Changing,4016,174,70,130,"All";            case 9:    callsub Job_Changing,4017,174,70,130,"All";            case 10:    callsub Job_Changing,4018,174,70,130,"All";            case 11:    callsub Job_Changing,4019,174,70,130,"All";            case 12:    callsub Job_Changing,4021,174,70,130,"All";            case 13:    callsub Job_Changing,4020,174,70,130,"All";            case 14:    callsub OnMenu;        }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("^76EE00Rune Knight^000000",                "^76EE00Warlock^000000",                "^76EE00Ranger^000000",                "^76EE00Arch Bishop^000000",                "^76EE00Mechanic^000000",                "^76EE00Guillotine Cross^000000",                "^76EE00Royal Guard^000000",                "^76EE00Sorcerer^000000",                ( Sex == 0 )?"":"^76EE00Wanderer^000000",                        ( Sex == 1 )?"":"^76EE00Minstrel^000000",                    "^76EE00Shura^000000",                "^76EE00Genetic^000000",                "^76EE00Shadow Chaser^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                            case 1:    callsub Job_Changing,4060,174,70,210,"All";            case 2:    callsub Job_Changing,4061,174,70,210,"All";            case 3:    callsub Job_Changing,4062,174,70,210,"All";            case 4:    callsub Job_Changing,4063,174,70,210,"All";            case 5:    callsub Job_Changing,4064,174,70,210,"All";            case 6:    callsub Job_Changing,4065,174,70,210,"All";            case 7:    callsub Job_Changing,4073,174,70,210,"All";            case 8:    callsub Job_Changing,4074,174,70,210,"All";            case 9:    callsub Job_Changing,4076,174,70,210,"All";            case 10:    callsub Job_Changing,4075,174,70,210,"All";            case 11:    callsub Job_Changing,4077,174,70,210,"All";            case 12:    callsub Job_Changing,4078,174,70,210,"All";            case 13:    callsub Job_Changing,4079,174,70,210,"All";            case 14:    callsub OnMenu;        }                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("^76EE00Super Novice^000000",                "^76EE00Gunslinger^000000",                "^76EE00Ninja^000000",                "^76EE00Takewon^000000",                "^76EE00Star Gladiator^000000",                "^76EE00Soul Linker^000000",                ( Sex == 0 )?"":"^76EE00Kagerou^000000",                        ( Sex == 1 )?"":"^76EE00Oboro^000000",                "^76EE00Extended Super Novice^000000",                                "^76EE00Rebellion^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                case 1:    callsub Job_Changing,23,174,99,110,"All";            case 2:    callsub Job_Changing,24,174,50,600,"All";            case 3:    callsub Job_Changing,25,174,50,60,"All";            case 4:    callsub Job_Changing,4046,174,50,60,"All";            case 5:    callsub Job_Changing,4047,174,50,110,"All";            case 6:    callsub Job_Changing,4049,174,50,110,"All";            case 7:    callsub Job_Changing,4212,174,100,130,"All";            case 8:    callsub Job_Changing,4211,174,100,130,"All";            case 9:    callsub Job_Changing,4190,174,100,130,"All";            case 10:    callsub Job_Changing,4215,174,100,130,"All";            case 11:    callsub OnMenu;        }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("^76EE00Baby Swordsman^000000",                "^76EE00Baby Magician^000000",                "^76EE00Baby Archer^000000",                "^76EE00Baby Acolyte^000000",                "^76EE00Baby Merchant^000000",                "^76EE00Baby Thief^000000",                "^76EE00Baby Knight^000000",                "^76EE00Baby Priest^000000",                "^76EE00Baby Wizard^000000",                "^76EE00Baby Blacksmith^000000",                "^76EE00Baby Hunter^000000",                "^76EE00Baby Assassin^000000",                "^76EE00Baby Crusader^000000",                "^76EE00Baby Monk^000000",                "^76EE00Baby Sage^000000",                "^76EE00Baby Rogue^000000",                "^76EE00Baby Alchemist^000000",                ( Sex == 0 )?"":"^76EE00Baby Dancer^000000",                        ( Sex == 1 )?"":"^76EE00Baby Bard^000000",                    "^76EE00Baby Baby^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                            case 1:    callsub Job_Changing,4024,174,50,60,"All";            case 2:    callsub Job_Changing,4025,174,50,60,"All";            case 3:    callsub Job_Changing,4026,174,50,60,"All";            case 4:    callsub Job_Changing,4027,174,50,60,"All";            case 5:    callsub Job_Changing,4028,174,50,60,"All";            case 6:    callsub Job_Changing,4029,174,50,60,"All";            case 7:    callsub Job_Changing,4030,174,50,110,"All";            case 8:    callsub Job_Changing,4031,174,50,110,"All";            case 9:    callsub Job_Changing,4032,174,50,110,"All";            case 10:    callsub Job_Changing,4033,174,50,110,"All";            case 11:    callsub Job_Changing,4034,174,50,110,"All";            case 12:    callsub Job_Changing,4035,174,50,110,"All";            case 13:    callsub Job_Changing,4037,174,50,110,"All";            case 14:    callsub Job_Changing,4038,174,50,110,"All";            case 15:    callsub Job_Changing,4039,174,50,110,"All";            case 16:    callsub Job_Changing,4040,174,50,110,"All";            case 17:    callsub Job_Changing,4041,174,50,110,"All";            case 18:    callsub Job_Changing,4043,174,50,110,"All";            case 19:    callsub Job_Changing,4042,174,50,110,"All";            case 20:    callsub Job_Changing,4045,174,50,110,"All";            case 21:    callsub OnMenu;        }        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("^76EE00Baby Rune Knight^000000",                "^76EE00Baby Warlock^000000",                "^76EE00Baby Ranger^000000",                "^76EE00Baby Arch Bishop^000000",                "^76EE00Baby Mechanic^000000",                "^76EE00Baby Guillotine Cross^000000",                "^76EE00Baby Royal Guard^000000",                "^76EE00Baby Sorcerer^000000",                ( Sex == 0 )?"":"^76EE00Baby Wanderer^000000",                        ( Sex == 1 )?"":"^76EE00Baby Minstrel^000000",                    "^76EE00Baby Sura^000000",                "^76EE00Baby Genetic^000000",                "^76EE00Baby Shadow Chaser^000000",                "^FF0000Back^000000")) {// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;                            case 1:    callsub Job_Changing,4096,174,70,210,"All";            case 2:    callsub Job_Changing,4097,174,70,210,"All";            case 3:    callsub Job_Changing,4098,174,70,210,"All";            case 4:    callsub Job_Changing,4099,174,70,210,"All";            case 5:    callsub Job_Changing,4100,174,70,210,"All";            case 6:    callsub Job_Changing,4101,174,70,210,"All";            case 7:    callsub Job_Changing,4102,174,70,210,"All";            case 8:    callsub Job_Changing,4103,174,70,210,"All";            case 9:    callsub Job_Changing,4105,174,70,210,"All";            case 10:    callsub Job_Changing,4104,174,70,210,"All";            case 11:    callsub Job_Changing,4106,174,70,210,"All";            case 12:    callsub Job_Changing,4107,174,70,210,"All";            case 13:    callsub Job_Changing,4108,174,70,210,"All";            case 14:    callsub OnMenu;        }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";        SkillPoint = 0;        }        percentheal 100,100;		if (!.Based)	#ClassHelper = 1;		else	ClassHelper = 1;    delitem 20401,1;    dispbottom "Congratulation! Thank you for choosing a Class!.";        dispbottom "Please make your base level 175 to get out of this area..";            close;    Classes_info:    mes .npcname$;    mes "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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 "=====[^76EE00 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;    callsub OnMenu;} 

  5.  

     

    (would be great if it can be done via bindatcommand)

    I don't think you can make one using via bindatcommand unless there is a script command appropriate with it..

     

    so here I make a simple HPM plugin for you..just browse the wiki on how to install it..enjoy.. :D

    // Copyright (c) Hercules Dev Team, licensed under GNU GPL.// See the LICENSE file// Sample Hercules Plugin#include <stdio.h>#include <stdlib.h>#include <string.h>#include "../common/HPMi.h"#include "../common/malloc.h"#include "../common/mmo.h"#include "../common/socket.h"#include "../common/strlib.h"#include "../map/clif.h"#include "../map/pc.h"#include "../map/script.h"#include "../common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) *//* malufett@yourservice */HPExport struct hplugin_info pinfo = {"ATCMD_NO_ATK",  // Plugin nameSERVER_TYPE_MAP,// Which server types this plugin works with?"0.1",   // Plugin versionHPM_VERSION, // HPM Version (don't change, macro is automatically updated)};struct atk_state{int enabled;};ACMD(no_atk) {struct atk_state *data;if(!(data = getFromMSD(sd,0))){  CREATE(data,struct atk_state,1);  data->enabled = 0;  addToMSD(sd,data,0,true);}if(data->enabled){  data->enabled = 0;  clif->message(sd->fd, "You can now attack normally.");}else{  data->enabled = 1;  clif->message(sd->fd, "You are now disabled to attack.");}return true;}int hook_battle_check_target(int retVal, struct block_list *src, struct block_list *target,int *flag){struct map_session_data* sd;struct atk_state *data;struct block_list *s_bl = src;if( retVal != 1 || src->type != BL_PC ) return retVal;if( (s_bl = battle->get_master(src)) == NULL )  s_bl = src;sd = BL_CAST(BL_PC, s_bl);if(sd && *flag&BCT_ENEMY && (data = getFromMSD(sd,0)) && data->enabled)  return 0;return retVal;}HPExport void plugin_init (void) {char *server_type;char *server_name; /* core vars */server_type = GET_SYMBOL("SERVER_TYPE");server_name = GET_SYMBOL("SERVER_NAME");/* core interfaces */battle = GET_SYMBOL("battle");clif = GET_SYMBOL("clif");iMalloc = GET_SYMBOL("iMalloc");/* addAtcommand */addAtcommand("noatk",no_atk); // @noatkaddAtcommand("na",no_atk); // @na/* postHook */addHookPost("battle->check_target",hook_battle_check_target);ShowStatus ("Running HPM Plugin: '"CL_WHITE"%s"CL_RESET"'.n", pinfo.name);}

    :meow:

     

     

    Bro, I am having this error in console after rebuilding:

    >> 

    [Error]: HPM:AddHook Fail! 'ATCMD_NO_ATK' tried to hook to 'battle->check_target
    ' but HPMHooking is disabled!

    not sure if related to this: http://herc.ws/board/topic/7723-building-on-windows-platform-hpm-hooking-errors/#entry46426

     

    Thanks!

     

     

    Simple enable it in conf/plugins.conf

     

    plugins_list: [	/* Enable HPMHooking when plugins in use rely on Hooking */-	//"HPMHooking",+	"HPMHooking",	//"db2sql",	//"sample",	//"other",]
×
×
  • Create New...

Important Information

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