Jump to content

noobzter003

Members
  • Posts

    109
  • Joined

  • Last visited

Posts posted by noobzter003

  1. On 4/8/2022 at 7:55 PM, Singe Horizontal said:

    I need to make a clean gist again, I lost track on what prevented compiling with g++.
    Moreover the yml update broke a part of the mod, I'll be waiting a week more before updating to the new system.

    Sorry for the inconvenience and thanks for the report

    Thanks brother!!!

  2. 5 hours ago, Mirage25 said:

    Up for this

    check your weapontable.lub

    BowTypeList = {
        Weapon_IDs.WEAPONTYPE_BOW,
        Weapon_IDs.WEAPONTYPE_CrossBow,
        Weapon_IDs.WEAPONTYPE_Arbalest,
        Weapon_IDs.WEAPONTYPE_Kakkung,
        Weapon_IDs.WEAPONTYPE_Hunter_Bow,
        Weapon_IDs.WEAPONTYPE_Bow_Of_Rudra,
        Weapon_IDs.WEAPONTYPE_CUSTOMBOW <----ADD YOUR CUSTOM BOW HERE

     

  3. On 10/5/2020 at 7:48 PM, Ylen X Walker said:

    Hey guys! Anyone encountering this? I've been auto-attacking monsters for about 30 mins then this shows up. I installed it on the latest rAthena version. What could be the cause?

    Code is originally from https://rathena.org/board/topic/71297-autoattack/

    I Implemented this code:

    atcommand.cpp

    // Auto Attack --- put before all command
    static int buildin_autoattack_sub(struct block_list *bl,va_list ap)
    {
        int *target_id=va_arg(ap,int *);
        *target_id = bl->id;
        return 1;
    }
     
    void autoattack_motion(struct map_session_data* sd)
    {
        int i, target_id;
        if( pc_isdead(sd) || !sd->state.autoattack ) return;
    
        for(i=0;i<=9;i++)
        {
            target_id=0;
            map_foreachinarea(buildin_autoattack_sub, sd->bl.m, sd->bl.x-i, sd->bl.y-i, sd->bl.x+i, sd->bl.y+i, BL_MOB, &target_id);
            if(target_id){
                unit_attack(&sd->bl,target_id,1);
                break;
            }
            target_id=0;
        }
        if(!target_id && !pc_isdead(sd) && sd->state.autoattack){
            unit_walktoxy(&sd->bl,sd->bl.x+(rand()%2==0?-1:1)*(rand()%25),sd->bl.y+(rand()%2==0?-1:1)*(rand()%25),0);
        }
        return;
    }
    
    static TIMER_FUNC(autoattack_timer)
    {
        struct map_session_data *sd=NULL;
    
        sd=map_id2sd(id);
        if(sd==NULL || pc_isdead(sd) || !sd->state.autoattack )
            return 0;
    
        if(sd->state.autoattack)
        {
            unit_stop_attack(&sd->bl);
            autoattack_motion(sd);
            if(DIFF_TICK(sd->autoattack_delay,gettick())> 0){
                clif_authfail_fd(sd->fd, 15);
                return 0;
            }
            else{
                add_timer(gettick()+1000,autoattack_timer,sd->bl.id,0);    // 1000 is delay
                sd->autoattack_delay = gettick() + 1000;    // 1000 is delay
            }
        }
        return 0;
    }
    
    ACMD_FUNC(autoattack)
    {
        nullpo_retr(-1, sd);
        if (sd->state.autoattack)
        {
            sd->state.autoattack = 0;
            unit_stop_attack(&sd->bl);
            clif_displaymessage(fd, "Auto Attack has been deactivated.");
        }
        else
        {
            sd->state.autoattack = 1;
            add_timer(gettick()+1000,autoattack_timer,sd->bl.id,0);
            clif_displaymessage(fd, "Auto Attack activated.");
        }
        return 0;
    }
     ACMD_FUNC(accinfo) {
     	char query[NAME_LENGTH];
     	
    @@ -8827,6 +8881,7 @@
     	 * Command reference list, place the base of your commands here
     	 **/
     	AtCommandInfo atcommand_base[] = {
    +		ACMD_DEF(autoattack),
     		ACMD_DEF2("warp", mapmove),
     		ACMD_DEF(where),
     		ACMD_DEF(jumpto),

    status.hpp

    	OPTION_OKTOBERFEST	= 0x10000000,
    	OPTION_SUMMER2		= 0x20000000,
    +	OPTION_AUTOATTACK	= 0x40000000,

    pc.hpp

    struct map_session_data {
    	struct block_list bl;
    	struct unit_data ud;
    	struct view_data vd;
    	struct status_data base_status, battle_status;
    	struct status_change sc;
    	struct regen_data regen;
    	struct regen_data_sub sregen, ssregen;
    +	unsigned int autoattack_delay;  // autoattack timer
    		unsigned int killable : 1;
    		unsigned int doridori : 1;
    		unsigned int ignoreAll : 1;
    +		unsigned int autoattack : 1; // autoattack
    		unsigned int debug_remove_map : 1; // temporary state to track double remove_map's [FlavioJS]
    		unsigned int buyingstore : 1;
    		unsigned int lesseffect : 1;
    		unsigned int vending : 1;

     

    image.png

    how do you fix this?

     

  4. 12 hours ago, Frost Diver said:

    Hey guys, I'm looking for a working Cell PVP. Does anyone have it? Managed to apply this and it worked but it's Cell PK where u have to press shift to hit. Not Cell PVP. Thanks in advance ^^

     

    type /noshift

  5. 4 hours ago, moonlight Yosh said:

    Good day rAthena,

     

     Can i request for an script about Guild Package?

     

    1. You must have a guild to avail Gpackage.

    2.Need 20 Members Online(Including the Leader) ( if not 20 Online the gpack npc will not give the reward

    3. 1 Per Character Only

    4. The item is Account bounded or character bound

    Thanks. 

     

     

  6. 15 hours ago, echochan said:

    I have this client from 2020-04 

    and when trying to use client 2018-04-25cRagexe, this error shows up

    image.png.614c355a8bbc3d7296828eb4dbfd82d0.png

    and this is my nemo patches:

     

    try to rename your dbghelp.dll to dbghelp_old.dll

  7. 9 hours ago, toohot22 said:

    Hey all, please forgive me if iv posted this in the wrong area. Iv been away from RO for some time now but im back making a new server and I was wandering how to add a item to use with the VIP System. I already activted the code in src/config/core.h and now need a Item I can use was thinking 24hr 7days and 31day use for each ticket/item

     

    thanks inadvance

    https://rathena.org/board/topic/116720-usable-vip-ticket-1day-7days-1month-and-also-vip-map/?do=findComment&comment=350415

  8. On 1/10/2020 at 2:51 AM, GOODBY dev LOOLP said:
     
    
    Would anyone have a version of Cell PvP or some diff that made the effect of some cells become battlefield [pvp]?
    
    I used the version Cell PvP 1.7, it worked, but had some bugs for example .. In the common PvP arena, the quantitative score and the time in the arena, was blinking nonstop ..
    
    Thank you very much for the contribution.
    
    
     

    how do you fix this?

  9. 15 hours ago, stiflerxx said:
     
    
    Hi guys, how are you?
    I added this diff to my rAthena:
    
    I fixed the bugs because it is a little old and yet instead of it being a CELL PVP it looked like a CELL PK, I need to press shift
    or /noshift to be able to attack and the PVP timer does not appear I tried the following commands trying to follow @pvpon but he apply pvp to the entire map.
    
    Apply all PvP on the map:
    map_setmapflag(sd->bl.m, MF_PVP, true);
    

     

    
    Does anyone know how to apply pvp to an area or just a player?

    i have the same problem, bump bump bump..

    have you fixed it?
  10. 1 minute ago, Rivers said:

    Add this to your clientinfo.xml, adjust the values with your patch directory. I hope this resolves your problem. Let me know. 

    
    <http>http://website.net/patch/plist.txt</http>
        <ftp>http://website.net/patch/data/</ftp> 

     

    tq already fix. i just decrypt my grf.

  11. <?xml version="1.0" encoding="euc-kr" ?> 
    <clientinfo> 
        <servicetype>america</servicetype>
        <servertype>primary</servertype>
        <connection>
        <display>[ your RAGNAROK ONLINE ]</display>
        <address>1000000000</address>
        <port>6900</port>
        <version>30</version>
        <langtype>1</langtype>
        <packetver>20131223</packetver>
        <increase_max_hairstyles>500</increase_max_hairstyles>
        <increase_max_haircolors>600</increase_max_haircolors>
        <read_data_directory_first>true</read_data_directory_first>
        <iteminfo>your.lub</iteminfo>
        <hide_quickcashshop_button>true</hide_quickcashshop_button>
        <max_guildpositions>72</max_guildpositions>
        <registrationweb>http://we.com/cp/?module=account&action=create</registrationweb>
        <aid>
        <admin>2000000</admin>
        <admin>2000001</admin>
        <admin>2000002</admin>
        <admin>2000003</admin>
        <admin>2000004</admin>
        <admin>2000005</admin>
        <admin>2000006</admin>
        <admin>2000007</admin>
        <admin>2000008</admin>
        <admin>2000009</admin>
        <admin>2000010</admin>
    	<admin>2000011</admin>
        </aid>
        <loading>
        <image>loading00.jpg</image>
    	<image>loading01.jpg</image>
    	<image>loading02.jpg</image>
    	<image>loading03.jpg</image>
    	<image>loading04.jpg</image>
    	<image>loading05.jpg</image>
    	<image>loading06.jpg</image>
    	<image>loading07.jpg</image>
    	<image>loading08.jpg</image>
    	<image>loading09.jpg</image>
    	<image>loading10.jpg</image>
        </loading>
        <patchserver>
        <type>thor</type>
        <http>http://we.com/patcher/plist.txt</http>
        <ftp>http://we.com/patcher/data/</ftp>
        <grf>yourro.grf</grf>
        <inf>your.dat</inf>
        </patchserver>
        </connection>
    </clientinfo>

    why auto close? there's no any error. just autoclose

  12. On 6/11/2020 at 9:15 PM, Rivers said:

    Good day, I'm having some issues setting up this Soul Link mod into my server. Does anyone know what to do? This is the script below.
     

    
    diff --git a/db/soul_link.yml b/db/soul_link.yml
    new file mode 100644
    index 0000000000..bdcf72cb0c
    --- /dev/null
    +++ b/db/soul_link.yml
    @@ -0,0 +1,74 @@
    +# Custom soul link buffs.
    +# Author: Secret <Secret@rathena.org>
    +#
    +# Format
    +# <SL_ constant>: <YAML string literal with a pair of enclosing bracket for the script>
    +#
    +# You can code the script just like an item script.
    +#
    +# Use ONLY spaces to indent.
    +# DONT USE TABS
    +
    +Header: # Metadata for future use
    +    Version: 1
    +    Type: MOD_SECRET_SOUL_LINK
    +SL_ALCHEMIST: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_MONK: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_STAR: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_SAGE: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_CRUSADER: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_SUPERNOVICE: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_KNIGHT: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_WIZARD: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_PRIEST: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_BARDDANCER: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_ROGUE: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_ASSASIN: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_BLACKSMITH: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_HUNTER: |
    +    {
    +        bonus bStr,1;
    +    }
    +SL_SOULLINKER: |
    +    {
    +        bonus bStr,1;
    +    }
    diff --git a/src/map/script.cpp b/src/map/script.cpp
    index 0b2386c32d..b696158ca1 100644
    --- a/src/map/script.cpp
    +++ b/src/map/script.cpp
    @@ -66,6 +66,7 @@
     #include "mob.hpp"
     #include "channel.hpp"
     #include "achievement.hpp"
    +#include "status.hpp"
     
     struct eri *array_ers;
     DBMap *st_db;
    diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp
    index 2f7f44d3b1..105fe90b81 100644
    --- a/src/map/script_constants.hpp
    +++ b/src/map/script_constants.hpp
    @@ -13,6 +13,23 @@
     	export_constant(INT_MIN);
     	export_constant(INT_MAX);
     
    +	/* soul links */
    +	export_constant(SL_ALCHEMIST);
    +	export_constant(SL_MONK);
    +	export_constant(SL_STAR);
    +	export_constant(SL_SAGE);
    +	export_constant(SL_CRUSADER);
    +	export_constant(SL_SUPERNOVICE);
    +	export_constant(SL_KNIGHT);
    +	export_constant(SL_WIZARD);
    +	export_constant(SL_PRIEST);
    +	export_constant(SL_BARDDANCER);
    +	export_constant(SL_ROGUE);
    +	export_constant(SL_ASSASIN);
    +	export_constant(SL_BLACKSMITH);
    +	export_constant(SL_HUNTER);
    +	export_constant(SL_SOULLINKER);
    +
     	/* server defines */
     	export_constant(PACKETVER);
     	export_constant(MAX_LEVEL);
    diff --git a/src/map/status.cpp b/src/map/status.cpp
    index af4c3afb00..ee34868dfa 100644
    --- a/src/map/status.cpp
    +++ b/src/map/status.cpp
    @@ -7,6 +7,7 @@
     #include <math.h>
     #include <string>
     #include <functional>
    +#include <unordered_map>
     #include <yaml-cpp/yaml.h>
     
     #include "../common/cbasetypes.h"
    @@ -65,6 +66,8 @@ bool running_npc_stat_calc_event; /// Indicate if OnPCStatCalcEvent is running.
     // We need it for new cards 15 Feb 2005, to check if the combo cards are insrerted into the CURRENT weapon only to avoid cards exploits
     short current_equip_opt_index; /// Contains random option index of an equipped item. [Secret]
     
    +std::unordered_map<int, script_code*> soul_link;
    +
     unsigned int SCDisabled[SC_MAX]; ///< List of disabled SC on map zones. [Cydh]
     
     sc_type SkillStatusChangeTable[MAX_SKILL];
    @@ -3716,6 +3719,13 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
     		current_equip_opt_index = -1;
     	}
     
    +	if (sd && sc->count && sc->data[SC_SPIRIT]) {
    +		auto spirit = sc->data[SC_SPIRIT];
    +		if (spirit != nullptr && soul_link.find(spirit->val2) != soul_link.end() && soul_link[spirit->val2] != nullptr) {
    +			run_script(soul_link[spirit->val2], 0, sd->bl.id, 0);
    +		}
    +	}
    +
     	if (sc->count && sc->data[SC_ITEMSCRIPT]) {
     		struct item_data *data = itemdb_exists(sc->data[SC_ITEMSCRIPT]->val1);
     		if (data && data->script)
    @@ -14492,6 +14502,45 @@ static bool status_readdb_attrfix(const char *basedir,bool silent)
     	return true;
     }
     
    +void status_read_soullink_db(char* file_name) {
    +	YAML::Node root;
    +	int count = 0;
    +	try {
    +		root = YAML::LoadFile(file_name);
    +		if (root.IsMap()) {
    +			for (auto node : root) {
    +				struct script_code *code;
    +				std::string key = node.first.as<std::string>();
    +				int constant = 0;
    +				if (key.compare(0, 3, "SL_")) {
    +					ShowWarning("status_read_soullink_db: Expected a constant with SL_ prefix, got %s.\n", key.c_str());
    +					continue;
    +				}
    +				if (!script_get_constant(key.c_str(), &constant)) {
    +					ShowWarning("status_read_soullink_db: Tried to assign custom buff to nonexistent constant %s.\n", key.c_str());
    +					continue;
    +				}
    +				if ((code = parse_script(node.second.as<std::string>().c_str(), file_name, node.second.Mark().line, 0)) == NULL) {
    +					ShowWarning("status_read_soullink_db: Invalid or empty script on custom soul link %s.\n", key.c_str());
    +					continue;
    +				}
    +				if (soul_link[constant] != nullptr)
    +					script_free_code(soul_link[constant]);
    +				soul_link[constant] = code;
    +				count++;
    +			}
    +		}
    +		else {
    +			ShowError("status_read_soullink_db: The file's structure is broken. Root node is not a map.\n");
    +		}
    +	}
    +	catch (...) {
    +		ShowError("status_read_soullink_db: Cannot load custom soul link buffs from %s.\n", file_name);
    +	}
    +
    +	ShowInfo("status_read_soullink_db: Done reading %d custom soul links.\n", count);
    +}
    +
     /**
      * Sets defaults in tables and starts read db functions
      * sv_readdb reads the file, outputting the information line-by-line to
    @@ -14560,6 +14609,8 @@ int status_readdb(void)
     		aFree(dbsubpath1);
     		aFree(dbsubpath2);
     	}
    +
    +	status_read_soullink_db("db/soul_link.yml");
     	return 0;
     }
     

     

    this script its 100% working on my server. 

     

  13. 5 hours ago, Vale said:

    Hi ! Can you help me with this kind of error in my PK Command?

    My Script for this Command is

     

        int atcommand_pkmode( const int fd, struct map_session_data *sd, const char *command, const char *message ) {

            nullpo_retr(-1, sd);

            if( map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg || map[sd->bl.m].flag.gvg_castle || map[sd->bl.m].flag.gvg_dungeon ) {
                clif_displaymessage(fd, "You can only change your PK state on non-PVP maps.");
                return -1;
            }
            
            else if (!sd->state.pk_mode) {
                sd->state.pk_mode = 1;
                clif_displaymessage(sd->fd, "You are now no longer in PK mode."); 
            }
            
            else {
                sd->state.pk_mode = 0;
                clif_displaymessage(sd->fd, "Returned to normal state.");
            }
            
            return 0;
        } 
     

    error.png

    int atcommand_pkmode( const int fd, struct map_session_data *sd, const char *command, const char *message ) {
    
            nullpo_retr(-1, sd);
    
            if( map_getmapflag(sd->bl.m, MF_PVP) || map_getmapflag(sd->bl.m, MF_PVP) || map_getmapflag(sd->bl.m, MF_GVG_CASTLE) || map_getmapflag(sd->bl.m, MF_GVG_DUNGEON) ) {
                clif_displaymessage(fd, "You can only change your PK state on non-PVP maps.");
                return -1;
            }
    
            else if (!sd->state.pk_mode) {
                sd->state.pk_mode = 1;
                clif_displaymessage(sd->fd, "You are now no longer in PK mode.");
            }
    
            else {
                sd->state.pk_mode = 0;
                clif_displaymessage(sd->fd, "Returned to normal state.");
            }
    
            return 0;
        }

     

×
×
  • Create New...