Jump to content

Scylla

Members
  • Posts

    374
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Scylla

  1. 18 hours ago, Ice Bear said:

    i did it but you cant use a skill when ignore drop is on. give it up or wait for the author. to update those.

    In status.hpp

    OPTION_IGNOREDROP   = 0x20000000,

    Change to:

    OPTION_IGNOREDROP   = 0x40000000,

     

    • MVP 1
  2. trunk/db/pre-re(or re)/skill_tree.yml:

    Below //Merchant Remove:

    5,2544,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTDECORATE#Cart Decorate#

     

    luafiles514/lua files/skillinfoz/skilltreeview.lua or .lub
    Find:

    [JOBID.JT_MERCHANT] = {

    And below it, remove:

    [13] = SKID.MC_CARTDECORATE,

     

    • Love 1
  3. On 11/28/2020 at 7:29 PM, Chasewalk said:

    just like that @request but error on map-server  

    ACMD_FUNC(request)
    {
        if (!message || !*message) {
            clif_displaymessage(sd->fd,msg_txt(sd,277));    // Usage: @request <petition/message to online GMs>.
            return -1;
    }

            sprintf(atcmd_output, msg_txt(sd,278), message);    // (@request): %s
            intif_wis_message_to_gm(sd->status.name, PC_PERM_RECEIVE_REQUESTS, atcmd_output);
            if( DIFF_TICK( sd->request_delay_tick,gettick() ) > 0 ){
            clif_displaymessage(fd,"There is a 3 minutes delay in using @go command");
            return 0;
    }else{
            sd->request_delay_tick = gettick() + 180000; 
    }
            clif_disp_onlyself(sd, atcmd_output, strlen(atcmd_output));
            clif_displaymessage(sd->fd,msg_txt(sd,279));    // @request sent.
            return 0;
    }



    atcommand.cpp(8848,9): error C3861: 'clif_disp_onlyself': identifier not found

    Then try removing:

    clif_disp_onlyself(sd, atcmd_output, strlen(atcmd_output));

  4. 8 hours ago, Get Backers said:

    Hi Anyone how to reduce fly wing in goldroom but can not skill inside the goldroom thanks!

     

    601,Wing_Of_Fly,Fly Wing,11,60,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3) == "ordeal_1-2") warp strcharinfo(3),0,0; else itemskill "AL_TELEPORT",1; },{},{}

    if(strcharinfo(3) == "ordeal_1-2") warp strcharinfo(3),0,0; delitem 601,1;

     

  5. 8 hours ago, SSJ2Aydan said:

    How do I manually change the copied skill of a shadow chaser? I want to have duple light copied using reproduce but there are no arch bishops in my server. 

    db/re/skill_db.yml:

      - Id: 2054
        Name: AB_DUPLELIGHT
        Description: Duple Light
        MaxLevel: 10
        TargetType: Self
        DamageFlags:
          NoDamage: true
        Hit: Single
        HitCount: 1
        Element: Holy
        CopyFlags:
          Skill:
            Reproduce: true

    On CopyFlags, below Reproduce, add Plagiarism: true so should be:

        CopyFlags:
          Skill:
            Reproduce: true
            Plagiarism: true

     

  6. 1 minute ago, G-RO said:

     

     

    Hi All,

    I really appreciate your response.

    I like to edit/disable the effects of some items  pero ang laman lang po ng item_db.yml ko is yung nasa baba na quote. 
    wala po kahit isang itemID saan ko po makikita yung mga itemID na gusto ko baguhin effects at idisable. 

    
    # This file is a part of rAthena.
    #   Copyright(C) 2019 rAthena Development Team
    #   https://rathena.org - https://github.com/rathena
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program. If not, see <http://www.gnu.org/licenses/>.
    #
    ###########################################################################
    # Item Database
    ###########################################################################
    #
    # Item Settings
    #
    ###########################################################################
    # - Id                      Item ID.
    #   AegisName               Server name to reference the item in scripts and lookups, should use no spaces.
    #   Name                    Name in English for displaying as output.
    #   Type                    Item type. (Default: Etc)
    #   SubType                 Weapon or Ammo type. (Default: 0)
    #   Buy                     Buying price. When not specified, becomes double the sell price. (Default: 0)
    #   Sell                    Selling price. When not specified, becomes half the buy price. (Default: 0)
    #   Weight                  Item weight. Each 10 is 1 weight. (Default: 0)
    #   Attack                  Weapon's attack. (Default: 0)
    #   MagicAttack             Weapon's magic attack. (Default: 0)
    #   Defense                 Armor's defense. (Default: 0)
    #   Range                   Weapon's attack range. (Default: 0)
    #   Slots                   Available slots in item. (Default: 0)
    #   Jobs                    Jobs that can equip the item. (Map default is 'All: true')
    #   Classes                 Upper class types that can equip the item. (Map default is 'All: true')
    #   Gender                  Gender that can equip the item. (Default: Both)
    #   Locations               Equipment's placement. (Default: None)
    #   WeaponLevel             Weapon level. (Default: 0)
    #   EquipLevelMin           Minimum required level to equip. (Default: 0)
    #   EquipLevelMax           Maximum level that can equip. (Default: 0)
    #   Refineable              If the item can be refined. (Default: false)
    #   View                    View sprite of an item. (Default: 0)
    #   AliasName               Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
    #   Flags:                  Item flags. (Default: null)
    #     BuyingStore           If the item is available for Buyingstores. (Default: false)
    #     DeadBranch            If the item is a Dead Branch. (Default: false)
    #     Container             If the item is part of a container. (Default: false)
    #     UniqueId              If the item is a unique stack. (Default: false)
    #     BindOnEquip           If the item is bound to the character upon equipping. (Default: false)
    #     DropAnnounce          If the item has a special announcement to self on drop. (Default: false)
    #     NoConsume             If the item is consumed on use. (Default: false)
    #     DropEffect            If the item has a special effect when on the ground. (Default: None)
    #   Delay:                  Item use delay. (Default: null)
    #     Duration              Duration of delay in seconds.
    #     Status                Status Change used to track delay. (Default: None)
    #   Stack:                  Item stack amount. (Default: null)
    #     Amount                Maximum amount that can be stacked.
    #     Inventory             If the stack is applied to player's inventory. (Default: true)
    #     Cart                  If the stack is applied to the player's cart. (Default: false)
    #     Storage               If the stack is applied to the player's storage. (Default: false)
    #     GuildStorage          If the stack is applied to the player's guild storage. (Default: false)
    #   NoUse:                  Conditions when the item is unusable. (Default: null)
    #     Override              Group level to override these conditions.
    #     Sitting               If the item can not be used while sitting. (Default: false)
    #   Trade:                  Trade restrictions. (Default: null)
    #     Override              Group level to override these conditions.
    #     NoDrop                If the item can not be dropped. (Default: false)
    #     NoTrade               If the item can not be traded. (Default: false)
    #     TradePartner          If the item can not be traded to the player's partner. (Default: false)
    #     NoSell                If the item can not be sold. (Default: false)
    #     NoCart                If the item can not be put in a cart. (Default: false)
    #     NoStorage             If the item can not be put in a storage. (Default: false)
    #     NoGuildStorage        If the item can not be put in a guild storage. (Default: false)
    #     NoMail                If the item can not be put in a mail. (Default: false)
    #     NoAuction             If the item can not be put in an auction. (Default: false)
    #   Script                  Script to execute when the item is used/equipped. (Default: null)
    #   EquipScript             Script to execute when the item is equipped. (Default: null)
    #   UnEquipScript           Script to execute when the item is unequipped or when a rental item expires. (Default: null)
    ###########################################################################
    
    Header:
      Type: ITEM_DB
      Version: 1
    
    Footer:
      Imports:
      - Path: db/pre-re/item_db_usable.yml
      - Path: db/pre-re/item_db_equip.yml
      - Path: db/pre-re/item_db_etc.yml

     

    Then check these out:

    Imports:
      - Path: db/pre-re/item_db_usable.yml
      - Path: db/pre-re/item_db_equip.yml
      - Path: db/pre-re/item_db_etc.yml

    Hiniwalay na nila para mas madali.

  7. Not tested & not sure but try:

    izlude,128,112,3	script	Rental Donation	122,{
    
    disablenpc strnpcinfo(1);
     
    	mes "[RentalNPC]";
    	mes "Welcome to Beginning Ragnarok!!";
        	mes "What Service May I Offer You ?";	
    	next;
    	mes "Please select your class specific Rentalthat you want to get:";
    		switch(select("Rental Donation Increase:Rental Donation Magic:Rental Donation Reduce")) {
    			case 1:
    				mes "[RentalNPC]";
    				mes "Here's your Rental for Increase Donation Set";
    				rentitem 5013,300;
    				goto Message1;
    				end;
    			case 2:
    				mes "[RentalNPC]";
    				mes "Here's your Rental for Magic Donation Set";
    				rentitem 13945,300;
    				goto Message1;
    				end;	
    			case 3:
    				mes "[RentalNPC]";
    				mes "Here's your Rental for Reduce Donation Set";
    				rentitem 13945,300;
    				goto Message1;
    				end;
    				}
     
    	Message1:
    	mes "[RentalNPC]";
    	mes "Enjoy ur WOE.";
    	mes "If you need help. Please use @request / search for Game Staffs. Thank You.";
    	mes "Before Expired Please Remove The Card.GM Wont Responsible if any card Lost.";
     
    	close;
    
    OnSat2100:
    OnSun2100:
    	enablenpc strnpcinfo(1);
    	end;
    
    OnSat2200:
    OnSun2200:
    	disablenpc strnpcinfo(1);
    	end;
     
    	}

     

  8. On 6/6/2017 at 2:41 AM, ahdsf said:
    
    Following. My old programmer made a change in my soul linker. In the Esma skill. It is being used without Estin 7, Estun 7. How do I leave the requirements normal?
    Just to use the Esma ability. Using the above two skills?

    skill.cpp

    Just find this:

    		case SL_SMA:
    			if(!(sc && sc->data[SC_SMA]))
    				return false;
    			break;

    it should be commented by your old programmer so just remove the comments, or if your old programmer removed the entire line, just add those below this:

    		case HT_POWER:
    			if(!(sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == AC_DOUBLE))
    				return false;
    			break;

    And then recompile

  9. I've finally solved it.

    battle.cpp:

    	if (flag & BF_SHORT) {//Bounces back part of the damage.
    		if ( (skill_get_inf2(skill_id, INF2_ISTRAP) || !status_reflect) && sd && sd->bonus.short_weapon_damage_return ) {
    			rdamage += damage * sd->bonus.short_weapon_damage_return / 100;
    			rdamage = i64max(rdamage,1);
    		} else if( status_reflect && sc && sc->count ) {

    to

    	if (flag & BF_SHORT) {//Bounces back part of the damage.
    		if ( (skill_get_inf2(skill_id)&INF2_TRAP || !status_reflect) && sd && sd->bonus.short_weapon_damage_return) {
    			rdamage = i64max(rdamage,-1);
    		}
    		else if ( (status_reflect) && sd && sd->bonus.short_weapon_damage_return) {
    			rdamage += damage * sd->bonus.short_weapon_damage_return / 100;
    			rdamage = i64max(rdamage,1);
    		}
    		if( status_reflect && sc && sc->count ) {

    Thanks a lot to @Wazaby for assisting me with this.

     

    EDIT: You may just add this line on else if, if you want trap to reflect

    skill_get_inf2(skill_id)&INF2_TRAP

    EDIT 2:

     

     Just to update to my fix, for those people using bLongWeaponDamageReturn:

    in battle.cpp

    Find:

            if (!status_reflect && sd && sd->bonus.long_weapon_damage_return) {
                rdamage += damage * sd->bonus.long_weapon_damage_return / 100;
                rdamage = i64max(rdamage, 1);
            }
        }

    to:

            if (!status_reflect && sd && sd->bonus.long_weapon_damage_return) {
                rdamage = i64max(rdamage,-1);
            }
            else if (status_reflect && sd && sd->bonus.long_weapon_damage_return) {
                rdamage += damage * sd->bonus.long_weapon_damage_return / 100;
                rdamage = i64max(rdamage, 1);
        }

     

    • Upvote 1
    • MVP 2
  10. 1 hour ago, Poring King said:

    Well RO files is never been detected as a virus so there is no way it will happen like that . 

    Unless if it's actually thor patcher (iirc its usually detected as false-positive virus and most of the time AV deletes it)

     

    4 hours ago, HiROserver said:

    Hi Guys!

    Please help me with my problem. 

    1st scenario: My player downloaded my server from mediafire without a patch.exe but when I check I got patch.exe on my folder in mediafire

    2nd scenario: Another player downloaded my files but with patch.exe however when he tried to patch it it failes to connect to server but when I try to download a fresh file again It works fine for me. 

    Have you guys encountered this weird thing as well?

    1st scenario: might be anti-virus messing it up

    2nd scenario: tell him try to run patcher as admin it might be the windows blocking it (like putting stuff in drive C needs admin permissions when you wanna put / copy / paste files in it)

  11. This has been asked a few times as I've searched the forum with this problem as well as i am aware that this is currently the official behavior on official servers but i wasn't able to find the solution for it. So, if you're wearing an equipment with bShortWeaponDamageReturn script (Orc Lord Card for example or Valkyrie Manteau) and you're in auto guard / parrying / kyrie eleison + they proc'ed, the damage will miss but there's still a reflect to the attacker. Like this on the video: 

     

    But the expected result is it shouldn't have reflect because there wasn't any damage registered to the target.

    I've tried various possible solutions by editing this line in battle.cpp:

    	if (flag & BF_SHORT) {//Bounces back part of the damage.
    		if ( (skill_get_inf2(skill_id)&INF2_TRAP || !status_reflect) && sd && sd->bonus.short_weapon_damage_return) {
    			rdamage += damage * sd->bonus.short_weapon_damage_return / 100;
    			rdamage = i64max(rdamage,1);

    But i wasn't able to revert it. 

    May i ask for help on reverting this? Thank you!

  12. What i did:

    skill_db.yml:

    Find LK_PARRYING and on Weapon do this:

          Weapon:
            1hSword: true
            2hSword: true

     

    skill.cpp:

    Find:

    	if( require.ammo ) { //Skill requires stuff equipped in the ammo slot.
    		uint8 extra_ammo = 0;

    And then add this above it:

    	if(skill_id == LK_PARRYING && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_KNIGHT) && sd->weapontype1 == W_1HSWORD){
    		clif_skill_fail(sd,skill_id, USESKILL_FAIL_THIS_WEAPON, 0);
    		return false;
    	}

    This check will prevent parrying from being casted w/ 1-handed sword unless when you're in soul link status . (since we allowed to cast parry w/ 1 handed sword naturally even w/o soul link via skill_db)

    • Upvote 1
    • MVP 1
  13. 3 hours ago, AinsLord said:

    will this work with the latest rathena git?

     

    I'm not really sure but you can try.

    47 minutes ago, idLaZ said:

    @Scylla thank you! The source mod is working fine with the error. However, how to fix to make the single strip always consume 1 GCoat for every attempt? The current mod is not consuming any gcoat.

    Are you soul linked tho?

    It'll only consume glistening coats if you're soul linked and if the enemy has chemical protection buff.

  14. On 10/25/2017 at 9:05 PM, AinsLord said:

    i got error on this one

    
    // By pass FCP when using single strip skills by 15%(requires Glistening Coat).
    	if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75
    	&&
    	( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
    	skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] ||
    	skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
    	skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
    	int item_id = 7139; // Glistening Coat
    	int ii;
    	ARR_FIND( 0, MAX_INVENTORY, ii, sd->inventory.u.items_inventory[ii].nameid == item_id );
    	if ( ii < MAX_INVENTORY ) {
    		pc_delitem( sd, ii, 1, 0, 0, LOG_TYPE_CONSUME);
    		switch ( skill_id ) {
    			case RG_STRIPWEAPON:
    				status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );
    				sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    				break;
    			case RG_STRIPSHIELD:
    				status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
    				sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    				break;
    			case RG_STRIPARMOR:
    				status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
    				sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    				break;
    			case RG_STRIPHELM:
    				status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
    				sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    				break;
    			}
    			clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
    				break;
    				}
    			}

    here's the error

    
    skill.c: In function ‘skill_castend_nodamage_id’:
    skill.c:7678:31: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
      ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
                                   ^
    skill.c:7680:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
      skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
                                ^
    skill.c:7681:27: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
      skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
                               ^
    In file included from clan.h:12:0,
                     from pc.h:19,
                     from skill.c:17:
    skill.c:7690:22: error: ‘SC_WEAPON’ undeclared (first use in this function)
         sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)))
                          ^
    status.h:2316:78: note: in definition of macro ‘sc_start’
     c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r
                                                                         ^
    skill.c:7690:22: note: each undeclared identifier is reported only once for each function it appears in
         sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)))
                          ^
    status.h:2316:78: note: in definition of macro ‘sc_start’
     c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r
                                                                         ^
    skill.c:7690:79: error: expected ‘;’ before ‘)’ token
        sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
                                                                                  ^
    skill.c:7690:79: error: expected statement before ‘)’ token
    skill.c:7694:79: error: expected ‘;’ before ‘)’ token
        sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
                                                                                  ^
    skill.c:7694:79: error: expected statement before ‘)’ token
    skill.c:7698:79: error: expected ‘;’ before ‘)’ token
        sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
                                                                                  ^
    skill.c:7698:79: error: expected statement before ‘)’ token
    skill.c:7702:79: error: expected ‘;’ before ‘)’ token
        sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)));
                                                                                  ^
    skill.c:7702:79: error: expected statement before ‘)’ token
    make[1]: *** [obj/skill.o] Error 1
    make[1]: Leaving directory `/root/rathena/src/map'
    make: *** [map] Error 2
    

     

    Try this:

    			case RG_STRIPWEAPON:
    				status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );
    				sc_start(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv));
    				break;
    			case RG_STRIPSHIELD:
    				status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
    				sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv));
    				break;
    			case RG_STRIPARMOR:
    				status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
    				sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv));
    				break;
    			case RG_STRIPHELM:
    				status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
    				sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv));
    				break;

    You can ignore the warnings when compiling.

     

    P.S

    Sorry if I'm necro'ing a thread from 2 years ago, but nobody has answered this yet.

    • MVP 2
×
×
  • Create New...