Jump to content

paolokupal

Members
  • Posts

    49
  • Joined

  • Last visited

Posts posted by paolokupal

  1. okay, so i tried to make new passive skill for my swordsman job

    here's my code
     

    \src\map\skill.h

     

     

     
    enum e_skill {
     
     
    PS_ONEAXE = 8443,
    PS_TWOAXE = 8444,
    NV_BASIC = 1,
     
    SM_SWORD,
    SM_TWOHAND,

     

    \src\map\battle.c

     

    case W_1HAXE:

    if((skill_lv = pc->checkskill(sd,PS_ONEAXE)) > 0)
    damage += (skill_lv * 100);
    break;
    case W_2HAXE:
    if((skill_lv = pc->checkskill(sd,PS_TWOAXE)) > 0)
    damage += (skill_lv * 150);
    break;

     

    in my db
    \db\pre-re\skill_db.txt

     

    8443,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0, PS_ONEAXE,One-Handed Axe Mastery

    8444,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0, PS_TWOAXE,Two-Handed Axe Mastery

     

    \db\pre-re\skill_tree.conf

     

    Swordsman: {

    inherit: ( "Novice" );
     
    skills: {
     
    PS_ONEAXE: 10
     
    PS_TWOAXE: {
    MaxLeve: 10
    PS_ONEAXE: 1
    }
    SM_SWORD: 10
    SM_TWOHAND: {
    MaxLevel: 10
    SM_SWORD: 1
    }
    SM_RECOVERY: 10
    SM_BASH: 10
    SM_PROVOKE: 10
    SM_MAGNUM: {
    MaxLevel: 10
    SM_BASH: 5
    }
    SM_ENDURE: {
    MaxLevel: 10
    SM_PROVOKE: 5
    }
    SM_MOVINGRECOVERY: 1
    SM_FATALBLOW: 1
    SM_AUTOBERSERK: 1
    }
    }

     

    in my grf
    lua files\skillinfoz\skillid.lub
     

     

    SKID = {

      PS_ONEAXE = 8443,
     
      PS_TWOAXE = 8444,
     

     

     

    lua files\skillinfoz\skilldescript.lub

     

    [sKID.PS_ONEAXE] = {

        "One Handed Axe Mastery",
        "MAX Lv : 10",
        "Skill Form: ^000099Passive^000000",
        "Description: ^777777Increase damage with One Handed",
        "Axe.^000000",
        "[Lv 1]: ^777777Atk +100^000000",
        "[Lv 2]: ^777777Atk +200^000000",
        "[Lv 3]: ^777777Atk +300^000000",
        "[Lv 4]: ^777777Atk +400^000000",
        "[Lv 5]: ^777777Atk +500^000000",
        "[Lv 6]: ^777777Atk +600^000000",
        "[Lv 7]: ^777777Atk +700^000000",
        "[Lv 8]: ^777777Atk +800^000000",
        "[Lv 9]: ^777777Atk +900^000000",
        "[Lv 10]: ^777777Atk +1000^000000"
      },
      [sKID.PS_TWOAXE] = {
        "Two Handed Axe Mastery",
        "MAX Lv : 10",
        "^777777Requirement : Axe Mastery 1^000000",
        "Skill Form: ^000099Passive^000000",
        "Description: ^777777Increase damage with Two Handed Axe Class Weapons.^000000",
        "[Lv 1]: ^777777Atk +150^000000",
        "[Lv 2]: ^777777Atk +300^000000",
        "[Lv 3]: ^777777Atk +450^000000",
        "[Lv 4]: ^777777Atk +600^000000",
        "[Lv 5]: ^777777Atk +750^000000",
        "[Lv 6]: ^777777Atk +900^000000",
        "[Lv 7]: ^777777Atk +1050^000000",
        "[Lv 8]: ^777777Atk +1200^000000",
        "[Lv 9]: ^777777Atk +1350^000000",
        "[Lv 10]: ^777777Atk +1500^000000"
      },

     

    lua files\skillinfoz\skillinfolist.lub

     

    [sKID.PS_ONEAXE] = {

    "PS_ONEAXE";
    SkillName = "One-Handed Axe Mastery",
    MaxLv = 10,
    SpAmount = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    bSeperateLv = false,
    AttackRange = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
    },
     
    [sKID.PS_TWOAXE] = {
    "PS_TWOAXE";
    SkillName = "Two-Handed Axe Mastery",
    MaxLv = 10,
    SpAmount = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    bSeperateLv = false,
    AttackRange = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
    },

     

     

     

     

    lua files\skillinfoz\skilltreeview.lub

     

     [JOBID.JT_SWORDMAN] = {

        [1] = SKID.SM_SWORD,
        [2] = SKID.SM_RECOVERY,
        [3] = SKID.SM_BASH,
        [4] = SKID.SM_PROVOKE,
        [5] = SKID.SM_AUTOBERSERK,
        [6] = SKID.SM_MOVINGRECOVERY,
        [8] = SKID.SM_TWOHAND,
        [10] = SKID.SM_MAGNUM,
        [11] = SKID.SM_ENDURE,
        [12] = SKID.SM_FATALBLOW,
        [15] = SKID.PS_ONEAXE,
        [22] = SKID.PS_TWOAXE
      },

     

     

    -------
    okay so i have already seen the passive skill in the skill window. but i cannot put any skill points in it.

    1922524_4190707702057_431110146_n.jpg

    can anyone tell me what i did wrong or is there anything i need to do that i havent done yet

  2. example if you played around 60 mins without entering a chatroom , afk, and vending. you can get a reward. 1hour= 3tcg

    thanks for the help in advance!

    Try this... just modified it from Nibi script... 1 hour 3 TCG and for 12 hour cons 50 TCG

    //===== Hourly Points Script =========================================

    //===== By: ==========================================================

    //= GorthexTiger modified by Nibi

    //===== Current Version: =============================================

    //= 1.0

    //===== Compatible With: =============================================

    //= Any eAthena Version

    //===== Description: =================================================

    //= Get Points every successful hours of gameplay, you cannot get

    //= the points even if you miss a second or a minute. A player will

    //= get a very big bonus if they played 12 hours consecutively

    //= or without logging out of the game. If the player is vending

    //= the script will then stop.

    //===== Additional Comments: =========================================

    //= You can modify the script to your liking.

    //= The default points is Kafrapoints change it anyway if you like.

    //= 1.1 = Check Chatting too

    //= 1.2 = 5 Minute Idle Check & @at/@autotrade check.

    //= 1.3 = Corrected the current balance line on 12 Hours Consecutive

    //====================================================================

    - script hourlypoints -1,{

    //--Start of the Script

    OnPCLoginEvent:

    attachnpctimer ""+strcharinfo(0)+"";

    initnpctimer;

    end;

    OnTimer30000:

    //Check if Vending (normal or @at)

    if(checkvending() >= 1 || checkchatting() == 1) {

    dispbottom "The hourly points event stopped because you were vending / chatting. Please relog if you wish to start again.";

    stopnpctimer;

    end;

    }

    //Check if Idle

    getmapxy( .@map$, .@x, .@y, 0 );

    if(@map$ == .@map$ && @x == .@x && @y == .@y) {

    set @afk, @afk + 1;

    }

    //If move timer resets

    else {

    set @afk, 0;

    }

    set @map$, .@map$; set @x, .@x; set @y, .@y;

    //Idle Check for 5 Minutes

    if(@afk == 5) {

    dispbottom "The hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";

    stopnpctimer;

    end;

    }

    end;

    OnTimer60000:

    set @minute, @minute + 1;

    //Check for 1 Minute

    if(@minute == 60){

    set @minute,0;

    set .@point_amt, 3; //Points to get every hour (default: 10)

    getitem 7227,.@point_amt;

    dispbottom "You received "+.@point_amt+" TCG by staying ingame for 1 hour";

    set @consecutive_hour, @consecutive_hour + 1;

    }

    //Check for 12 hours consecutive

    if(@consecutive_hour == 12) {

    set @consecutive_hour,0;

    set .@cpoint_amt, 50; //Points to get for 12 Consecutive hours (default: 50)

    getitem 7227,.@point_amt;

    dispbottom "You received "+.@point_amt+" TCG in playing for 12 consecutive hours";

    }

    stopnpctimer;

    initnpctimer;

    end;

    }

    //--End of the Script

    just use this and change the getitem 7227 to pods id :)

    Ref: http://rathena.org/board/topic/53999-hourly-tcg-reward/

  3. This is my own version of Lottery/Lotti npc script.

     

    Options:

     

    set .npc$,"[Lotti]"; // NPC Name
    set .MaxNum,10; // Total number to win
    setarray .SWinNum[0],1,2,5; // Number need to win Single Reward
    setarray .MWinNum[0],3,4,6; // Number need to win Multi Reward
    // Setup the .MWinT if you use Give random
    set    .MWinall,0; // 1 = Give all Multi Reward, 0 = Give random

    // Note: .MWinall must be 0 inorder to use this)
    // Note: If Not-Repeat make sure Amount of reward >= .MReward item)
    // 0 = Off (Default: 1 random item only), 1 = On; 0 = Consecutive , 1 = Random; 0 = Not, 1 = Repeat Reward;
    // Format: <On/Off>,<Consecutive/Random>,<Not-Repeat/Repeat>,<Amount of reward can win>
    setarray .MWinT[0],1,1,1,2;

    // 1 = On , 0 = off;
    set .announce,1; // announce
    set .announcec$,"ffc0cb"; // announce color

    // Format: <item ID>,<amount>{,...};
    setarray .ItemR[0],909,5,7126,5; // Item ID,Item Amount
    setarray .ZenyR,1000000; // Item Requirements

    // Format: <item ID>,<amount>,<Refine>{,...};
    setarray .SReward[0],2301,1,10,1202,1,5,2304,1,5,2319,1,5,909,5,0,741,1,0; // Single Reward

    // Format: <item ID>,<amount>,<Refine>{,....};
    setarray .MReward[0],501,5,0,502,5,0,503,5,0,504,5,0; //Multiple Reward

     

    ________________________________
    I hope you like it :)

     

    Lottie.txt

    • Upvote 1
  4. vending.c:234: error: too few arguments to function 'pc_payzeny'

    vending.c:237: error: too few arguments to function 'pc_getzeny'

    vending.c:256: error: too few arguments to function 'pc_payzeny'

    vending.c:259: error: too few arguments to function 'pc_getzeny'

     

    It's just missing the LOG entry in the parameter

    How did you fix this ?

    Problem solved : http://rathena.org/board/topic/74085-compiling-error-on-vendingc/

  5. Thank you so much ! :)

    Thank you so much ! :)

    ---

    I think this code must be removed ?

    script_setarray_pc(sd, "@sold_sold", i, (void*)(intptr_t)sd->status.inventory[idx].identify, &key_identify);
    

  6. callshop "EnTrade",2;

    npcshopattach "EnTrade";

    end;

    OnSellItem:

    set @totalcost,0;

    for(set @i,0; @i < getarraysize(@sold_nameid); set @i,@i+1) {

    dispbottom @sold_nameid[@i] + ":" + @sold_refine[@i] + ":" + @sold_card1[@i] + ":" + @card2[@i] + ":" + @sold_card3[@i] + ":" + @sold_card4[@i];

    }

    Sorry for that because the variables are special given for the callshop script ..

  7. I am having problem in getting the value for the @sold_card1,@sold_card2,@sold_card3,@sold_card4, and @sold_refine.

    when i am selling my dagger full load with card in this order.

    1 : Turtle_General_Card

    2 : Doppelganger_Card

    3 : Doppelganger_Card

    4 : Phreeoni_Card

    I do get Phreeoni_Card in @sold_card1 and the rest with no result.

    Help me to solve this ..

  8. Thanks for the replies i just did follow your suggestions ..

    ---------------------------------

    This what i just did.

    if (getequiprefinerycnt(.@part) > 9 && getequiprefinerycnt(.@part) < 14 && getequiprefinerycnt(.@part) != 10) {

    do {

    downrefitem .@part;

    }while (getequiprefinerycnt(.@part) != 10);

    }else if (getequiprefinerycnt(.@part) > 13 && getequiprefinerycnt(.@part) < 18 && getequiprefinerycnt(.@part) != 14) {

    do {

    downrefitem .@part;

    }while (getequiprefinerycnt(.@part) != 14);

    }else if (getequiprefinerycnt(.@part) > 17 && getequiprefinerycnt(.@part) < 20 && getequiprefinerycnt(.@part) != 18) {

    do {

    downrefitem .@part;

    }while (getequiprefinerycnt(.@part) != 18);

    }

  9. A little help here ..

    this downrefitem decreases by 1, what i want is if the refine rate was 10 -13 and when it fails the refine will downgrade to +10.

    Refine=Decrease

    10 - 13= 10

    14 -17= 14

    18 -19= 18

    Thank you .. :)

    BUILDIN_FUNC(downrefitem)
    {
    int i = -1,num,ep;
    TBL_PC *sd;
    
    num = script_getnum(st,2);
    sd = script_rid2sd(st);
    if( sd == NULL )
    return 0;
    
    if (num > 0 && num <= ARRAYLENGTH(equip))
    i = pc_checkequip(sd,equip[num-1]);
    if(i >= 0) {
    ep = sd->status.inventory[i].equip;
    
    //Logs items, got from (N)PC scripts [Lupus]
    log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i]);
    
    sd->status.inventory[i].refine++;
    pc_unequipitem(sd,i,2); // status calc will happen in pc_equipitem() below
    
    clif_refine(sd->fd,2,i,sd->status.inventory[i].refine = sd->status.inventory[i].refine - 2);
    clif_delitem(sd,i,1,3);
    
    //Logs items, got from (N)PC scripts [Lupus]
    log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i]);
    
    clif_additem(sd,i,1,0);
    pc_equipitem(sd,i,ep);
    clif_misceffect(&sd->bl,2);
    }
    
    return 0;
    }

  10. index.php?app=downloads&module=display&section=screenshot&id=2633

    File Name: Ragnarok File Manager

    File Submitter: paolokupal

    File Submitted: 29 Oct 2012

    File Category: Client Tools

    Content Author: Kevin Ponsones (Wyt)

    Do not remove the application from the RO File Manager folder.

    This Ragnarok File Manager was made by using VB.NET 2010.

    If you are having problems on fixing your client side data files and scripting your items this application will help you big time. /ok

    • You can add scripts as many as you want at the same time. Then compile everything with 1-click.
    • Manage your scripts on the following txt files:

    1. idnum2itemdesctable.txt
    2. idnum2itemdisplaynametable.txt
    3. idnum2itemresnametable.txt
    4. item_db2.txt and item_db.txt
    5. num2itemresnametable.txt
    6. itemslotcounttable.txt
    7. cardpostfixnametable.txt
    8. cardprefixnametable.txt
    9. num2cardillustnametable.txt

    • Transfer one or more client side data files into your designated path.
    • Auto creation of job folder that is being used on weapon files.
    • Auto detect and add if the sprite and act file with specific gender does not have gender on its file name.
    • item_bonus database and item_db guide.
    • Smart guide optional function on creating item scripts. For you to know the only required fields. (Recommended)
    • Supports both hercules and rathena item_db.
    • Flexible database. You can add more records to be used in item scripting.

    List of tables that you can edit:

    Item_Bonus_Tbl

    Item_Ele_Tbl

    Item_Loc_Tbl (If you want to mix equipment locations for card purposes.)

    Item_Upper_Tbl (If you want to mix job bitmasks.)

    Job_Tbl (If you want to mix job bitmasks for item job requirement purposes.)

    The other tables that's not mentioned must not be touched.

    • Do not erase or edit the default record of the database.
    • Easy to use.

    I am planning to include the other server and client side scripting. /ic

    Software Requirements:

    • .Net Framework 4.0
    • MS Access (If you want to edit the database.)

    Important: Do not erase the database. You can add new data but DO NOT REMOVE or edit the default data.

    when you see <Don't Touch> means don't touch, cause the system use this string as breakpoint. /no1

    Click here to download this file

    • Upvote 1
×
×
  • Create New...