Jump to content

ToiletMaster

Members
  • Content Count

    146
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by ToiletMaster


  1. Hi there everyone.

     

    Just thought i wanted to throw this question out since i'm been wondering for sometime now.

     

    In kRO official server, what is the current population there?

     

    Is it still very active compared to other games?

     

    Thanks !


  2. Just noticed another small issue. Upon using the script.

     

    On the first upgrade itself for Kyrie Elison, it should be nothing for the buffs.

     

    Meaning for the first time you use the healer, it'll provide you Increase AGI 5, and Blessing 5. which is right.

     

    However, when i upgrade Kyrie Elison, it'll state that my current Kyrie Elison is level 5 instead of 0. and upon upgrading it becomes level 6 immediately instead of starting from 0 to 1.

     

    The .min levels were set to 0 so i'm not sure why this doesn't work.


  3.  

    Thanks, i din't know i wasn't suppose to change the default configurations.  However what do i place inside the folder? Do i make a copy of the current file then place inside the temporary folder for it to read the configurations?

     

    Sorry if i'm blur on this part, I've never used the import folder before in rAthena nor any other places.

     

    You're using linux, so I suppose you installed emulator usual way, ie ./configure && make. In such case there should be conf/import folder already. It is created from conf/import-tmpl by make. If it didn't happen, just copy conf/import-tmpl to conf/import. Then you should just move all custom configuration settings to appropriate files in conf/import. For example, if you changed server name in conf/char-server.conf, copy this setting to conf/import/char_conf.txt and revert .conf file to its original state to avoid conflicts when updating.

     

    As for the second part, run git status and check which files are unmerged.

     

    Hi there,

     

    Thanks for the assist!

     

    However do i copy the entire file properties i have inside?

    or example let's say

     

    login server is 192.168.1.1

     

    therefore, i copy that line only or should i copy the entire thing from top to bottom.

     

    Thanks! ( just wanna make sure it's done right before anything goes wrong )

     

    Just found the wiki for this, will check it out.

     

     

     

     

     

    here's my second part

     

     

    git status# On branch master# Your branch is ahead of 'origin/master' by 2 commits.## Untracked files:#   (use "git add <file>..." to include in what will be committed)##	   conf/.grf-files.txt.swp#	   npc/custom/Guildhouse/#	   npc/custom/Stylist/#	   npc/custom/UberHeal.txt#	   npc/custom/add/#	   npc/custom/healer2.txt#	   npc/custom/shops.txtnothing added to commit but untracked files present (use "git add" to track)

  4. First of all, you shouldn't be really making changes to default conf files. That's what conf/import folder is for - it's not under CVS so you should put all your custom configurations settings there.

     

    However, it is not always possible to put your changes to separate files, for example when you make source code edits. In such case, you need to merge your modifications with updates coming from remote repository.

     

    Try doing what the message says. First commit changes to your copy of repository (your working copy is also a fully-featured repository) with git commit, and only then git pull to update. 

     

    That's just what Gepard said. For some more help about committing you can check this post:

     

    http://herc.ws/board/topic/152-obtaining-hercules/?p=1241

     

     

    Thanks, i din't know i wasn't suppose to change the default configurations.  However what do i place inside the folder? Do i make a copy of the current file then place inside the temporary folder for it to read the configurations?

     

    Sorry if i'm blur on this part, I've never used the import folder before in rAthena nor any other places.

     

     

    First do

    Git commit -am"Your Log Message"

    Then

    Git pull

    And you are done with updating.

     

     

    git pullM	   .gitignoreM	   conf/battle/client.confM	   conf/battle/party.confM	   conf/battle/status.confM	   conf/inter-server.confM	   conf/plugins.confM	   db/const.txtM	   db/item_db2.txtM	   db/item_delay.txtM	   db/job_db2.txtM	   db/pre-re/item_db.txtM	   db/pre-re/skill_cast_db.txtM	   db/pre-re/skill_db.txtM	   db/pre-re/skill_require_db.txtM	   db/pre-re/skill_tree.txtM	   db/pre-re/skill_unit_db.txtM	   db/re/item_combo_db.txtM	   db/re/item_db.txtM	   db/re/refine_db.txtM	   db/re/skill_cast_db.txtM	   db/re/skill_db.txtM	   db/re/skill_require_db.txtM	   db/re/skill_tree.txtM	   db/re/skill_unit_db.txtA	   db/sc_config.txtM	   doc/script_commands.txtM	   npc/cities/rachel.txtU	   npc/custom/healer.txtM	   npc/events/halloween_2009.txtM	   npc/events/nguild/nguild_warper.txtM	   npc/instances/NydhoggsNest.txtM	   npc/mobs/citycleaners.txtM	   npc/quests/quests_13_1.txtM	   npc/quests/skills/assassin_skills.txtM	   npc/re/cities/dewata.txtM	   npc/re/jobs/3-1/rune_knight.txtM	   npc/re/quests/quests_brasilis.txtM	   sql-files/item_db.sqlM	   sql-files/item_db2.sqlM	   sql-files/item_db2_re.sqlM	   sql-files/item_db_re.sqlM	   src/char/char.cM	   src/char/char.hM	   src/char/int_auction.cM	   src/char/int_guild.cM	   src/char/int_homun.cM	   src/char/int_mail.cM	   src/char/int_quest.cM	   src/char/inter.cM	   src/char/inter.hM	   src/common/HPM.cM	   src/common/console.cM	   src/common/core.cM	   src/common/db.cM	   src/common/ers.cM	   src/common/ers.hM	   src/common/malloc.cM	   src/common/malloc.hM	   src/common/mmo.hM	   src/common/mutex.cM	   src/common/random.cM	   src/common/socket.cM	   src/common/sql.cM	   src/common/sql.hM	   src/common/timer.cM	   src/common/timer.hM	   src/config/const.hM	   src/login/account_sql.cM	   src/login/ipban_sql.cM	   src/login/login.cM	   src/map/atcommand.cM	   src/map/battle.cM	   src/map/battle.hM	   src/map/battleground.cM	   src/map/buyingstore.cM	   src/map/chat.cM	   src/map/chrif.cM	   src/map/clif.cM	   src/map/clif.hM	   src/map/duel.cM	   src/map/elemental.cM	   src/map/guild.cM	   src/map/homunculus.cM	   src/map/instance.cM	   src/map/intif.cM	   src/map/irc-bot.cM	   src/map/itemdb.cM	   src/map/itemdb.hM	   src/map/log.cM	   src/map/mail.cM	   src/map/map.cM	   src/map/map.hM	   src/map/mapreg_sql.cM	   src/map/mercenary.cM	   src/map/mob.cM	   src/map/npc.cM	   src/map/npc_chat.cM	   src/map/packets.hM	   src/map/party.cM	   src/map/party.hM	   src/map/path.cM	   src/map/pc.cM	   src/map/pc.hM	   src/map/pc_groups.cM	   src/map/pc_groups.hM	   src/map/pet.cM	   src/map/quest.cM	   src/map/script.cM	   src/map/script.hM	   src/map/searchstore.cM	   src/map/skill.cM	   src/map/skill.hM	   src/map/status.cM	   src/map/status.hM	   src/map/storage.cM	   src/map/trade.cM	   src/map/unit.cM	   src/map/vending.cM	   src/plugins/Makefile.inA	   src/plugins/db2sql.cPull is not possible because you have unmerged files.Please, fix them up in the work tree, and then use 'git add/rm <file>'as appropriate to mark resolution, or use 'git commit -a'.

     

    Using your solution gave me this error though. What's wrong currently?


  5. Hi there everyone!


    Currently i'm facing this issue in solving updating my Hercules through my VPS in linux.

     

    Not to mention windows also gives me an error on this part. So both sides are at a bad end.

     

    May i know perhaps what am i currently missing out on this part?

     

    remote: Counting objects: 15, done.remote: Compressing objects: 100% (5/5), done.remote: Total 10 (delta 8), reused 7 (delta 5)Unpacking objects: 100% (10/10), done.From https://github.com/HerculesWS/Hercules   d663d4d..074b15c  master	 -> origin/masterUpdating 6d042dc..074b15cerror: Your local changes to 'conf/inter-server.conf' would be overwritten by merge.  Aborting.Please, commit your changes or stash them before you can merge.

     

    currently i just go to the root of the folder and type git pull that's all.

     

    Is there anything else i'm missing as of now?

     

    Thanks!


  6. I am not entirely sure how does FluxCP, but in general the main risk of 777 is that everyone (you, group and others) read/write/execute the files and folder.

    You might want to assign apache's user to your flux cp installation group

     

    The group is usually called the same as the user account (but you an check your group by doing "groups user" ex: "groups toiletmaster")

    And then ls -lh to check to which group the folders are assigned to (if you changed it)

     

    With the group identified, you can simply do:

    sudo usermod -a -G <group> <apache user> (No </>. ex assuming your httpd daemon runs under user "apache": sudo usermod -a -G toiletmaster apache)

     

    That way you can easily chmod your files/folders to 775 and avoid other users from modifying your files. 

    Thanks for the tip!

     

    However i can't make this happen though.

     

    not sure whether is it my issue or something >_>

     

    still a noob in Linux hahaha


  7. Hi there!

     

    currently there are 2 scripts which are not working in Hercules.

     

    upon job change + platinum skills received, it will immediately stop working. No errors or anything. Just stop working that's all.

     

    Aside from that, one more script which worked in rAthena didn't worked here. Same problem. Upon clicking, it just stops that's all. you need relog before you can do anything else.

     

     

    //===== rAthena Script =======================================//= All-in-One NPC//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.6//===== Description: =========================================//= A compilation of commonly-used NPC scripts.//== Includes job changer, stylist, refiner, card remover,//== coin exchanger, rentals, resetter, platinum skills,//== sex changer, identifier, healer, buffer, and repairman.//============================================================prontera,147,169,6    script    All-in-One NPC    953,{function Get_Platinum; function Equip_Menu;    set .@menu$,"";    for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) {        if (.MenuOption & pow(2,.@i))            set .@menu$, .@menu$+" ~ "+.MainMenu$[.@i];        set .@menu$, .@menu$+":"; }    switch(select(.@menu$)) {        case 1:            function Job_Menu; function A_An;            if (Class > 4049) {                message strcharinfo(0),"No more jobs are available."; close; }            if (checkfalcon() || checkcart() || checkriding() || ismounting()) {                message strcharinfo(0),"Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding.";                close; }            if (.SkillPointCheck && SkillPoint) { message strcharinfo(0),"Please use all your skill points before proceeding."; close; }            set .@eac, eaclass();            set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);            if (.@i > 6 && .@i < 22) {                if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {                    set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;                    message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";                    close; }                if (Class > 21) { Job_Menu(roclass(.@eac|EAJL_THIRD)); close; }                while(1) {                    set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");                    if (.@i==3) close;                    Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); } }            set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);            if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99;            if (Class == Job_Ninja) setarray .@exp[0],.@j1,70;            if (.@exp[0] && .ThirdClass) {                if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {                    set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel;                    message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";                    close; }                Job_Menu(.@exp[0]); close; }            if (.@eac&EAJL_2)                if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {                    message strcharinfo(0),"No more jobs are available."; close; }            if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {                if (JobLevel < .JobReq[0]) message strcharinfo(0),"A job level of "+.JobReq[0]+" is required to change into the 1st Class.";                else if (Class == 4001 && .LastJob && lastJob) Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));                else switch(Class) {                    case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);                    case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);                    case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);                    default: message strcharinfo(0),"An error has occurred."; break; }                close; }            if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) message strcharinfo(0),"No more jobs are available.";            else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) message strcharinfo(0),"A job level of "+.JobReq[1]+" is required to change into the 2nd Class.";            else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) Job_Menu(lastJob+4001);            else Job_Menu(.@j1,.@j2);            close;            function Job_Menu {                if (getargcount() > 1) {                    set .@menu$,"";                    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)                        set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";                    set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; }                while(1) {                    if (getargcount() > 1) {                        set .@i, getarg(select(.@menu$)-1,0);                        if (!.@i) close; }                    else set .@i, getarg(0);                    if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {                        message strcharinfo(0),"A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; }                    else if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777Go back^000000")==1) {                        message strcharinfo(0),"Became "+A_An(jobname(.@i))+"!";                        if (.@i==4001 && .LastJob) set lastJob, Class;                        jobchange .@i;                        if (.@i==4001 || .@i==4023) resetlvl(1);                        specialeffect2 338; specialeffect2 432;                        if (.Platinum) Get_Platinum;                        close; }                    if (getargcount() == 1) return;                } end; }            function Get_Platinum {                skill 142,1,0;                switch(BaseClass) {                    case 0: if (Class !=23) skill 143,1,0; break;                    case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;                    case 2: skill 157,1,0; break;                    case 3: skill 147,1,0; skill 148,1,0; break;                    case 4: skill 156,1,0; break;                    case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;                    case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;                    default: break; }                switch(roclass(eaclass()&EAJ_UPPERMASK)) {                    case 7: skill 1001,1,0; break;                    case 8: skill 1014,1,0; break;                    case 9: skill 1006,1,0; break;                    case 10: skill 1012,1,0; skill 1013,1,0; break;                    case 11: skill 1009,1,0; break;                    case 12: skill 1003,1,0; skill 1004,1,0; break;                    case 14: skill 1002,1,0; break;                    case 15: skill 1015,1,0; skill 1016,1,0; break;                    case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;                    case 17: skill 1005,1,0; break;                    case 18: skill 238,1,0; break;                    case 19: skill 1010,1,0; break;                    case 20: skill 1011,1,0; break;                    default: break; }                return; }            function A_An {                setarray .@A$[0],"a","e","i","o","u";                set .@B$, "_"+getarg(0);                for(set .@i,0; .@i<5; set .@i,.@i+1)                    if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);                return "a "+getarg(0); }        case 2:            function Refine_Item;            if (.EnrichedRefine)                if (select(" ~ Normal Refiner: ~ Enriched Refiner")==2) {                    Equip_Menu(1);                    setarray .@Materials[0],7619,7620,7620,7620,7620;                    setarray .@Safe[0],4,7,6,5,4;                    set .@WLv, getequipweaponlv(@i);                    message strcharinfo(0),"Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);                    if(select(" ~ Refine item (2 * ^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ ^777777Cancel^000000")==2) close;                    Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv], 1);                    close; }            Equip_Menu(1);            setarray .@Materials[0],985,1010,1011,984,984;            setarray .@Safe[0],4,7,6,5,4;            set .@WLv, getequipweaponlv(@i);            set .@SafeCount, .@Safe[.@WLv]-getequiprefinerycnt(@i);            message strcharinfo(0),"Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);            switch(select(" ~ Refine once (^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ Refine multiple times (up to "+(10-getequiprefinerycnt(@i))+"): ~ Refine to safe limit ("+((.@SafeCount>0)?.@SafeCount+" refines":"^777777disabled^000000")+"): ~ ^777777Cancel^000000")) {                case 1: Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]); close;                case 2:                    input .@Refines;                    if (.@Refines+getequiprefinerycnt(@i) > 10 || .@Refines < 1) message strcharinfo(0),"Invalid number ("+.@Refines+").";                    else Refine_Item(.@Refines, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);                    close;                case 3:                    if (.@SafeCount < 1) message strcharinfo(0),"The item has already reached the safe limit.";                    else Refine_Item(.@SafeCount, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);                    close;                  case 4: close; }            function Equip_Menu {                setarray .@pos$[1],"Upper Headgear","Armor","Left hand","Right hand","Garment","Footgear","Left Accessory","Right Accessory","Mid Headgear","Lower Headgear";                set .@menu$,"";                for (set .@i,1; .@i <= 10; set .@i,.@i+1) {                    if (getequipisequiped(.@i))                        set .@menu$, .@menu$+.@pos$[.@i]+" [^0055FF"+getequipname(.@i)+"^000000]";                    set .@menu$, .@menu$+":"; }                set @i, select(.@menu$);                if (!getequipisequiped(@i)) { message strcharinfo(0),"Nothing is equipped there!"; close; }                if (getarg(0)) {                    if (!getequipisenableref(@i)) { message strcharinfo(0),getequipname(@i)+" cannot be refined."; close; }                    if (getequiprefinerycnt(@i) >= 10 ) { message strcharinfo(0),"+"+getequiprefinerycnt(@i)+" "+getequipname(@i)+" cannot be refined any further."; close; } }                return; }            function Refine_Item {                message strcharinfo(0),"I'll need "+getarg(0)+"x "+getitemname(getarg(1))+" and "+getarg(0)*getarg(2)+" Zeny.";                if (countitem(getarg(1)) < getarg(0) || Zeny < getarg(0)*getarg(2)) {                    sleep2 500; message strcharinfo(0),"Come back when you have the required materials."; close; }                if (getequiprefinerycnt(@i)+getarg(0) > getarg(3)) {                    sleep2 500; message strcharinfo(0),"The item will be refined above the safe limit. It may break."; }                sleep2 500;                if(select(" ~ ^0055FFContinue^000000: ~ ^777777Cancel^000000")==2) close;                set .@j, getarg(0);                while(.@j) {                    delitem getarg(1), 1;                    set Zeny, Zeny-getarg(2);                    if (getarg(4,0)) {                        if (getequippercentrefinery(@i) <= rand(100) && getequippercentrefinery(@i) <= rand(100)) {                            message strcharinfo(0),getequipname(@i)+" broke while refining."; failedrefitem @i; close; } }                    else {                        if (getequippercentrefinery(@i) <= rand(100)) {                            message strcharinfo(0),getequipname(@i)+" broke while refining."; failedrefitem @i; close; } }                    successrefitem @i;                    set .@j, .@j-1; }                message strcharinfo(0),"All done!";                close; }        case 3:            if (.Prices[0]) message strcharinfo(0),"It costs "+.Prices[0]+" Zeny to remove cards.";            Equip_Menu(0);            if (Zeny < .Prices[0]) { message strcharinfo(0),"You don't have enough Zeny."; close; }            set .@j,getequipcardcnt(@i);            if (!.@j) { message strcharinfo(0),"There are no cards compounded to "+getequipname(@i)+"."; close; }            if (!checkweight(4001,(.@j+1))) { message strcharinfo(0),"You're carrying too many items!"; close; }            message strcharinfo(0),"Item: "+getequipname(@i);            if (select(" ~ Remove "+.@j+" card(s): ~ ^777777Cancel^000000")==2) close;            set Zeny, Zeny-.Prices[0];            successremovecards @i;            message strcharinfo(0),"Cards successfully removed!";            close;        case 4:            message strcharinfo(0),"Coins are worth "+.Coin[1]+" Zeny each.";            switch(select(" ~ Zeny to coins: ~ Coins to Zeny: ~ Close")) {                case 1:                    message strcharinfo(0),"How many coins do you want?";                    input .@coins,0,(1000000000/.Coin[1]);                    if (.@coins*.Coin[1] > Zeny) { message strcharinfo(0),"You don't have enough Zeny."; close; }                    if (!checkweight(.Coin[0],.@coins)) { message strcharinfo(0),"You don't have enough inventory space."; close; }                    set Zeny, Zeny-(.Coin[1]*.@coins);                    getitem .Coin[0], .@coins;                    message strcharinfo(0),"Purchased "+.@coins+" coins.";                    close;                case 2:                    message strcharinfo(0),"How many coins do you want to trade in?";                    input .@coins,0,(1000000000/.Coin[1]);                    if (countitem(.Coin[0]) < .@coins) { message strcharinfo(0),"You don't have that many coins!"; close; }                    if ((Zeny+(.Coin[1]*.@coins)) > 1000000000) { message strcharinfo(0),"You have too much Zeny!"; close; }                    delitem .Coin[0], .@coins;                    set Zeny, Zeny+(.Coin[1]*.@coins);                    message strcharinfo(0),"Exchanged "+.@coins+" coins.";                    close;                case 3:                    close; }        case 5:            if (Zeny < .Prices[2]) { message strcharinfo(0),"It costs "+.Prices[2]+" Zeny to rent."; close; }            if (ismounting()) { message strcharinfo(0),"You must first remove your mount."; close; }            else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) {                if (!checkfalcon() && getskilllv(127) && !checkwug()) {                    if(select(" ~ Falcon: ~ Warg")==1) setfalcon;                    else getitem 6124,1; }                else getitem 6124,1; }            else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv(39)) {                if (!checkmadogear() && getskilllv(2255)) {                    if(select(" ~ Cart: ~ Mado")==1) setcart;                    else setmadogear; }                else setcart; }            else if (!checkcart() && getskilllv(39)) setcart;            else if (!checkfalcon() && getskilllv(127) && !checkwug()) setfalcon;            else if (!checkriding() && getskilllv(63)) {                if (eaclass()&EAJ_THIRDMASK==EAJ_RUNE_KNIGHT) setdragon;                else setriding; }            else if (!checkmadogear() && getskilllv(2255)) setmadogear;            else { message strcharinfo(0),"You do not meet requirements to rent."; close; }            set Zeny, Zeny-.Prices[2];            specialeffect2 276;            close;        case 6:            if (.Prices[1]) message strcharinfo(0),"It costs "+.Prices[1]+" Zeny to reset stats or skills.";            set .@i, select(" ~ Stat reset: ~ Skill reset: ~ Cancel");            if (.@i==3) close;            if (Zeny < .Prices[1]) { message strcharinfo(0),"You don't have enough Zeny."; close; }            set Zeny, Zeny-.Prices[1];            if (.@i==1) ResetStatus;            else { sc_end SC_ALL; ResetSkill; }            message strcharinfo(0),((.@i==1)?"Stats":"Skills")+" reset!";            close;        case 7:            Get_Platinum;            specialeffect2 441;            message strcharinfo(0),"Platinum skills received!";            close;        case 8:            set .@Var$, ".SexChange"+((Sex)?"F":"M");            if (getarraysize(getd(.@Var$))) {                message strcharinfo(0),"To turn into a "+((Sex)?"female":"male")+" you need the following items:";                sleep2 1000;                for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) {                    message strcharinfo(0),getd(.@Var$+"["+(.@i+1)+"]")+"x "+getitemname(getd(.@Var$+"["+.@i+"]"));                    if (countitem(getd(.@Var$+"["+.@i+"]")) < getd(.@Var$+"["+(.@i+1)+"]")) set .@nreq,1;                    sleep2 500; }                if (.@nreq) close; }            if(select(" ~ Change into a "+((Sex)?"female":"male")+": ~ Cancel")==2) close;            if (getarraysize(getd(.@Var$)))                for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2)                    delitem getd(.@Var$+"["+.@i+"]"), getd(.@Var$+"["+(.@i+1)+"]");            changesex;            end;        case 9:            setarray .@Total[0],0,0;            getinventorylist;            for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) {                if (@inventorylist_identify[.@i]) continue;                if (Zeny < .Prices[3]) {                    dispbottom "It costs "+.Prices[3]+" to identify an item."; break; }                set Zeny, Zeny-.Prices[3];                delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;                getitem @inventorylist_id[.@i],1;                setarray .@Total[0], .@Total[0]+1, .@Total[1]+.Prices[3]; }            if (!.@Total[0]) { message strcharinfo(0),"No items identified."; close; }            specialeffect2 154;            message strcharinfo(0),"Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+.@Total[1]+" Zeny":"")+".";            close;    }OnInit:// --------------------- Config ---------------------    setarray .MainMenu$[0],    // Set menu options!        "Change Jobs",        // [1]        "Refiner",        // [4]        "Remove Cards",        // [8]        "Exchange Coins",    // [16]        "Rentals",        // [32]        "Reset Stats/Skills",    // [64]        "Platinum Skills",    // [128]        "Change Sex",        // [256]        "Identify All";        // [512]    set .MenuOption,1|2|4|8|16|32|64|128|256|512;    setarray .OnClick[0],1,1,1;        // When clicked: heal [0], buff [1], repair [2] (1: yes / 0: no)    setarray .Coin[0],674,1000000;        // Coin item ID, coin price    setarray .Prices[0],50000,10000,0,100;    // Zeny to remove cards [0], reset [1], rent [2], identify [3]    setarray .Rebirth[0],99,50;    // Minimum base level, job level to rebirth OR change to third class    setarray .JobReq[0],10,40;    // Minimum job level to turn into 1st class, 2nd class    set .ThirdClass,1;        // Enable third classes? (1: yes / 0: no)    set .SNovice,45;        // Minimum base level to turn into Super Novice    set .LastJob,1;            // Enforce linear class changes? (1: yes / 0: no)    set .SkillPointCheck,1;        // Force player to use up all skill points? (1: yes / 0: no)    set .Platinum,1;        // Get platinum skills automatically? (1: yes / 0: no)    set .EnrichedRefine,1;            // Allow enriched refiner option? (1: yes / 0: no)    setarray .RP[0],2000,50,200,5000,20000;    // Zeny for armor, lv1, lv2, lv3, lv4 refines    setarray .SexChangeF[0],2213,1,1558,1,7152,50;    // Items to turn into Female (ID,Count)    setarray .SexChangeM[0],5016,1,2241,1,1017,50;    // Items to turn into Male (ID,Count)// --------------------------------------------------    end;}

     

    I did edit the all-in-one NPC to take out the stylist since i have my own custom stylists.

     

    the second script is this,

     

    not sure how to fix it though.

     

    If someone could help that'll be good thanks!

     

     

    -    script    flop    -1,{    if( getgmlevel() > 80 ) {        mes "Hi ^ff0000[GM]^000000 "+ strcharinfo(0) +" !";        mes "what can I do for you ?";        next;        .@m = select( "Player menu", "Reset an upgrade's guild", "Clear all upgrade" );        if( .@m == 2 ) {            .@size = query_sql( "SELECT `name` FROM `guild` ORDER BY `guild`.`name` ASC LIMIT 127", .@name_g$ );            .@tmp$ = "^777777~ next^000000";            for( .@i = 0; .@i < .@size; .@i += 10 ) {                deletearray .@tmp$[1], 10;                copyarray .@tmp$[1], .@name_g$[.@i], 10;                .@menu_gm$ = implode( .@tmp$, ":" );                next;                .@m_g = select( .@menu_gm$ ) -1;                if( .@m_g == 0 && .@i + 10 >= .@size ) {                    mes "end of the list.";                    close;                }                else if( .@m_g != 0 ) break;            }            explode( .@a$, .@menu_gm$, ":" );            query_sql "update guild set buff = '' where name = '"+ .@a$[ .@m_g ] +"'";            mes "Column buff is now empty for guild "+ .@a$[ .@m_g ] +".";            close;        }        else if( .@m == 3 ) {            query_sql "UPDATE `guild` set `buff` = ''";            mes "Column buff is now empty.";            close;                }    }    if( !getcharid(2) ) {        mes "you are not in a guild !";        close;    }    else if( getguildmaster( getcharid(2) ) != strcharinfo(0) ) {        mes "I only talk to your guildmaster, go away !";        close;    }    query_sql "SELECT buff FROM guild WHERE guild_id = "+ getcharid(2), .@buff_type$;    if( getstrlen( .@buff_type$ ) )        explode( .@b$, .@buff_type$, "|" );    else {        for( .@i = 0; .@i < .size_buff; .@i++ )            .@b$[.@i] = "0";    }    mes "hello "+ strcharinfo(0) +", what do you want to up the skill in the guild healer today ?";    next;    .@s = select( .menu$ ) -1;    if( atoi(.@b$[.@s]) + .min_Levels  == .max_Levels ) {        mes "Your current "+ .skills_$[.@s] +" skill's guild healer has already reached the max level.";        close;    }    mes "Your current "+ .skills_$[.@s] +" skill's healer is level ^0000ff("+ ( .min_Levels + atoi( .@b$[.@s] ) ) +")^000000.";    mes "It will cost ^0000ff"+ ( .cost_[atoi(.@b$[.@s]) +1] * .rate_buff_zeny[.@s] ) +"^000000 zeny to up this skill for your guild.";    next;    if( select( "Paid to up "+ .skills_$[.@s], "Leave" ) -1 ) close;    else if( Zeny < .cost_[atoi(.@b$[.@s]) +1] * .rate_buff_zeny[.@s] ) {        mes "You're kidding me? you don't have enough zeny.";        close;    }    Zeny = Zeny - .cost_[atoi(.@b$[.@s]) +1] * .rate_buff_zeny[.@s];    .@b$[.@s] = atoi( .@b$[.@s] ) +1;    .@a$ = implode( .@b$, "|" );    query_sql "update guild set buff = '"+ .@a$ +"' where guild_id = "+ getcharid(2);    mes "Your "+ .skills_$[.@s] +" skill's healer is now level ^0000ff("+ ( .min_Levels + atoi( .@b$[.@s] ) ) +")^000000. Congratulation !";    close;OnInit:    deletearray .cost_;    deletearray .skills_$;    deletearray .skill_$;    deletearray .min_Levels;    deletearray .max_Levels;    deletearray .rate_buff_zeny;        setarray .skills_$, "agi", "bless", "Kyrie Eleison"; // add more skill here - think to add them also in the healer    setarray .min_Levels,	    5,	    5,	   0; // min level of the skill boost in the healer    setarray .max_Levels,	    10,	    10,	   10; // max level of the skill you can up    setarray .rate_buff_zeny,	    1,	    1,	   1; // rate for zeny - ex: 2 to kyrie -> cost *2 ; 2/5 -> cost *2/5    setarray .cost_[1], 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000; // cost zeny to up the healer        .size_buff = getarraysize( .skills_$ );    .menu$ = implode( .skills_$, ":" );    end;}prontera,153,121,6    duplicate(flop)    flop#1    909// geffen,163,185,6    duplicate(flop)    flop#2    909// payon,163,185,6    duplicate(flop)    flop#3    909// yuno,163,185,6    duplicate(flop)    flop#    909-    script    Healer#Guild    -1,{        if( getcharid(2) ) {        query_sql "SELECT buff FROM guild WHERE guild_id = "+ getcharid(2), .@buff_type$;        if( getstrlen( .@buff_type$ ) ) explode( .@b$, .@buff_type$, "|" );    }    set .@Price,0;    // Zeny required for heal    set .@Buffs,1;    // Also buff players? (1: yes / 0: no)    set .@Delay,0;    // Heal delay, in seconds    callfunc "F_ClearGarbage",0;    if (@HD > gettimetick(2)) end;    if (.@Price) {        message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";        if (Zeny < .@Price) end;        if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close;        set Zeny, Zeny-.@Price;    }    specialeffect2 EF_HEAL2; percentheal 100,100;    if (.@Buffs) {        for( .@i = 0; .@i < .size_buff; .@i++ ) {            .@sum = atoi(.@b$[.@i]) + .min_Levels[.@i];            .@j = .Buffs$[.@i];            if( .@sum )                sc_start .@j,240000,.@sum;        }    }    if (.@Delay) set @HD, gettimetick(2)+.@Delay;    close;OnInit:    deletearray .Buffs$;    deletearray .min_Levels;    setarray .Buffs$, SC_INCREASEAGI, SC_BLESSING, SC_KYRIE; // in the same order than .skills_$ in guild up healer    setarray .min_Levels,	    5,	    5,	   0;// min level of the skill boost - default: agi (5), bless (5), kyrie (0)    .size_buff = getarraysize( .Buffs$ );    end;    }prontera,155,121,6    duplicate(Healer#Guild)    Healer#Guild2    909

  8. Don't worry, feel free to make them =)

    As long as you're willing to actually learn, none will mind giving you a hand (Y)

     

     

    haha okay then thanks! Then i'll shoot up a question then,

     

    After doing some googling, i found out that using chmod 777

     

    it's very dangerous as anyone can do anything to it.

     

    To put it in layment term,

     

    it's basically putting the key in your car locked in a garage.

     

    So if people can go into the garage, your car is more or stolen lols.

     

    However, the Flux CP wouldn't run without 777. as i tried changing various times, but 777 managed to work and I strongly believe it will hinder it's security.

     

    So what should I do on this part? I understand that Flux CP tells you which directory permission is required for that folder if the permission set is wrong, but even though i followed, it came with more and more errors.

     

    i'm in a complete confusion on what should I do now for the Flux lol


  9. Ouch, missed that part. Sorry

     

    INSERT INTO `storage` (`account_id`, `nameid`, `amount`, `identify` )SELECT  `login`.`account_id`, ItemID, qty, 1FROM `login`where `login`.`account_id`>=2000000;

    That will add the item to storage, replace itemID and qty as needed. 

    The final 1 makes the item identified.

    You can add other columns and values, but thats the main structure =)

     

     

    Thanks I'll definitely try it out and see how it works!

     

    and thanks for the great knowledge guys! You've really helped me out on this part xD

     

    I do have a few questions for linux but i think i'll pass it first since I've asked alot xD

     

    Cheers everyone!


  10. It is NEVER a good practice to use root for anything (Or Administrator for windows), as a faulty piece of code/script or whatever else could end up screwing your entire OS installation. 

     

    You can always "sudo" something if you have the need to.

     

    I've never used workbench for anything, so no idea there.

    To empty a table as jaBote mentioned before, you can use truncate as an sql command

    To insert data simply do INSERT into `table` (`col1`, `col2`, `col3`) VALUES('string1', int1, 'string2');

     

    For storage for example, you can do this

     

    INSERT INTO  `storage` (`id` ,`account_id` ,`nameid` ,`amount` ,`equip` ,`identify` ,`refine` ,`attribute` ,`card0` ,`card1` ,`card2` ,`card3` ,`expire_time` ,`unique_id`)VALUES (NULL ,  2000000,  500,  5,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0);

    That'd insert into Account 200000 5 (amount) Red Potions (nameid 500). 

    Thanks for the information!

     

    However would there be a specific command to place an item to all accounts without manually typing in one by one?

     

    Sorry if this request is absurd as i'm trying to grasp as much of the MySQL commands I can xD


  11. Thanks jaBote for the advice!

     

    and yes! you're right on that part, as i'm a dunce when it comes to MySQL commands, therefore I'd like to ask for this >_>, I don't use phpmyadmin though, as all my operations are within my server and nothing comes remotely.

     

     

    For the warning, it means you're running it as a root superuser in your
    Linux system and you're advised not to do that ecause consequences may
    be fatal if someone manages to take over your system via the game,
    because they're allowed to do anything as root. That's not MySQL
    related.

     

     

    Thank you so much to telling me this! I kinda got used to logging in as root, that's why this happened I guessed lol.

    Anyway the warning is long gone now thanks!

     

    However, I usually use MySQL Workbench to do this though, Correct me if i'm wrong, but i don't see the option of truncate here. Unless I manually delete it? Which leaves the option of adding the items into their storage xD


  12. [Error]: make_listen_bind: bind failed (socket #4, error 98: Address already in use)!
     

    I keep getting this error though, What's the issue here? :(

     

    and this is the command that i used

     

    Fixed xD,

    GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE ON DB1.* TO name@host identified by 'password'; & GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE ON DB2.* TO name@host identified by 'password';

     

    however the only thing that bugs me a bit would be this

     

    [Warning]: You are running Hercules with root privileges, it is not necessary.

     


    Using the command stated above, is it still safe? or am i still in trouble for this?


  13. I see i see, thanks for the great assistance everyone!

     

    I'll try it out and see how it fairs on my end!

     

    However 1 more question if you don't mind xD,

     

    cause in terms of deleting everything from their account except their ID and passwords,

     

    what would that be? as well as inserting one item into their storage for all the accounts registered.

     

    Thanks for the great info everyone!


  14. Hello,

     

    Just want to know what is the command that is enough for MySQL to allow it run in the inter-server.conf?

     

     

    as right now i'm doing it like this which i believe is wrong lol

     

    grant all privileges on *.* to name@whatever identified by 'password';

    so what would be the best command to replace this?


  15. okay here's an update,

     

    I manage to install the Flux after lingering with the files, alot!

     

    and finally getting it to work i guess,

     

    however right now, the only i face now is this

    Warning: date(): It is not safe to rely on the system's timezone
    settings. You are *required* to use the date.timezone setting or the
    date_default_timezone_set() function. In case you used any of those
    methods and you are still getting this warning, you most likely
    misspelled the timezone identifier. We selected 'Asia/Kuala_Lumpur' for
    'MYT/8.0/no DST' instead in
    /var/www/html/lib/Flux/Connection/Statement.php on line 14

     

    Registrations works great now without any issues thanks guys!


  16. well i just checked and it is hashed haha

     

    I guess setting it false should fix it then? as currently i face another issue after reloading my OS ._.

     

    since I kinda screwed up the entire thing lol

     

    now it's showing Index of / instead of the flux page ._.


  17. Hello everyone!
     

    I seem to be facing an issue right now.

     

    Hopefully someone is able to assist,

     

    I manage to got the site up,

     

    however I face some challenges in the process which would be,

     

    • Login server shows offline even though it's online
    • Unable to register, it shows Uh Oh! What happened?

    I've been struggling this for some time now, it would really make my day if someone could help me out on this >_>


  18. Right now it's solved though,

     

    I tried 2 methods. Using the SVN corrupted my entire folder i guess, there's no more Green tick / Red Exclamation to see what files have been changed inside.

     

    Github Hercules on the other hand worked perfectly

×
×
  • Create New...

Important Information

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