Jump to content

KirieZ

Core Developers
  • Content Count

    211
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by KirieZ


  1. File Name: iRO Christmas 2016

    File Submitter: KirieZ

    File Submitted: 03 Jan 2017

    File Category: Events & Games

     

    Quite late, but here is iRO's Christmas Event of 2016. It was scripted while I played, so probably some things aren't perfect, like the monster and item data.

    This file contains:

    • Santa Klaus giveaway (christmas_giveaway.txt): This NPC seems to be enabled every christmas on iRO. Santa Klaus is at the center of Prontera giving a gifts, players can choose between three gifts and allows warping to guild dungeons. The gifts are:
      • Skill and Status reset
      • Seal Status reset
      • Gifts:
        • 3x Enriched Elunium
        • 3x Enriched Oridecon
        • 5x Red Envelope
        • 3x Yellow Butterfly Wing
        • 30 minutes Job EXP bonus (Job Battle Manual effect)

      [*]Christmas Quest (christmas_2016.txt): This is the quest. It starts at Eden Group HQ, then you have to do some deliveries to get Sprig of Holly and then turn them into a Costume headgear. It contains a daily quest.

    In the zip file you'll find both scripts and client/server changes.

    One script doesn't depend on the other one, that's why they're in separate files.

     

    Known Differences:

    • The Santa's giveaway sets a quest in the client, but this ID is out of Hercules ID Range, so I changed it
    • In Christmas Quest, the first NPC on the quest line shows a message over her head to the player only, I couldn't find a command to do this, so it shows to everybody.
    • On iRO, the daily quest is reseted everyday at 4AM, but Hercules seems to not have a command to set time limit explicitly (instead we use quest_db) so I set it to 23h time limit.

     

    If something is wrong, let me know and I'll try to fix as soon as possible.

     

    Click here to download this file


  2. As far as I remember you can't read player's timer, but can't you make a player variable that stores the time when player will be warped?

    example, if player will be able to stay in the room for 2 hours, you can do something like:

    warpTime = gettimetick(2) + 2 * 3600; // 3600 = 1 hour
    

    Then, if you want to display how much time player still have:

    dispbottom "You still have " + (warpTime - gettimetick(2)) + " seconds in this room";
    

    I've not tested it, but I believe it can give you an idea of how to do it.


  3. inter-server.conf is now inside conf/common folder. But you'll not find this Log settings here as it include global/sql_connections.

    To make it easy, go to conf/import and open inter-server.conf, inside inter_configuration, add this:

    	log: {
    		sql_connection: {
    			// [INTER] You can specify the codepage to use in your mySQL tables here.
    			// (Note that this feature requires MySQL 4.1+)
    			//default_codepage: ""
    
    			// [LOGIN] Is `userid` in account_db case sensitive?
    			//case_sensitive: false
    
    			// For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1.
    			// Under windows, you want to use 127.0.0.1.  If you see a message like
    			// "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
    			// and you have localhost, switch it to 127.0.0.1
    			db_hostname: "127.0.0.1"
    			db_port: 3306
    			db_username: "root"
    			db_password: "ragnarok"
    			db_database: "loginlog"
    			//codepage:""
    		}
    	}
    

    This is the step 11 of your image.


  4.  

     

    Thanks for the quick response, were there any other changes that were made aside from changing @price to @totalprice? Because I would like to just replace the new lines into the existing one on my live server (edited a couple of stuff and didn't wanted to re-do it again xD).

     

    @canditw : Thanks! I just uploaded a new version fixing this issue, it should be approved in some hours.

    I'm not sure if by "total price" you meant all the lines, the changes were:

     

     

     

    At Line 149:

    @price *= .@refTimes;
    

    To:

    .@totalPrice = @price * .@refTimes;
    

    At Line 154:

    From:

    mes "a service fee of " + @price + " Zeny."; 

    To:

    mes "a service fee of " + .@totalPrice + " Zeny.";
    

     

    And at line 164:

    From:

    else if((countitem(@item) < .@refTimes) || (Zeny < @price)) {
    

    To:

    else if((countitem(@item) < .@refTimes) || (Zeny < .@totalPrice)) {
    

     

     


  5. @@keripikotaku , @@JoyRo : I've just submited a new version with the 100% bug fixed. Sorry for the delay.

     

    @@keripikotaku : This +7 safe ticket for refines over +7 was because I set it like that as a place-holder, in this new version I've changed them to nothing, you can change these items to wathever you want in the settings.

     

    To everybody:

    this new version includes a new config (BreakWarning) and a overhaul of how refine fail results works, please take a look on these settings, as fail results no more work like it did before.


  6. If by break you mean when its name becomes red, you can delete the item (using delitem2 or delequip for an equipped item) then use getitem2 to add the item again, note that you need to retrieve the information about the item to recreate it, to do this you can use getinventorylist.

    On delitem2 you should use "attribute" parameter as 0 (not broken) and on getiem2 "attribute" should be 1 (broken item)

     

    If by break you mean destroying the item (like when a refine fails) you can simply use delitem2 / delequip or failedrefitem.

     

    (the links in the commands will point you to these commands doc)

     

    Hope this helps


  7. hiya.. @@KirieZ

    i just test ur script.

    i found something strange..

    1. with refine multiple times, i choose 10 times to refine 0 vanargand helm. and viola, i get +10 vanargand helm without fail

    2. with safe item, when i go to +8 > +9, or +9 > +10, it say i can just using safe to 7 armor sertificate

     

    maybe you can fix it? ><

    its great script btw ^^

    keep it up!

    I'll check this as soon as possible, I believe on wednesday I'll have some time so I can do it. Thanks!


  8. Thats too easy, if someone makes a replay(or packet capture), with just moving around the map, we can get to know exact monster count by checking unique GID

    does the ragnarok replay files includes packets or GIDs? :o (Now I can think about the replay being a file with all packets received and that is "shown again")

     

    Not sure if someone can do it, but I would suggest doing a list of what is missing so who wants to help can also get an idea of what he really have to replay to help, I know there's a post from kisuka with what changed in each episode, but I don't remember seeing a list of what is currently missing in herc.


  9. @@xlaws27 about the debug, I'll check as soon as possible, do you know exactly when it appears? are you using hercules or rAthena?

    I'll include the fail possibilities soon, I would like to add it and fix this debug before submiting a new version.

     

    About the fail settings, it works this way:

    Let's say:

    --- Refine Success Chance: 60%

    --- Fail Results: (they doesn't have to sum any specific value)

    ----- Stay as is : 40%

    ----- Go down 1 level : 30%

    ----- Go down to +0: 10%

     

    By default, a chance is calculated by a random value between 0 and 100, if this value is smaller or equal to the sucess chance, it's a success if not, it is a fail. (this do make sense, as a chance of 60% is 60 numbers in a total of 100)

     

    When fail results are set, it will be this way:

    --- Try to refine (60%)

    ----- Success: Done

    ----- Fail:

    -------- Calculates chance to stay as is

    -------- Calculates chance to go down one level

    -------- Calculates chance to go to +0

    -------- Else: break item

     

    Now I'm thinking if it would be better to make an array where you write fail possibilities :P

    like: setarray .fails, 1, 1, 1, 2, 2, 3, 3, 3, 4; (total: 10 items)

     

    so you would have 30% to break (1), 20% to stay as is (2), 30% to go down 1 level (3), 10% chance to go to +0 (4)

    I'm accepting suggestions about this  :D

     

    I hope this makes these settings clear


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


  11. This debug didn't appear to me.

     

    egg1.gat, 275, 178, 5	script	Dressing Girl	1_F_MARIA,{    addtimer 1, strnpcinfo(0)+"::OnChangeBack";        mes "do you want to try out the look of some awesome headgear?";    next;	.@headId = 0;	switch(select("Upper:Middle:Lower")) {		case 1: .@headId = select(.upperMenu$) - 1; .@headId = .upper[.@headId];	break;		case 2: .@headId = select(.middleMenu$) - 1; .@headId = .middle[.@headId]; break;		case 3: .@headId = select(.lowerMenu$) - 1; .@headId = .lower[.@headId]; break;	}    if ( getiteminfo( .@headId, 5 ) & 256 )        changelook LOOK_HEAD_TOP, getiteminfo( .@headId, 11 );    else if ( getiteminfo( .@headId, 5 ) & 512 )        changelook LOOK_HEAD_MID, getiteminfo( .@headId, 11 );    else if ( getiteminfo( .@headId, 5 ) & 1 )        changelook LOOK_HEAD_BOTTOM, getiteminfo( .@headId, 11 );    else {        mes "this is not a headgear.";        close;    }    mes "That's look nice on you";    close;OnChangeBack:    .@top = getequipid(EQI_HEAD_TOP);    changelook LOOK_HEAD_TOP, ( .@top == -1 )? 0 : getiteminfo( .@top, 11 );    .@mid = getequipid(EQI_HEAD_MID);    changelook LOOK_HEAD_MID, ( .@mid == -1 )? 0 : getiteminfo( .@mid, 11 );    .@low = getequipid(EQI_HEAD_LOW);    changelook LOOK_HEAD_BOTTOM, ( .@low == -1 )? 0 : getiteminfo( .@low, 11 );    end;OnInit:	// Upper headgear	setarray .upper[0],		29488;			// middle headgear	setarray .middle[0],		29489;		// lower header	setarray .lower[0],		29490;		    for ( .@i = 0; .@i < getarraysize(.upper); .@i++ )        .upperMenu$ = .upperMenu$ + getitemname(.upper[.@i]) +":";    	for ( .@i = 0; .@i < getarraysize(.middle); .@i++ )        .middleMenu$ = .middleMenu$ + getitemname(.middle[.@i]) +":";    	for ( .@i = 0; .@i < getarraysize(.lower); .@i++ )        .lowerMenu$ = .lowerMenu$ + getitemname(.lower[.@i]) +":";            end;}

  12. @@JoyRo If I remember well you can run a query on account_data table and set base_exp to 2 for an account id, it will have double exp (maybe instead of 2 you may have to put the new rate)

     

    So you've to add/set to a higher value when vip starts, and set back to 1 when vip ends


  13. For zeny you can set it at conf/char-server.conf, search for: start_zeny

     

    For knife I think it's not possible to give a refined item through the config (unless you give a box) but you can do with script.

    Something like:

    OnPCLoginEvent:    if (!firstLogin) {        getitem2 1201,1,1,10,0,0,0,0,0;        firstLogin = 1;    }end; 

     

    I've not tested it but it should work without errors. This will give for a knife for each character on its first login, if you want one per account change firstLogin to #firstLogin

×
×
  • Create New...

Important Information

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