Jump to content

REKT

Members
  • Content Count

    372
  • Joined

  • Days Won

    1

Posts posted by REKT


  1.  

    You can use BaseJob instead, but this will also include baby classes and 3rd job classes for Assassin, Bard and Knight.

    Not necessary to create a function, if you're using this for like 1 or 2 equipment(s).

     

    {callfunc("Classes_Check");},{},{}
    function	script	Classes_Check	{	.@baseJob = BaseJob;	if (.@baseJob == Job_Assassin || .@baseJob == Job_Bard || .@baseJob == Job_Knight) { 		bonus2 bAddRace,7,20;		bonus bIntravision,0;				if(getrefine()>=10)			bonus bAllStats,5;	}	return;}

     

    This script looks nice,

    BTW, i'm making this kind of bonuses because i wanted to make each classes has different bonuses.

    e.g Mage or High Wizard +1 INT so on and so forth, how can i add another class? with different bonuses?

     

     

    Thank you.!


  2. Hi, thanks for the respond, much appreciated! i will try to test this out.

     

    Thank you Again.!

     

     

    Opps, after i wear the item.

     

    [Error]: script:getarg: index <idx=0> out of range <nargs=0> and no default value found

     

     

    script:

    function    script    Classes_Check    {    if( getarg(0)==Job_Assassin || getarg(0)==Job_Assassin_Cross ) goto Lskillssin;    if( getarg(0)==Job_Bard || getarg(0)==Job_Clown ) goto Lskillsbard;    if( getarg(0)==Job_Knight || getarg(0)==Job_Lord_Knight ) goto Lskillsknight;    end;    Lskillssin:    	    bonus2 bAddRace,7,20;	    bonus bIntravision,0;	    if(getrefine()>=10) { bonus bAllStats,5; }    end;Lskillsknight:    	    bonus2 bAddRace,7,20;
        bonus bIntravision,0;
        if(getrefine()>=10) { bonus bAllStats,5; }
       end;
    
    Lskillsbard:
    
        bonus2 bAddRace,7,20;
        bonus bIntravision,0;
        if(getrefine()>=10) { bonus bAllStats,5; }
       end;
    }
    
    


  3. Hello, There! i would like to ask for pleased support for the 'OnPCStatCalcEvent'

    How do i set only minimum of +50 Only?

     

    SCRIPT:

     

       	 mes "which bonus do you want ?";        mes "NOTE: each of stat is only +1 UPGRADE until you reach the maximum +50";        next;        .@s = select ( "str +1", "agi +1", "vit +1", "int +1", "dex +1", "luk +1" ) -1;        if ( bonus_stat & 1 << .@s ) {        mes "You already reach the maximum bonus stats";        close;    }    bonus_stat = bonus_stat | 1 << .@s;    nude;    close;OnPCStatCalcEvent:    for ( .@i = 0; .@i < 6; .@i++ )        if ( bonus_stat & 1 << .@i )            bonus .@i + 13, 1;    end;}

     

    SOURCE:

     

    Index: clif.c===================================================================--- clif.c    (revision 17007)+++ clif.c    (working copy)@@ -9359,6 +9359,8 @@             clif_broadcast(&sd->bl, output, strlen(output) + 1, 0x10, SELF);         } +        status_calc_pc(sd,0); // run OnPCStatCalcEvent+         map_iwall_get(sd); // Updates Walls Info on this Map to Client         sd->state.changemap = false;     }Index: npc.c===================================================================--- npc.c    (revision 17007)+++ npc.c    (working copy)@@ -3560,6 +3560,7 @@         {"Die Event",script_config.die_event_name},         {"Kill PC Event",script_config.kill_pc_event_name},         {"Kill NPC Event",script_config.kill_mob_event_name},+        {"Stat Calc Event",script_config.stat_calc_event_name},     };	  for (i = 0; i < NPCE_MAX; i++)Index: npc.h===================================================================--- npc.h    (revision 17007)+++ npc.h    (working copy)@@ -103,6 +103,7 @@     NPCE_DIE,     NPCE_KILLPC,     NPCE_KILLNPC,+    NPCE_STATCALC,     NPCE_MAX }; struct view_data* npc_get_viewdata(int class_);Index: script.c===================================================================--- script.c    (revision 17007)+++ script.c    (working copy)@@ -247,6 +247,7 @@     "OnPCLoadMapEvent", //loadmap_event_name     "OnPCBaseLvUpEvent", //baselvup_event_name     "OnPCJobLvUpEvent", //joblvup_event_name+    "OnPCStatCalcEvent", //stat_calc_event_name     "OnTouch_",    //ontouch_name (runs on first visible char to enter area, picks another char if the first char leaves)     "OnTouch",    //ontouch2_name (run whenever a char walks into the OnTouch area) };@@ -17269,6 +17270,19 @@     return 0; } +BUILDIN_FUNC(stat_recalc) {+    TBL_PC* sd;+    if ( script_hasdata( st, 2 ) ) {+        if ( data_isstring( script_getdata( st, 2 ) ) )+            sd = map_nick2sd( script_getstr( st, 2 ) );+        else+            sd = map_id2sd( script_getnum( st, 2 ) );+    } else+        sd = script_rid2sd(st);+    if ( sd )+        status_calc_pc( sd, 0 );+    return 0;+}  // declarations that were supposed to be exported from npc_chat.c #ifdef PCRE_SUPPORT@@ -17726,5 +17740,7 @@     BUILDIN_DEF(checkquest, "i?"),     BUILDIN_DEF(changequest, "ii"),     BUILDIN_DEF(showevent, "ii"),++    BUILDIN_DEF(stat_recalc, "?"),     {NULL,NULL,NULL}, };Index: script.h===================================================================--- script.h    (revision 17007)+++ script.h    (working copy)@@ -28,6 +28,7 @@     const char *loadmap_event_name;     const char *baselvup_event_name;     const char *joblvup_event_name;+    const char *stat_calc_event_name;	  const char* ontouch_name;     const char* ontouch2_name;Index: status.c===================================================================--- status.c    (revision 17007)+++ status.c    (working copy)@@ -2423,6 +2423,8 @@     pc_delautobonus(sd,sd->autobonus2,ARRAYLENGTH(sd->autobonus2),true);     pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),true); +    npc_script_event( sd, NPCE_STATCALC );+     // Parse equipment.     for(i=0;i<EQI_MAX-1;i++) {         current_equip_item_index = index = sd->equip_index[i]; //We pass INDEX to current_equip_item_index - for EQUIP_SCRIPT (new cards solution) [Lupus]

     

    SORRY for the DOUBLE POST TOPIC, please DELETE the OTHER one.

     

    Hopefully someone would HELP me this out, greatly APPRECIATED!

     

    Thank you!!!


  4. Hi, sorry for late late respond, i'm really kinda busy i don't have TIME to test it out, sorry for waiting.

     

    BTW, i have TESTED it now, after reaching the +50 and then i try again to add +1 the +50 will back to normal >,<|

    Would you mind to test it?

     

    Also, have you tried when you add +1 stat when i @reloadscript it will gone >,<


  5. Who has, the working client with Ragexe? i downloaded the Judas exe, i got this, system/monster_size_effect.lub

    And also something 2nd pop-up ChampionmonsterM?? 

     

    Can someone tell me, how does it work properly.

    Thank you.


  6. Hello, nah!  :meow:  my firstime to request in this script section thread, Please correct me if i'm in the wrong thread maybe this could be source or script area.

    My request is, can i request a script or source that, attach only + attributes? not the based attributes.

    for e.g my max stats is 199 (for Highrate server), and then a player told me if it would be nice if we will put an NPC Donation that gives +attributes that maximum atleast +50, depends only if the player which +attributes he/she will add

    example: A player want to increase his/her STR + attributes to the max of set. +50 (or it could be set to owner's like)

    If possible? each +attributes different payments? e.g for STR - 607 AGI - 607 VIT - 608 INT - 609 DEX - 609 LUK - 610

     

     

    since i don't want to have costume items with {statsall}

     

    post-386-0-30788100-1366241967_thumb.png

     

    Please let me know if this is possible.
    I'd be happy if someone could do this for me.

     

     


    Thank yo for helping!!! :meow:  :meow:  :meow:


  7. Pardon for my ignorance, but how can i make this card, both Upper,Lower and Middle headgear to be slotted??

     

    25003,Strength_Card,Strength Card,6,20,,10,,,,,,,,768,,,,,{ bonus bStr,5; },{},{},{},{}

     

    Perhaps, i just search on every WiKi about this locations.

     

     

     

    //Loc:
    //1 = Lower Headgear
    //2 = right hand
    //4 = Garments
    //16 = Armor
    //32= Left Hand
    //34 = both hands
    //64 = Footgear
    //136 = Accesory
    //256 = Upper Headgear
    //512 = middle headgear
    //513 = middle & lower headgear
    //768 = Upper & middle headgear


    Please, correct me if i wrong.
    Thank you IND, for the respond.


  8. Hello, i just wanna ask some curios question, does the database have this FF slots:

     

    ?? = Upper, Middle  & Lower headgear
     

    Because i have a custom cards that can slot Upper,Middle and Lower Headgear.

    How can i change it to 3 slots locations?

     

    Does it need Source Modifications?


    Correct me if i'm wrong.

    Thank you!!!


  9. Hello there, done switching after i i test. it works but just curios, why i can't invite a player for a PARTY?

    it says 'The Character is currently online does not exist' if i click the name it will appear like this e.g [255/99] Vlync

    So by means, that name appear is currently offline because the player's name is Vlync it will not be invited.

    How do i fix this one?

     

    post-386-0-30371100-1366051504_thumb.png


    Correct me if i'm wrong.

    Thank you!


  10.  

    here you have it...

     

    Index: clif.c===================================================================--- clif.c (revision 11504)+++ clif.c (working copy)@@ -8325,6 +8332,7 @@	 struct map_session_data *ssd = (struct map_session_data *)bl;	 struct party_data *p = NULL;	 struct guild *g = NULL;+    char name[NAME_LENGTH];	 //Requesting your own "shadow" name. [Skotlex]	 if (ssd->fd == fd && ssd->disguise)@@ -8336,7 +8344,9 @@	  WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0;	  break;	 }-    memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+    //memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+    sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level,ssd->status.name);+    memcpy(WBUFP(buf,6), name, NAME_LENGTH);	 if( ssd->status.party_id ) {	  p = party_search(ssd->status.party_id);@@ -8450,6 +8460,7 @@  int cmd = 0x195, ps = -1;  struct party_data *p = NULL;  struct guild *g = NULL;+ char name[NAME_LENGTH];  nullpo_retv(ssd);@@ -8459,7 +8470,9 @@  WBUFW(buf,0) = cmd;  WBUFL(buf,2) = ssd->bl.id;- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level,ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH);+ //memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);  if (!battle_config.display_party_name) {   if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) != NULL) 

    :meow:

     

    This is the one i used.

    Tested RA Trunk 17231


  11. +1 it works, but everytime i type /leave the [%d/%d] 

    it will gone in the char, when i reconnect it will appear again.

    How to fix this one?

     

    Sorry if i'm asking to much in here, i'm always finding bugs so that it really works 100%


    Thank you. :rolleyes:

×
×
  • Create New...

Important Information

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