Jump to content

mhielo12

Members
  • Posts

    112
  • Joined

  • Last visited

Posts posted by mhielo12

  1. Is it possible to create an npc that counts players who have a specific items and can only be access by GM.
    Like

    Memory of Thanatos Card = There are ( 20 ) player that has this Item
    Kield D-01 Card = There are ( 2 ) player that has this Item
    Weapon Custom = There are ( 2 ) player that has this Item

    Counts items inside Inventory/Storage/Vending/Gstorage

    Dont need the player name just to count the item..

  2. bug still persist now after I create my guild and tried to logout and login
    guild UI is removed.. how to know the problem..
    I already removed the battleground free mod.. no error during compilation..

    image.thumb.png.2b9a9ded1db0cd44e5c0b7ed59236106.png

    i have guild but create guild UI is showing
    Already remove BG mod.
    but I have extended vending patch

     

    remove extended vending and still bug..

    im using 20200401 client

  3. On 12/18/2020 at 10:02 AM, Rook1es said:

    Hello sir i think need to add this

    skill.cpp

     

    Find :

        case SL_ALCHEMIST:
        case SL_ASSASIN:
        case SL_BARDDANCER:
        case SL_BLACKSMITH:
        case SL_CRUSADER:
        case SL_HUNTER:
        case SL_KNIGHT:
        case SL_MONK:
        case SL_PRIEST:
        case SL_ROGUE:
        case SL_SAGE:
        case SL_SOULLINKER:
        case SL_STAR:
        case SL_SUPERNOVICE:
        case SL_WIZARD:
            if (sd && tsc && (tsc->data[SC_SOULGOLEM] || tsc->data[SC_SOULSHADOW] || tsc->data[SC_SOULFALCON] || tsc->data[SC_SOULFAIRY])) { // Soul links from Soul Linker and Soul Reaper skills don't stack.
                clif_skill_fail(sd, skill_id, USESKILL_FAIL,0);
                break;
            }
            //NOTE: here, 'type' has the value of the associated MAPID, not of the SC_SPIRIT constant.
            if (sd && dstsd && !((dstsd->class_&MAPID_UPPERMASK) == type)) {
                clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
                break;
            }
     

    Add :

        case SL_ALCHEMIST:
        case SL_ASSASIN:
        case SL_BARDDANCER:
        case SL_BLACKSMITH:
        case SL_CRUSADER:
        case SL_HUNTER:
        case SL_KNIGHT:
        case SL_MONK:
        case SL_PRIEST:
        case SL_ROGUE:
        case SL_SAGE:
        case SL_SOULLINKER:
        case SL_STAR:
        case SL_SUPERNOVICE:
        case SL_WIZARD:
    +   case SL_GUNNER:
    +   case SL_NINJA:
            if (sd && tsc && (tsc->data[SC_SOULGOLEM] || tsc->data[SC_SOULSHADOW] || tsc->data[SC_SOULFALCON] || tsc->data[SC_SOULFAIRY])) { // Soul links from Soul Linker and Soul Reaper skills don't stack.
                clif_skill_fail(sd, skill_id, USESKILL_FAIL,0);
                break;
            }
            //NOTE: here, 'type' has the value of the associated MAPID, not of the SC_SPIRIT constant.
            if (sd && dstsd && !((dstsd->class_&MAPID_UPPERMASK) == type)) {
                clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
                break;
            }

     

    status.cpp

    Find :

        /* Storing the target job rather than simply SC_SPIRIT simplifies code later on */
        SkillStatusChangeTable[skill_get_index(SL_ALCHEMIST)]    = (sc_type)MAPID_ALCHEMIST,
        SkillStatusChangeTable[skill_get_index(SL_MONK)]        = (sc_type)MAPID_MONK,
        SkillStatusChangeTable[skill_get_index(SL_STAR)]        = (sc_type)MAPID_STAR_GLADIATOR,
        SkillStatusChangeTable[skill_get_index(SL_SAGE)]        = (sc_type)MAPID_SAGE,
        SkillStatusChangeTable[skill_get_index(SL_CRUSADER)]    = (sc_type)MAPID_CRUSADER,
        SkillStatusChangeTable[skill_get_index(SL_SUPERNOVICE)]    = (sc_type)MAPID_SUPER_NOVICE,
        SkillStatusChangeTable[skill_get_index(SL_KNIGHT)]    = (sc_type)MAPID_KNIGHT,
        SkillStatusChangeTable[skill_get_index(SL_WIZARD)]    = (sc_type)MAPID_WIZARD,
        SkillStatusChangeTable[skill_get_index(SL_PRIEST)]    = (sc_type)MAPID_PRIEST,
        SkillStatusChangeTable[skill_get_index(SL_BARDDANCER)]    = (sc_type)MAPID_BARDDANCER,
        SkillStatusChangeTable[skill_get_index(SL_ROGUE)]    = (sc_type)MAPID_ROGUE,
        SkillStatusChangeTable[skill_get_index(SL_ASSASIN)]    = (sc_type)MAPID_ASSASSIN,
        SkillStatusChangeTable[skill_get_index(SL_BLACKSMITH)]    = (sc_type)MAPID_BLACKSMITH,
        SkillStatusChangeTable[skill_get_index(SL_HUNTER)]    = (sc_type)MAPID_HUNTER,
        SkillStatusChangeTable[skill_get_index(SL_SOULLINKER)]    = (sc_type)MAPID_SOUL_LINKER,

    add :

        /* Storing the target job rather than simply SC_SPIRIT simplifies code later on */
        SkillStatusChangeTable[skill_get_index(SL_ALCHEMIST)]    = (sc_type)MAPID_ALCHEMIST,
        SkillStatusChangeTable[skill_get_index(SL_MONK)]        = (sc_type)MAPID_MONK,
        SkillStatusChangeTable[skill_get_index(SL_STAR)]        = (sc_type)MAPID_STAR_GLADIATOR,
        SkillStatusChangeTable[skill_get_index(SL_SAGE)]        = (sc_type)MAPID_SAGE,
        SkillStatusChangeTable[skill_get_index(SL_CRUSADER)]    = (sc_type)MAPID_CRUSADER,
        SkillStatusChangeTable[skill_get_index(SL_SUPERNOVICE)]    = (sc_type)MAPID_SUPER_NOVICE,
        SkillStatusChangeTable[skill_get_index(SL_KNIGHT)]    = (sc_type)MAPID_KNIGHT,
        SkillStatusChangeTable[skill_get_index(SL_WIZARD)]    = (sc_type)MAPID_WIZARD,
        SkillStatusChangeTable[skill_get_index(SL_PRIEST)]    = (sc_type)MAPID_PRIEST,
        SkillStatusChangeTable[skill_get_index(SL_BARDDANCER)]    = (sc_type)MAPID_BARDDANCER,
        SkillStatusChangeTable[skill_get_index(SL_ROGUE)]    = (sc_type)MAPID_ROGUE,
        SkillStatusChangeTable[skill_get_index(SL_ASSASIN)]    = (sc_type)MAPID_ASSASSIN,
        SkillStatusChangeTable[skill_get_index(SL_BLACKSMITH)]    = (sc_type)MAPID_BLACKSMITH,
        SkillStatusChangeTable[skill_get_index(SL_HUNTER)]    = (sc_type)MAPID_HUNTER,
        SkillStatusChangeTable[skill_get_index(SL_SOULLINKER)]    = (sc_type)MAPID_SOUL_LINKER,
    +    SkillStatusChangeTable[skill_get_index(SL_GUNNER)]    = (sc_type)MAPID_GUNSLINGER,
    +    SkillStatusChangeTable[skill_get_index(SL_NINJA)]    = (sc_type)MAPID_NINJA,

    restart your server then recompile

    i hope it helps ?
     

     

    try this

    • Upvote 1
  4. Hi i got problem using this.. I have applied the diff successfully but Guild invite is messed up.. using latest git 
    also using @leader <name of own character> make server crash

    On 3/22/2021 at 2:34 AM, Brynner said:

    for those who having issue applying the old BattlegroundExtended.diff to the latest rAthena version. just try this.i haven't tested it on the live server and i got no compile error on windows. not sure on linux.

    BattlegroundExtended-032221.diff 123.87 kB · 23 downloads

    is guild invite fix on this patch?

  5. Hi I dont know if im @ the correct section but.. can some one help me regarding guild invite?
    I think guild invite was bug on the latest git version
    - How to replicate
    - Create Renewal server from latest git
    - use client 20200401 ( I know emblem not working with this unless has the external web config )
    - invite someone for first time after server being up
    - logout or char select
    - try to invite again guild invite missing

  6. Hi Im looking for a good vps host.. I see that extravm has this offer:

    Quote
    8GB

    8GB DDR4 ECC RAM
    4 CPU Core (i7-6700K/7700K)
    112GB SSD Space
    3.2TB Bandwidth @ 250Mbps
    1 IPv4, 1 IPv6
    Complete DDoS Protection
    Singapore
    IP & Firewall Management

    while gomanila has this offer. 

    Quote

    » 4 CPU Cores
    » 8192 MB RAM
    » 100 GB SSD Disk Storage
    » 4000 GB Monthly Bandwidth
    » 1 GB Port Speed
    » 1 IPv4 Address
    » Full Root Access
    » KVM Virtualization
    » Singapore Datacenter
    » Instant Setup!

    which one is better?

    thanks guys

  7. Hi guys.. Can anyone help to rework the wow domi or annieruru..
    its not working on latest git anymore..

     src/custom/script.inc     | 64 +++++++++++++++++++++++++++++++++++++++++++++++
     src/custom/script_def.inc |  3 +++
     2 files changed, 67 insertions(+)
    
    diff --git a/src/custom/script.inc b/src/custom/script.inc
    index 1e01c88..79856cb 100644
    --- a/src/custom/script.inc
    +++ b/src/custom/script.inc
    @@ -17,3 +17,67 @@
     //	script_pushint(st,1);
     //	return 0;
     //}
    
    //	createbgid <respawn map>, <respawn x>, <respawn y>, <On Quit event>, <On Death event>;
    BUILDIN_FUNC(createbgid) {
    	unsigned int bg_id;
    	if ( ( bg_id = bg_create( mapindex_name2id( script_getstr(st,2) ), script_getnum(st,3), script_getnum(st,4), script_getstr(st,5), script_getstr(st,6) ) ) > 0 )
    		script_pushint( st, bg_id );
    	else
    		script_pushint( st, 0 );
    	return SCRIPT_CMD_SUCCESS;
    }
    
    //	setbgid <battleground ID> {, <player name> };
    //	setbgid <battleground ID> {, <player account ID> };
    BUILDIN_FUNC(setbgid) {
    	unsigned int bg_id = script_getnum(st,2);
    	struct battleground_data *bg = bg_team_search( bg_id );
    	struct map_session_data *sd;
    	if ( script_hasdata( st, 3 ) ) {
    		if ( data_isstring( script_getdata(st,3) ) )
    			sd = map_nick2sd( script_getstr(st,3) );
    		else
    			sd = map_id2sd( script_getnum(st,3) );
    	} else
    		sd = script_rid2sd(st);
    	if ( !sd ) {
    		script_pushint( st, -3 ); // player no attach
    		return SCRIPT_CMD_SUCCESS;
    	}
    	if ( !bg && bg_id > 0 ) {
    		script_pushint( st, -1 ); // battleground team haven't created
    		return SCRIPT_CMD_SUCCESS;
    	}
    	if ( bg_id && sd->bg_id == bg_id ) {
    		script_pushint( st, -5 ); // the player has already join this battleground team
    		return SCRIPT_CMD_SUCCESS;
    	}
    	if ( sd->bg_id )
    		bg_team_leave( sd, 0 );
    	if ( bg_id == 0 ) {
    		script_pushint( st, 0 );
    		return SCRIPT_CMD_SUCCESS;
    	}
    	if ( !bg_team_join( bg_id, sd ) )
    		script_pushint( st, -2 ); // cannot join anymore, because has reached MAX_BG_MEMBERS
    	else
    		script_pushint( st, bg_id );
    	return SCRIPT_CMD_SUCCESS;
    }
    
    //	getbgusers <battleground ID>;
    BUILDIN_FUNC(getbgusers) {
    	struct battleground_data *bg = bg_team_search( script_getnum(st,2) );
    	int i, j = 0;
    	if ( !bg ) {
    		script_pushint( st, -1 );
    		return SCRIPT_CMD_SUCCESS;
    	}
    	for ( i = 0; i < MAX_BG_MEMBERS; ++i )
    		if ( bg->members[i].sd )
    			mapreg_setreg( reference_uid( add_str("$@arenamembers"), j++ ), bg->members[i].sd->bl.id );
    	mapreg_setreg( add_str("$@arenamembersnum"), j );
    	script_pushint( st, j );
    	return SCRIPT_CMD_SUCCESS;
    }
    diff --git a/src/custom/script_def.inc b/src/custom/script_def.inc
    index 3319eea..600a0ac 100644
    --- a/src/custom/script_def.inc
    +++ b/src/custom/script_def.inc
    @@ -9,3 +9,6 @@
      **/
     
    //BUILDIN_DEF(example,""),
    	BUILDIN_DEF(createbgid,"siiss"),
    	BUILDIN_DEF(setbgid,"i?"),
    	BUILDIN_DEF(getbgusers,"i"),

     

×
×
  • Create New...