Jump to content
  • 0

KoE Emp Bug


WhatFT

Question


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

How to prevent from the owner of the KoE to attack their own emp? 

-	script	KoE	-1,{
OnInit:
	disablenpc "The King#KoE";
	disablenpc "Exit#KoE";
	bindatcmd "koe", strnpcinfo(0)+"::OnCommand", 99,99;
	end;
OnCommand:
	if ( compare( .@atcmd_parameters$, "on" ) ) goto L_start;
	else if ( compare( .@atcmd_parameters$, "off" ) ) goto L_end;
	else {
		dispbottom "type - '@koe on' to start the event";
		dispbottom "type - '@koe off' to end the event";
	}
	end;
OnClock2250: // everyday 10:50pm starts
L_start:
	if ( .start ) end;
	gvgon "guild_vs1";
	announce "The King of Emperium Hill has begun!", bc_all;
	.start = 1;
	enablenpc "The King#KoE";
	disablenpc "Exit#KoE";
	$koegid = 0;
	donpcevent "::OnRevKoE";
	maprespawnguildid "guild_vs1", $koegid, 7;
	monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";
	end;
OnClock2300: // everyday 1100pm ends
L_end:
	gvgoff "guild_vs1";
	announce "The King of Emperium Hill is over!", bc_all;
	.start = 0;
	enablenpc "Exit#KoE";
	disablenpc "The King#KoE";
	killmonsterall "guild_vs1";
//	maprespawnguildid "guild_vs1", $koegid, 6;
	end;
OnEmpDead:
	$koegid = getcharid(2);
	announce "The current King of Emperium Hill is the ["+ strcharinfo(2) +"] guild.", bc_all;
	donpcevent "::OnRevKoE";
	maprespawnguildid "guild_vs1", $koegid, 6;
	sleep 500;
	if ( .start )
		monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";
	end;
}
 
// KoE Entrance
prontera,155,170,4	script	The King#KoE	58,{
    mes "[The King]";
	if ( !getcharid(2) ) {
		mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000.";
		close;
	}
    mes "Hello.";
    mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?";
	if ( select ( "Yes", "No" ) == 2 ) close;
    switch( rand(1,4) ){
        case 1:	warp "guild_vs1", 50, 88; end;
        case 2:	warp "guild_vs1", 88, 50; end;
        case 3:	warp "guild_vs1", 50, 11; end;
        case 4:	warp "guild_vs1", 11, 50; end;
	}
}
 
// KoE Exit
guild_vs1,49,56,5	script	Exit#KoE	51,{
	mes "[Exit]";
	mes "See ya.";
	if ( getcharid(2) == $koegid )
		getitem 7730, 5; // configure prize here
	close2;
	warp "Save",0,0;
	end;
}
 
// Flags
guild_vs1,49,38,4	script	King of Emperium Hill#1::koe_flag	722,{
	if ( !$koegid ) end;
	mes "[King of Emperium Hill]";
	mes "The Current King of Emperium Hill is the ["+ getguildname($koegid) +"] guild.";
	close;
OnRevKoE:
	flagemblem $koegid;
	end;
}
guild_vs1,61,49,6	duplicate(koe_flag)	King of Emperium Hill#2	722
guild_vs1,38,49,2	duplicate(koe_flag)	King of Emperium Hill#3	722
guild_vs1,49,61,0	duplicate(koe_flag)	King of Emperium Hill#4	722

guild_vs1	mapflag	nobranch
guild_vs1	mapflag	nomemo
guild_vs1	mapflag	nopenalty
guild_vs1	mapflag	noreturn
guild_vs1	mapflag	nosave	SavePoint
guild_vs1	mapflag	noteleport
guild_vs1	mapflag	gvg_noparty
guild_vs1	mapflag	nowarp
guild_vs1	mapflag	nowarpto
guild_vs1	mapflag	guildlock
Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

 

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX

How is this?

 

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX

not working, still the owner of the guild can hit the emp..

bump*

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

Anyone? I already did everything I could, even the src... Still the owner of the KoE can attack the emp =.= zz

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...