Jump to content

Mikhail von Hohenheim

Members
  • Content Count

    125
  • Joined

  • Last visited

Posts posted by Mikhail von Hohenheim


  1. As far as I know when you export it to a zip, you don't have it under version control anymore, so I believe the only way would be to do a new clone and overwrite files with your changes. When I have to backup my repo to use in another PC I zip the entire repo folder (as it contains .git folders which are used by git) by right clicking.

     

    about mysql, I've never used workbench, but to migrate data exporting and reimporting should be enough, what is the error message?

     

    uhm,, about the mysql,, i was able to migrate the accounts now,, it seems that the accounts for server is not setup that's why i was not able to migrate it,,

     

    with the db,, i did as what you said,, it worked like magic,, i just zip it and copy then poof!!,, all the versions even the stashes are there,, thanks alot man,,

    done with it,,


  2. Uhm, Well, I got a new PC, I installed again the tortoise and git, the wamp, and MySQL workbench,

     

    but:

     

    *previously on my PC the server files, (from github), has a green marking on it, and whenever i make modifications it will mark red the changes until i commit them,

    >>>>>>but now,, its not showing anything,, even though I already installed tortoise again on my new PC, what I did is actually just export the file option from Tortoise and it became a Rar file,, then I extracted it on my new PC,,

    so,, how can i have it like having the green markings again?? i mean if I pull request i dont know if it would work on the one on my new PC,, and worst might overwrite my modifications,, guide me please

     

     

     

    ** next is regarding the Workbench,, uhm,, on the old PC,, i tried to export the files( i dont know if that's how you can migrate the character database,, like logins,, characters,, inventory,, into a new PC),, but I'm getting errors,,

    so,, need also help from this,, 


  3. I guess I have to reply something

     

    actually ... status change can only apply 1 at a time ...

    if you already have blessing lv5 buff, cast lv10 blessing on you, you will replaced by level10 blessing

    if already having PORING as the target, adding DROPS will overwrite PORING in this case

    so nope, only 1 at a time

    this idea about using status change should be scrap

     

    yes, using OnNPCKillEvent is stress, but it doesn't mean lag

    it just mean using more CPU resource to compute the code

    although in the past (year 2008) before I learn to touch the source code, I did make a low populated server (~30 players) lag ... lol

     

    yeah master, i dont know if I understood you with that,, but yes,, status changes can apply once each per status,, but its not like it would give a different or additional status,, it would only have a "list" that needs to kill or somethin',,

     

    i actually tried to grasp some info on scripting base from here---> https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt

     

    and with this:

     

    *sc_start 	<effect type>,<ticks>,<value 1>{,<rate>,<flag>{,<GID>}};*sc_start2 	<effect type>,<ticks>,<value 1>,<value 2>{,<rate>,<flag>{,<GID>}};*sc_start4 	<effect type>,<ticks>,<value 1>,<value 2>,<value 3>,<value 4>{,<rate>,<flag>{,<GID>}};*sc_end 	<effect type>{,<GID>};

     

     using the sc_start4 it gave me a hope that with values 1 ~ 4 we can probably put *variables, like instead of putting just a specific monster in *val1* in SRC,, put variables something like (battle->check_target(mob_id)) ,, like on how "body relocation" monks work, i mean you dont put a specific cells, instead it has variables of x and y for your target cells, so that would fit in on the status that i'm looking for,, well I strongly believe that there's nothing that's impossible with the src as it's like the universal power behind everything in RO,,

     

    so the code is something like this

     

    case SC_ADDSTATKILLMOBval1 = (battle->check_target(mob_id)) // i dont know what are these for,, but please try to understand,, the point is instead of getting specific mob,, it would check mob/ list of mobs you listed,val2 = rand() kill mob // chancesval3 = statusup, rand(bStr,bAgi,bVit,bInt,bDex, bLuk) //again dont know codes needed,, end;

    this way,, instead of putting like constant values for the sc_addstatkillmob,,everything would depend on the values on the item_db,, as variables are setup under the status.c,, but yeah i just believed that there's nothing impossible in src mods,,

     

     

     

     

    seriously, you have to answer a few questions before we proceed

     

    1. Why not just write this as a Quest NPC ?

    it make sense to anyone -> take the quest, kill the mobs, get status points as reward

    no need to go to your website to know which monster gives which stat,

    and the Quest can be given in just 1 single npc, everyone can understand easily

     

    and MOST OF ALL,

    even a 5 years old kid that knows how to type "@-r-e-l-o-a-d-s-c-r-i-p-t" can write a Quest NPC

     

     

    well yeah it does make sense, 

    though of course having it other way around like just getting it from "training" or "grinding" would also be another idea,, unlike the usual "quest" thingy,,

    well i cant say that i dont know how to write a quest NPC,, but I can at least learn it, its just a thing you can call "preference",,

     

    like why depend on an NPC wherein, it's possible to be created by an alchemist and have them help you out also on "strengthening",, again "preference" on how to do things,,

     

     

    2. what makes you obsessed with this feature ?

    SC_ADDSTATKILLMOB is just an idea I think of, and it is not available anywhere

    even I google search 'SC_ADDSTATKILLMOB', only 2 results came out

    there is no available code for it, until someone tries to make it out

    and like I said earlier, your idea that can be done with THAT MANY mobs, it is impossible

    using status change, means only 1 mob ID at a time, ok ?

     

    so please, write this feature as a Quest.

    Full Stop.

     

    obsessed,, yeah I'm really obsessed with things that could make huge changes,, i dont know why,, i cant even says i'm "inlove" with RO anymore and yes "obsessed" might be the right word for it,, i mean,, I actually never ever played other MMO games seriously,, other than RO,, yeah official and private servers i could have played many already,, but there's always something that i'm not satisfied with,, so that's maybe why i'm this obsessed,, sorry,,

     

    yes master,, i never set aside your advices on doing this as a quest script,,

     

    Full Stop

    since you said that there's no available code yet,,

    well,, i dont think i can Full stop yet,, but yeah,, at least i've learn a lot from this experience, and will still learn,, to others these might be normal already,, but to me these are all new,, 

     

     

    3. and if you still unsatisfied as a Quest, you have to explain properly where you get this idea from

    - a topic link to that game website which properly explain about this feature -> for example wow wiki, or irowiki

    - or a youtube video that shows how they did it

     

    i have nothing to provide where i got this idea master,,  :(

    just a product of my wild imagination and "obsession" w/ RO i guess,,

    well yes i'm still unstatisfied w/ this as a Quest,, but,, with the script you provided me,, for the mean time can at least do it NOT w/ a lot of monsters but at least with MVPs  or mini boss so that it won't be that stressful,,

     

     

     

    uhm,,

    I might be over dramatic with this but yeah,, thanks for being so patient with someone who just started with this,, 


  4. started from this topic --->http://herc.ws/board/topic/11301-help-monster-kill-pt2/

     

     

    since doing this as a script might give a huge stress on the service IF its Global,,

     

    basically now what I need is a status that can be place on an item that would give a permanent parameter(like Str) for killing certain monsters,,

     

    like this:

     

    sc_start4 SC_ADDSTATKILLMOB, 10000,        readparam(bStr)<=5 {        PORING, 5;        LUNATIC, 10;        MASTERING, 100;} bStr, 1,

     

     

    read like this:

     

    sc_start4 SC_ADDSTATKILLMOB, 10000[for duration] , (read param str < 5)[stat requirement, before it would give a bonus stat], PORING[monster to kill], 5[percent chance it would give perma stat], LUNATIC[another monster to kill], 10[percent], MASTERING[anothermonster to kill], 100[percent]....[up to a certain list of monters and percent];

     bStr[base stat to be added], 1[+number of stats to give]

     

    ,,

    i tried to base info from the SC_FOOD_(param) status and the SC_CASH_RECEIVEITEM as these statuses gives buff str and bonus EXP, but i'm not able to understand how to like replicate them or to add values,,

     

     

    please if someone has available time help me out,, and if have MORE extra time,, explain how each are done,,

     and if have a better idea, thanks,, as long as it gives permanent parameter for killing monsters at a percent OR number of monsters killed


  5. @@AnnieRuru

     

    This one:

    sc_start4 SC_ADDSTATKILLMOB, 10000, PORING, 100, 1, bStr;

    sorry if I'm a bit slow,,

    and also been out for a couple of days,,

    my internet service is failing me,, *arrrggghhh*

     

    anyway,

    is this meant to be for an item script?? if yes

     

    how can i put it at src??

     

    like:

     

    sc_start4 SC_ADDSTATKILLMOB, 10000(for duration right?) , (read param str < 5)(stat requirement), bStr(base stat to be added), 1, PORING(monster #1), 5(percent), LUNATIC(monster #2), 10(percent), MASTERING(monster #3), 100(percent).....(up to at least maximum 15 monsters);

     

    so it would look like this:

    sc_start4 SC_ADDSTATKILLMOB, 10000, readparam(bStr)<=5, bStr, 1, PORING, 5, LUNATIC, 10, MASTERING, 100;

     

     

    this way it'll be much more easier to manage,

     

    If not,,

    How to make it an item script?? so i can add an item to set it that way,,


  6. Guyz, *sigh*,

     

    I'm really pissed off now on my broadband,,

     

    I would just like to ask if you know a way like to disregard the "cap limit" of an internet service provider??

     

    I'm using SmartBro Prepaid,, and previously signing up for a 1month service of LTE service,, well so far it WAS good,,

     

    but now dammn,,

     

    that feature was removed, and changed it into 7days or 30 days subscription of High Speed internet,, BUT,, has a daily cap of 800MB,, 

     

    so,, i'm really having a hard time really now on my internet,, and actually just posting this up already took me more than 20mins,,

     

    just want to know if anyone has an idea or know anything or a program to bypass this,,

     

    thanks!!,, any answer will be happily appreciated,,


  7.  

    no idea, since I have been scripting since 9 years ago, I found eathena script language is normal to me

    i also have another idea,, like from this Chinese Light Novel http://www.wuxiaworld.com/tdg-index/, uhmm,, i dont know if its possible,, like for example, you consumed a specific item,,let's name it for example "str improving pill" that if you killed a specific number of monsters while that item is on duration,, it'd help you to improve str (same effect as this script)

    you need to code a SC_xxx constant

    during the effect, if kill the monster, will add Str

    this can only done through source code, not npc script

     

    hmm ... interesting idea, SC_ADDSTATKILLMOB

    add this in my to-do list

    sc_start4 SC_ADDSTATKILLMOB, 10000, PORING, 100, 1, bStr;
    start a status, in 10 seconds,

    kill a poring, 100% chance to gain 1 str stat

     

     

    ooooooooooh,,, so IT is possible in src files,,,

     

    nice nice,, so need to create a status effect first (SC_xxx),, ,,,then put that status on an item as a script,, hmmm,,

     

    but if that would be the case,, do I need to put a lot of new SC_xxx PER monster?? and how about the number of kills for that monster??


  8.  

    hmmmmm,, you have a point there,, like for example the poring catcher event,, right??

    poring catcher event, in that script all monster has event labels

    so OnNPCKillEvent shouldn't trigger with them

    .

    .

    >but the script should look first if the stat of the player is within range,, if not,, it should not give any bonus stat,, right?? or is it not??

    but it still trigger OnNPCKillEvent label non-the-less

    as long as the server do something like triggering an event label, any script command will return as a function in the source code

    .

    .

    what i mean in my question,, is,, will it give more latency on the server,, IF (for example) ALL monsters have a script for getting a stat??

    yes

     

     

     

    Uhm,, since it "might" lag the server,, really have to think twice,,

     

    but,, actually im also thinking twice w/ having it as a "reward" from an NPC,, I started playing RO since 2-2 jobs had just been released,, and,, not really fond of doing quests,, like earn everything from monster extermination,, HAHA,,

     

    *sigh*

     

    hmmmm,,,

     

    don't know if you know the game from PSX the "Digimon World",, the idea is somewhat same there wherein whenever you defeat an enemy it'd gave you statpoints/parameters,,

     

     

    i also have another idea,, like from this Chinese Light Novel http://www.wuxiaworld.com/tdg-index/, uhmm,, i dont know if its possible,, like for example, you consumed a specific item,,let's name it for example "str improving pill" that if you killed a specific number of monsters while that item is on duration,, it'd help you to improve str (same effect as this script),,

     

    ohh my God,, never thought thinking of mods for your server would be this hard,, hahaha,,


  9. OnNPCKillEvent runs whenever a player kill any monster(that doesn't have an event label), and this trigger globally

    even if the player is not doing quest, just kill monster for fun

    or gm summons tons of monsters,

    it still trigger OnNPCKillEvent label

    and if you have 10 different npc with OnNPCKillEvent,

    a wizard doing a storm gust killing 50 porings will trigger OnNPCKillEvent 500 times

     

    its better to use questprogress for this operation,

    questprogress automatically detect only which monster ID you kill, and update internally without trigger any script operation

     

    I wrote a sample questlog script -> http://herc.ws/board/topic/7218-sample-questlog-script/

     

     

    hmmmmm,, you have a point there,, like for example the poring catcher event,, right??

     

    but the script should look first if the stat of the player is within range,, if not,, it should not give any bonus stat,, right?? or is it not??

     

    btw,,

     

    what i mean in my question,, is,, will it give more latency on the server,, IF (for example) ALL monsters have a script for getting a stat??


  10. @@Zhao Chow & @@AnnieRuru

     

    hmmmmm,,, so I'll also need to study how to make an NPC,,,

     

    well ok,, thanks Master AnnieRuru and Zhao,,

     

    but there's also something that i would like to ask,, is there a downside,, or a negative effect on the server if it will be a global NPC for example to ALL monsters?? like every monster will have a script that will give a stat once you've defeated a number of them??


  11. yup tested the above post works

    I thought has to use OnPCUseSkillEvent and unitskilluseid ... I guess no need

    note that some skill has to fill out dataluafiles514lua filesskillinfozskillinfolist.lub for client not throw error

     

    thanks for testing it out,,

     

    yeah,, even if its blank,, as long as the skill is a the skillinfolist.lub,, it should work,,

     

    i actually just notice this from the RK skills,,

     

    :)


  12. I think this kind of stuff should be given as a quest ...

    so it wont trigger globally

     

    for example, if the player taken a quest, and the player complete it, then give 20 status points

    this method is more practical

     

    Master thanks for the idea,, But im planning on having just up to level 100 renewal server,,

     

    the idea is like just to be able to have max all stats upto 100 also,, but still just level 100,, but dont want to have a quest for it,,

     

    actually,, that script is just like a basis,, but i'll be setting limitation,, like for exampl killing a number of porings can only support you upto 20 luk,, then from 20~40 luk there'll be a different set of monsters to help you improve your stats,,

     

     

     

     

    >OMG, NO,

    you increased poringkill several times in 1 kill, only increase it at start and check conditions....

    Also poringkill is set to 0 if first condition is met, so it won't give any other stat,

    Put poringkill=0 on end of line

    (And last, this is Soo unoptimized, you could use array and make it simpler to manage.)

     
    lockquote>

     

    uhm,,

    increasing poringkill several times in 1kill,,

    i dont know if i got that correctly,, you mean like 1 poring kill triggers all the 13 "if"s?? but there's a set paramater each right?? like this:

     

    //	kill 10 monsters gets 1 status point-	script	PoringKill	FAKE_NPC,{OnNPCKillEvent:	if ( readparam(bLuk) < 5 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	end;}

    would only work if LUK is below 5,,

     

    about the unoptimized,, yes,, i thinks so too,, its actually hard to replicate this for other monsters as its too time consuming,,

     

    so how about this??

     

    //	kill 10 monsters gets 1 status point-	script	PoringKill	FAKE_NPC,{OnNPCKillEvent:	if ( killedrid == PORING ) 	if ( readparam(bLuk) < 5 ) {		poringkill++;		if ( poringkill == 10 ) {			statusup2 bLuk, 1;		}	}	if ( readparam(bLuk) >= 5 && readparam(bLuk) <= 10 ) {		poringkill++;		if ( poringkill == 15 ) {			statusup2 bLuk, 1;		}	}		if ( readparam(bLuk) >= 10 && readparam(bLuk) <= 15 ) {		poringkill++;		if ( poringkill == 25 ) {			statusup2 bLuk, 1;		}	}	if ( readparam(bLuk) >= 15 && readparam(bLuk) <= 20 ){		poringkill++;		if ( poringkill == 40 ) {			statusup2 bLuk, 1;		}	}	if ( readparam(bLuk) >= 20 && readparam(bLuk) <= 25 ) {		poringkill++;		if ( poringkill == 100 ) {			statusup2 bLuk, 1;		}	}		if ( readparam(bLuk) >= 25 && readparam(bLuk) <= 30 ) {		poringkill++;		if ( poringkill == 150 ) {			statusup2 bLuk, 1;		}	}	if ( readparam(bLuk) >= 30 && readparam(bLuk) <= 40 ) {		poringkill++;		if ( poringkill == 200 ) {			statusup2 bLuk, 1;		}	}			poringkill = 0;	end;}

    i dont know if a place the poringkill at the right place,, and if the (killerid = PORING) is also at the right place,,

     

    can someone verify this out please,, thanks,, 

     

    added:

     

    ouch I also quoted out my own reply,, 


  13.  

     

    test this you forgot to put a Boolean on each if statement

     

    Test this script and check the amount of poring, don't use @reloadscript if you edit the script or else script won't load, restart your server to load the script.

    //	kill 10 monsters gets 1 status point-	script	PoringKill	FAKE_NPC,{OnNPCKillEvent:	if ( readparam(bLuk) < 5 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 5 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 5 && readparam(bLuk) <= 10 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}		if ( readparam(bLuk) >= 10 && readparam(bLuk) <= 15 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 15 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 15 && readparam(bLuk) <= 20 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 20 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 20 && readparam(bLuk) <= 25 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 25 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}		if ( readparam(bLuk) >= 30 && readparam(bLuk) <= 40 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 40 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}		if ( readparam(bLuk) >= 40 && readparam(bLuk) <= 50 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 50 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 50 && readparam(bLuk) <= 60 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 60 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 60 && readparam(bLuk) <= 70 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 70 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 70 && readparam(bLuk) <= 80 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 80 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 80 && readparam(bLuk) <= 90 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 90 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) >= 90 && readparam(bLuk) <= 99 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 100 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	end;}

     

     

    tested it out,, worked perfectly on a new character,,

    thanks alot,,

     

     

    I think i got it now where its getting the issue,,

     

    i checked again the previous posts

     

     

     

    good point @@mrlongshen

    yes, in order for the status point to persist after a status reset

     

    your server must be pre-renewal setting (as renewal has to use statpoint table)

    and set the use_statpoint_table MUST set to no to prevent bugs

    // Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1)

    // If no, an equation will be used which preserves statpoints earned/lost

    // through external means (ie: stat point buyers/sellers)

    use_statpoint_table: no

     

     

    for example I already reached 21 luk,, I @luk -20 to bring back luck to 1,, then afterwards it will work again until 21 luk,, but then afterwards it will stop working,, no matter how many poring you kill,,

     

    is there a workaround for this?? im using renewal,,


  14. Uhm,, can someone please check out a script for me please,,

     

    I started the script from a request from this thread: http://herc.ws/board/topic/11244-help-monster-kill/

     

    well,,

     

    basically this script will give stats (like str, agi, vit, etc),, depending on the number of kills of a certain monster,, but the amount of kills required per monster will increase checking the stat of the player,,

     

    here's the script that i was able to make,,

    //	kill 10 monsters gets 1 status point-	script	PoringKill	FAKE_NPC,{OnNPCKillEvent:	if ( readparam(bLuk) < 5 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 10 >= 5)	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 15 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 15 >= 10 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 50 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 20 >= 15 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 100 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 30 >= 20 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 150 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 40 >= 30 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 250 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 50 >= 40 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 500 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 60 >= 50 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 1000 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 70 >= 60 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 2500 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 80 >= 70 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 5000 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 90 >= 80 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10000 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	if ( readparam(bLuk) < 100 >= 90 )	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 25000 ) {			statusup2 bLuk, 1;			poringkill = 0;		}	}	end;}

    I started out from poring as my basis for the monster,, but i also was able to make some for fabre, picky, willow, drops, and chonchon,.,,

     

    i placed them here:

     

    npc: npc/custom/monsterkillexp/strmonsters/picky.txtnpc: npc/custom/monsterkillexp/agimonsters/chonchon.txtnpc: npc/custom/monsterkillexp/vitmonsters/fabre.txtnpc: npc/custom/monsterkillexp/intmonsters/willow.txtnpc: npc/custom/monsterkillexp/dexmonsters/drops.txtnpc: npc/custom/monsterkillexp/lukmonsters/poring.txt

    input the code in scripts_custom.conf

     

     

    then when testing,, i summoned each monster out,, but,, it only worked 1 time on each monster after the amount of kill,,

     

    after it gave 1 stat,, it never worked again,,

     

    can someone please check it out,,

     

    and enlighten me,,

     

     


  15.  

    this is npc script, tested

    //	kill 10 poring gets 1 status point-	script	kdjshfkshf	FAKE_NPC,{OnNPCKillEvent:	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10 ) {			StatusPoint++;			poringkill = 0;		}	}	end;}
    or ...
    function	script	F_ShuffleNumbers	{	deletearray getarg(2);	.@static = getarg(0);	.@range = getarg(1) +1 - .@static;	.@count = getarg(3, .@range);	if (.@range <= 0 || .@count <= 0)		return 0;	if (.@count > .@range)		.@count = .@range;	for (.@i = 0; .@i < .@range; ++.@i)		.@temparray[.@i] = .@i;	for (.@i = 0; .@i < .@count; ++.@i) {		.@[member="Rand"] = rand(.@range);		set getelementofarray( getarg(2), .@i ), .@temparray[.@[member="Rand"]] + .@static;		.@temparray[.@[member="Rand"]] = .@temparray[--.@range];	}	return .@count;}//	kill 10 poring gets 1 random stats, if the randomly selected stat has reached maximum, then will select another one-	script	kdjshfkshf	FAKE_NPC,{OnNPCKillEvent:	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill >= 10 ) {			.@range = callfunc( "F_ShuffleNumbers", 0, 5, .@output );			if ( Class == Job_Kagerou || Class == Job_Oboro || Class == Job_Rebellion || Class == Job_Super_Novice_E )				.@maxstat = getbattleflag("max_extended_parameter");			else if ( eaclass() & EAJL_THIRD && eaclass() & EAJL_BABY )				.@maxstat = getbattleflag("max_baby_third_parameter");			else if ( eaclass() & EAJL_THIRD )				.@maxstat = getbattleflag("max_third_parameter");			else if ( eaclass() & EAJL_BABY )				.@maxstat = getbattleflag("max_baby_parameter");			else				.@maxstat = getbattleflag("max_parameter");			while ( readparam( .@output[.@i] + bStr ) >= .@maxstat && .@i < 6 )				.@i++;			if ( .@i < 6 )				statusup2 .@output[.@i] + bStr, 1;			poringkill = 0;		}	}	end;}
    erm ... I think I have complicated the topic abit ...

     

     

    LEARN A LOT FROM THIS,,

     

    was able to figure it out somehow,,

     

    But it seems needs to script PER MOBID that you would like to give stats,,

     

    THANKS a LOT especially @@AnnieRuru


  16. I think you did wrong ...

    don't really understand why you have those 90,80,70 level difference

     

    the level difference means if a player lvl 30, and poring lvl1, the level difference is 29

    or a player level 1, and poporing level 30, the level difference also 29

     

    and how do you define that level requirement

     

    and ... better just repost again what is your request specifically

    seems like you always change your request from post to post

     

    for the level difference,, uhm,, for example,, character is already level 90,, he will not be able to get the +1 stat point,, from killing 10 poring (lvl1),,

     

    but using this

     

    	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 60 ) { // if level difference below 60		mobkill++; // any mob kill increase the count		if ( mobkill >= 60 ) { // if kill any monster more than 60			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}

    a level 90 char will be able to get +1 stat point for killing 60 poporings (level 30)

     

    correct me if i got it wrong, master,

     

    uhm,,

     

    regarding the reposting,, uhm,, its just more specific info about the 2nd script(stats per number of kills)

     

    will I need,, to create another topic?? seems relevant still to the topic name,, but anyway,, i'll create if you insist master,,,

     

    btw,, 

     

    I think i was able to isolate something from tests,,

     

    seems like the monsters that give stats,, are only those that do not have parallel w/ it,,

     

    example,,

     

    OnInit:	setarray .str, // configure your mobs to trigger random stats		PICKY[first, gives stat];//PORING, DROPS, POPORING, MARIN, GOLDPORING, METALING, MAGMARING, POURING, MASTERING, ANGELING, GHOSTRING, ARCHANGELING, DEVILING, JEJELING, LITTLE_PORING;	.strracesize = getarraysize( .str );	setarray .agi, // configure your mobs to trigger random stats		THIEF_BUG[doesnot give stat], CONDOR[2nd, gives stat], POPORING[3rd, gives stat];	.agiracesize = getarraysize( .agi );	setarray .vit, // configure your mobs to trigger random stats		SPORE[does not give stat], POPORING[2nd, does not give stat];	.vitracesize = getarraysize( .vit );	setarray .int, // configure your mobs to trigger random stats		RODA_FROG[does not give stat], WILOW[2nd,does not give stat], POPORING[3rd, gives stat];	.intracesize = getarraysize( .int );	setarray .dex, // configure your mobs to trigger random stats		DROPS[does not give stat], POPORING[2nd, does not give stat];	.dexracesize = getarraysize( .dex );	setarray .luk, // configure your mobs to trigger random stats		PORING[does not give stat], DROPS[2nd, does not give stat], POPORING[3rd, gives stat], LITTLE_PORING;	.lukracesize = getarraysize( .luk );	end;

     

    it seems like it would read the setarray .str; first,, but after that,, the next stats would not give a damn to the other setarray monsters unless they have more lists w/ them,, 

     

    is there a script command to like separate each setarray as if each is a different array??

     

    i've been checking the script commands that you gave me, master,

     

    but i was not able to get any of it,,

     

    i also tried enclosing each of them w/ "[ & ] " but im getting errors when loading,,


  17. errrr,, got an issue with this,,

     

    I tested out a newly created novice,,

     

    JUST LEVEL 1

     

    @job 7 to knight,, got 60 HP

     

    then @job 4054 to Rune knight,, got 1 HP,,

     

    wew,,

     

    already changed it at job_db but still the same,,

     

    Rune_Knight: {	Weight: 35000	BaseASPD: {		Fist: 40		Dagger: 50		Sword: 52		TwoHandSword: 55		Spear: 60		TwoHandSpear: 58		Axe: 48		TwoHandAxe: 52		Mace: 45		TwoHandMace: 52		Shield: 5	}	HPTable:[   40,    48,    58,    69,    82,    96,   112,   129,   148,   168,	// 1 - 10			   190,   213,   238,   264,   292,   321,   352,   384,   418,   453,	// 11 - 20			   490,   528,   568,   609,   652,   696,   742,   789,   838,   888,	// 21 - 30			   940,   993,  1048,  1104,  1162,  1221,  1282,  1344,  1408,  1473,	// 31 - 40			  1540,  1608,  1678,  1749,  1822,  1896,  1972,  2049,  2128,  2208,	// 41 - 50			  2290,  2373,  2458,  2544,  2632,  2721,  2812,  2904,  2998,  3093,	// 51 - 60			  3190,  3288,  3388,  3489,  3592,  3696,  3802,  3909,  4018,  4128,	// 61 - 70			  4240,  4353,  4468,  4584,  4702,  4821,  4942,  5064,  5188,  5313,	// 71 - 80			  5440,  5568,  5698,  5829,  5962,  6096,  6232,  6369,  6508,  6648,	// 81 - 90			  6790,  6933,  7078,  7224,  7372,  7521,  7672,  7824,  8100,  8133,	// 91 - 100			 8242,  8352,  8464,  8576,  8690,  8804,  8920,  9036,  9154,  9273,	// 101 - 110			 9393,  9514,  9636,  9759,  9883, 10008, 10134, 10261, 10389, 10518,	// 111 - 120			10648, 10779, 10912, 11045, 11180, 11315, 11452, 11589, 11728, 11868,	// 121 - 130			12009, 12151, 12294, 12438, 12583, 12729, 12876, 13024, 13173, 13323,	// 131 - 140			13474, 13626, 13780, 13934, 14090, 14246, 14404, 14562, 14722, 14883,	// 141 - 150			15042, 15100, 15260, 15321, 15481, 15541, 15600, 15760, 15820, 15980,	// 151 - 160			16141, 16303, 16466, 16630, 16795, 16961, 17128, 17296, 17465, 17635,	// 161 - 170			17806, 17978, 18151, 18325, 18500]										// 171 - 175	SPTable:[ 13,  16,  19,  22,  25,  28,  31,  34,  37,  40,	// 1 - 10			  43,  46,  49,  52,  55,  58,  61,  64,  67,  70,	// 11 - 20			  73,  76,  79,  82,  85,  88,  91,  94,  97, 100,	// 21 - 30			 103, 106, 109, 112, 115, 118, 121, 124, 127, 130,	// 31 - 40			 133, 136, 139, 142, 145, 148, 151, 154, 157, 160,	// 41 - 50			 163, 166, 169, 172, 175, 178, 181, 184, 187, 190,	// 51 - 60			 193, 196, 199, 202, 205, 208, 211, 214, 217, 220,	// 61 - 70			 223, 226, 229, 232, 235, 238, 241, 244, 247, 250,	// 71 - 80			 253, 256, 259, 262, 265, 268, 271, 274, 277, 280,	// 81 - 90			 283, 286, 289, 292, 295, 298, 301, 304, 307, 310,	// 91 - 100			 313, 316, 319, 322, 325, 328, 331, 334, 337, 340,	// 101 - 110			 343, 346, 349, 352, 355, 358, 361, 364, 367, 370,	// 111 - 120			 373, 376, 379, 382, 385, 388, 391, 394, 397, 400,	// 121 - 130			 403, 406, 409, 412, 415, 418, 421, 424, 427, 430,	// 131 - 140			 433, 436, 439, 442, 445, 448, 451, 454, 457, 460,	// 141 - 150			 500, 566, 629, 672, 710, 748, 781, 824, 847, 890,	// 151 - 160			 894, 898, 902, 906, 910, 915, 920, 925, 930, 935,	// 161 - 170			 941, 947, 953, 959, 965]							// 171 - 175}

    and I checked all 3rd class seems like have these issue,, until blevel 98,,

     

    most of the issue i've read regarding the issue is more than level 150,, but im doing only until level 100,,

     

    :unsure:


  18. its common sense to change the npc coordinate, npc name and npc sprite when you want to use in your live server

    and ... Read The F***ing Manual

    https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt

     

    sorry seems like i'm pissing you off already,,

    :unsure:

     

     

    uhm,, but still need some help,, PLEASE bear with me,,

     

    I already check it out,, its absolutely working,,

     

    uhm,,

     

    I cannot actually understand scripting fully,, But I can get some sense on it,, and I cannot actually "talk" or "write" scripting,,

     

    but please check this out,,

     

    -	script	monsterkill	FAKE_NPC,{OnInit:	setarray .str, // configure your mobs to trigger random stats		PICKY;//PORING, DROPS, POPORING, MARIN, GOLDPORING, METALING, MAGMARING, POURING, MASTERING, ANGELING, GHOSTRING, ARCHANGELING, DEVILING, JEJELING, LITTLE_PORING;	.strracesize = getarraysize( .str );	setarray .agi, // configure your mobs to trigger random stats		THIEF_BUG, CONDOR, POPORING;	.agiracesize = getarraysize( .agi );	setarray .vit, // configure your mobs to trigger random stats		SPORE, POPORING;	.vitracesize = getarraysize( .vit );	setarray .int, // configure your mobs to trigger random stats		RODA_FROG, WILOW, POPORING;	.intracesize = getarraysize( .int );	setarray .dex, // configure your mobs to trigger random stats		DROPS, POPORING;	.dexracesize = getarraysize( .dex );	setarray .luk, // configure your mobs to trigger random stats		PORING, DROPS, POPORING, LITTLE_PORING;	.lukracesize = getarraysize( .luk );	end;OnNPCKillEvent:	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 90 ) { // if level difference below 90		mobkill++; // any mob kill increase the count		if ( mobkill >= 90 ) { // if kill any monster more than 90			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 80 ) { // if level difference below 80		mobkill++; // any mob kill increase the count		if ( mobkill >= 80 ) { // if kill any monster more than 80			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 70 ) { // if level difference below 70		mobkill++; // any mob kill increase the count		if ( mobkill >= 70 ) { // if kill any monster more than 70			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 60 ) { // if level difference below 60		mobkill++; // any mob kill increase the count		if ( mobkill >= 60 ) { // if kill any monster more than 60			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 50 ) { // if level difference below 50		mobkill++; // any mob kill increase the count		if ( mobkill >= 50 ) { // if kill any monster more than 50			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 40 ) { // if level difference below 40		mobkill++; // any mob kill increase the count		if ( mobkill >= 40 ) { // if kill any monster more than 40			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 30 ) { // if level difference below 30		mobkill++; // any mob kill increase the count		if ( mobkill >= 30 ) { // if kill any monster more than 30			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 20 ) { // if level difference below 20		mobkill++; // any mob kill increase the count		if ( mobkill >= 20 ) { // if kill any monster more than 20			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 10 ) { // if level difference below 10		mobkill++; // any mob kill increase the count		if ( mobkill >= 10 ) { // if kill any monster more than 10			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( readparam(bStr) < 10 ) { // if str is lower than 20		while ( killedrid != .str[.@i] && .@i < .strracesize ) .@i++;		if ( .@i < .strracesize ) {			statusup2 bStr, 1;		}	}	if ( readparam(bAgi) < 10 ) { // if str is lower than 20		while ( killedrid != .agi[.@i] && .@i < .agiracesize ) .@i++;		if ( .@i < .agiracesize ) {			statusup2 bAgi, 1;		}	}	if ( readparam(bVit) < 10 ) { // if str is lower than 20		while ( killedrid != .vit[.@i] && .@i < .vitracesize ) .@i++;		if ( .@i < .vitracesize ) {			statusup2 bVit, 1;		}	}	if ( readparam(bInt) < 10 ) { // if str is lower than 20		while ( killedrid != .int[.@i] && .@i < .intracesize ) .@i++;		if ( .@i < .intracesize ) {			statusup2 bInt, 1;		}	}	if ( readparam(bDex) < 10 ) { // if str is lower than 20		while ( killedrid != .dex[.@i] && .@i < .dexracesize ) .@i++;		if ( .@i < .dexracesize ) {			statusup2 bDex, 1;		}	}	if ( readparam(bLuk) < 10 ) { // if str is lower than 20		while ( killedrid != .luk[.@i] && .@i < .lukracesize ) .@i++;		if ( .@i < .lukracesize ) {			statusup2 bLuk, 1;		}	}	end;}

    i tried to make out something from what you provided me,,

     

    the statpoint script worked perfectly,, I also added other level requirement out of it,,

    so far it worked good,,

     

    but the stat parameter script,, i'm having some issue,,

     

    killing picky,, condor,, are giving the stats per kill,,

    poporing while testing gave out agi, int , luk,, but others didnt

    VIT and Dex monsters did not gave any at all,,

     

    also how can I insert the need to kill 10 of each monsters in the script??

     

    :unsure:

     

    just a little more please,, thanks a lot also,, 


  19. sorry took awhile,, i fell asleep while doing other mods,,

     

    anyway,,

    thanks a lot for answering all of my queries,, I'll try to do this out first,, and experiment on it,, i have a lot in mind on this script,, 

     

    xD

     

    :wub:

     

    btw,, regarding the script:

    -	script	kdjshfkshf	FAKE_NPC,{OnInit:	setarray .poring, // configure your mobs to trigger random stats		PORING, DROPS, POPORING, MARIN, GOLDPORING, METALING, MAGMARING, POURING, MASTERING, ANGELING, GHOSTRING, ARCHANGELING, DEVILING, JEJELING, LITTLE_PORING;	.poringracesize = getarraysize( .poring );	end;OnNPCKillEvent:	if ( sqrt(pow( getmonsterinfo( killedrid, MOB_LV ) - BaseLevel, 2)) <= 10 ) { // if level difference below 10		mobkill++; // any mob kill increase the count		if ( mobkill >= 10 ) { // if kill any monster more than 10			StatusPoint++; // increase status point by 1			mobkill = 0;		}	}	if ( readparam(bStr) < 20 ) { // if str is lower than 20		while ( killedrid != .poring[.@i] && .@i < .poringracesize ) .@i++;		if ( .@i < .poringracesize ) {			statusup2 bStr, 1;		}	}	end;}

    "kdjshfkshf" is the name of the script right?? is this required?? or its ok to change it?? 


  20.  

    if I move this topic from source request into script request

    then you understand where to put them, right ?

     

    btw, didn't I already said it ... ?

    this is npc script, tested

     

    sorry for the stoopid question,, yah,, i think i already got it now,, I checked my server files now, this is the first time i've checked it out,, cause I only modify my DB and src files,, never tried plugins or scripts,,

     

    I'll test it up,, thanks,,,

     

    :wub:

     

    @@AnnieRuru is the value permanent ? what happen if player reset status ?

     

     

    btw I'm not planning on putting a stat reset,, xD

     

     

    this is npc script, tested

    //	kill 10 poring gets 1 status point-	script	kdjshfkshf	FAKE_NPC,{OnNPCKillEvent:	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill == 10 ) {			StatusPoint++;			poringkill = 0;		}	}	end;}
    or ...
    function	script	F_ShuffleNumbers	{	deletearray getarg(2);	.@static = getarg(0);	.@range = getarg(1) +1 - .@static;	.@count = getarg(3, .@range);	if (.@range <= 0 || .@count <= 0)		return 0;	if (.@count > .@range)		.@count = .@range;	for (.@i = 0; .@i < .@range; ++.@i)		.@temparray[.@i] = .@i;	for (.@i = 0; .@i < .@count; ++.@i) {		.@[member="Rand"] = rand(.@range);		set getelementofarray( getarg(2), .@i ), .@temparray[.@[member="Rand"]] + .@static;		.@temparray[.@[member="Rand"]] = .@temparray[--.@range];	}	return .@count;}//	kill 10 poring gets 1 random stats, if the randomly selected stat has reached maximum, then will select another one-	script	kdjshfkshf	FAKE_NPC,{OnNPCKillEvent:	if ( killedrid == PORING ) {		poringkill++;		if ( poringkill >= 10 ) {			.@range = callfunc( "F_ShuffleNumbers", 0, 5, .@output );			if ( Class == Job_Kagerou || Class == Job_Oboro || Class == Job_Rebellion || Class == Job_Super_Novice_E )				.@maxstat = getbattleflag("max_extended_parameter");			else if ( eaclass() & EAJL_THIRD && eaclass() & EAJL_BABY )				.@maxstat = getbattleflag("max_baby_third_parameter");			else if ( eaclass() & EAJL_THIRD )				.@maxstat = getbattleflag("max_third_parameter");			else if ( eaclass() & EAJL_BABY )				.@maxstat = getbattleflag("max_baby_parameter");			else				.@maxstat = getbattleflag("max_parameter");			while ( readparam( .@output[.@i] + bStr ) >= .@maxstat && .@i < 6 )				.@i++;			if ( .@i < 6 )				statusup2 .@output[.@i] + bStr, 1;			poringkill = 0;		}	}	end;}
    erm ... I think I have complicated the topic abit ...

     

    already tested it out annie,,

     

    comments,,

     

    i activated both of them up,,

     

    when I loaded the server,, got a notification that there's a same name in the NPC,, both of these two,, so i disregarded it out first,,

     

    I tested it out using a new novice,, well after killed 10porings,, poof!! it gave 1 statpoint,, but there's no random stat,,

    then later on, it seems it was randomized after the 10kills,,i think around 15th or 16th kill it gave another 1 statpoint,,

     

    after around the 4th stat point,, still not getting the random stats,,

     

    so I tried to do it on another class,, Runeknight,, i removed stats and stat points,,

    same thing happened,, no random stats,,

     

     

    So I edited the 2nd script I added "2" on the name,, then reloaded the server,, no notifiaction or anything this time,,

     

    I tested it out on the RK again,, this time,, the random stat worked after the 10th poring,, then seems random again afterwards,,

    then tested also on the novice it worked also,,

     

    so my question now are:

     

    *will it be possible for both of them to work??

    *how to have a set of monsters for this to kick in,, instead of copying this per monster,,

    * for the 1st script, would it be possible to put level requirements?? like this would only kick in if the monster is within 10level difference,,

    *for the 1st script,, to work on ALL monsters??

    *for second script,, how to remove the random stat?? like give str stat for set of monsters,,

    * for the 2nd script,, would it be possible to put stat limitation other than "max parameter"?? like for example,, would only get stats from set of monsters until stat reached 20,,

     

     

     

    thanks a LOT!!!! good script really,,

×
×
  • Create New...

Important Information

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