Jump to content
  • 0

Custom Battle Ground by goddammit (not properly working)


Question

Posted

Related Topic

http://rathena.org/board/topic/88636-onclock-command/#entry227658     (solve no error on map DB)
http://rathena.org/board/topic/88644-what-is-the-error-all-about/              (solve no error on map DB)

 

 

 

 

 

NPC problem in game.

The time is ok, it will start every 15 mins of the game. 
I can click the NPC but theirs a problem


According to the Screen shot
You can click it.
Choose Join but after that It will  re direct you to Complete.
post-2978-0-93934000-1381807775_thumb.jpg
And it will continue to announce the statuses
 




 



This is the script anyway
 

//Author-Script		Goddameit	My forum : http://bit.ly/MDuQ9F	
//Author-Map		TrojanWorm
//Version		2012-10-31

//Don't re-release in anywhere and anyway

//////////////////////////////////////////////////////////////////////////

endless_war	mapflag	battleground	2
endless_war,218,86,0	script	#BattleGroundwarpA2	100,{
	end;
OnInit:
	waitingroom "Join Team A(Click)",2,"#BattleGroundwarpA2::OnJoin",1;
	end;
OnJoin:
	if(!$@bg_id_a)
		set $@bg_id_a,waitingroom2bg("endless_war",205,85,"","");
	else
		waitingroom2bg_single($@bg_id_a,"endless_war",205,85,"#BattleGroundwarpA2");
	warpwaitingpc "endless_war",205,85;
	end;
}
endless_war,40,86,0	script	#BattleGroundwarpB2	100,{
	end;
OnInit:
	waitingroom "Join Team B(Click)",2,"#BattleGroundwarpB2::OnJoin",1;
	end;
OnJoin:
	if(!$@bg_id_
		set $@bg_id_b,waitingroom2bg("endless_war",53,85,"","");
	else
	waitingroom2bg_single($@bg_id_b,"endless_war",53,85,"#BattleGroundwarpB2");
	warpwaitingpc "endless_war",53,85;
	end;
}
endless_war,165,86,0	script	#BattleGroundwarpA1	45,2,2,{
	warp "endless_war",161,86;
	end;
}
endless_war,90,86,0	script	#BattleGroundwarpB1	45,2,2,{
	warp "endless_war",94,86;
	end;
}
prontera,150,180,4	script	Battle Ground	100,{
	if(.status==2)
	{
		mes "Game is running.";
		close;
	}
	if(.status==1)
	{
		
		if(.playernm>=128)
		{
			mes "Sorry, full";
			close;
		}
		select("Join");
		if(!.playerid[1])
		{
			//callsub OnEndd;
			initnpctimer;
		}
		set .playernm,.playernm+1;
		set .playerid[.playernm],getcharid(0);
		mes "Complete";
		close;
	}
	end;
OnMinute00:
OnMinute15:
OnMinute30:
OnMinute45:
	callsub OnActive;
	end;
OnActive:
	callsub OnEndd;
	set .status,1;
	Announce "[Battle Ground]:Someone active the game! Go to prontera,150,180 and join us!",0;
	end;
OnTimer60000:
    if(.point[1]>.point[2])
    {
        Announce "[Battle Ground]:Team A Win!",0;
        getitem $@bg_id_a,605,1;
    }else if(.point[2]>.point[1])
    {
        Announce "[Battle Ground]:Team B Win!",0;
        getitem $@bg_id_b,605,1;
    }else
    {
        Announce "[Battle Ground]:Draw!",0;
        getitem $@bg_id_a,605,1;
        getitem $@bg_id_b,605,1;
    }
 	callsub OnEnab2;
	end;
OnTimer90000:
	set .status,2;
	Announce "[Battle Ground]:Go!",0;
	bg_monster $@bg_id_a,"endless_war",128,120,"A",1907,"Battle Ground::OnAdestory";
	bg_monster $@bg_id_b,"endless_war",127,46,"B",1907,"Battle Ground::OnBdestory";
	callsub OnEnab1;
	end;
OnTimer190000:
	if(.point[1]>.point[2])
	{
		Announce "[Battle Ground]:Team A Win!",0;
		getitem $@bg_id_a,605,1;
	}else if(.point[2]>.point[1])
	{
		Announce "[Battle Ground]:Team B Win!",0;
		getitem $@bg_id_b,605,1;
	}else
	{
		Announce "[Battle Ground]:Draw!",0;
		getitem $@bg_id_a,605,1;
		getitem $@bg_id_b,605,1;
	}
	sleep2 3000;
	callsub OnEndd;	
	end;
OnBdestory:
	set .point[1],.point[1]+5;
	set .point[2],.point[2]-3;
	bg_updatescore "endless_war",.point[1],.point[2];
	detachrid;
	sleep2 10000;
	bg_monster $@bg_id_b,"endless_war",127,46,"B",1907,"Battle Ground::OnBdestory";
	end;
OnAdestory:
	set .point[2],.point[2]+5;
	set .point[1],.point[1]-3;
	bg_updatescore "endless_war",.point[1],.point[2];
	detachrid;
	sleep2 10000;
	bg_monster $@bg_id_a,"endless_war",128,120,"A",1907,"Battle Ground::OnAdestory";
	end;
OnEndd:
	set .status,0;
	bg_destroy $@bg_id_a;
	bg_destroy $@bg_id_b;
	set $@bg_id_a,0;
	set $@bg_id_b,0;
	setarray .point[1],0,0;
	killmonsterall "endless_war";
	bg_updatescore "endless_war",.point[1],.point[2];
	deletearray .playerid[0],128;
	mapwarp "endless_war","prontera",150,180;
	callsub OnDisa;
	return;
OnEnab1:
	enablenpc "#BattleGroundwarpA1";
	enablenpc "#BattleGroundwarpB1";
	return;
OnEnab2:
	enablenpc "#BattleGroundwarpA2";
	enablenpc "#BattleGroundwarpB2";
	return;
OnDisa:
	disablenpc "#BattleGroundwarpA1";
	disablenpc "#BattleGroundwarpB1";
	disablenpc "#BattleGroundwarpA2";
	disablenpc "#BattleGroundwarpB2";
	return;
OnInit:
	sleep2 10000;
	setwall "endless_war",218,87,1,1,0,"BattleGroundwarpA21";
	setwall "endless_war",219,87,1,1,0,"BattleGroundwarpA22";
	setwall "endless_war",219,86,1,1,0,"BattleGroundwarpA23";
	setwall "endless_war",219,85,1,1,0,"BattleGroundwarpA24";
	setwall "endless_war",218,85,1,1,0,"BattleGroundwarpA25";
	setwall "endless_war",217,85,1,1,0,"BattleGroundwarpA26";
	setwall "endless_war",217,86,1,1,0,"BattleGroundwarpA27";
	setwall "endless_war",217,87,1,1,0,"BattleGroundwarpA28";
	setwall "endless_war",40,87,1,1,0,"BattleGroundwarpB21";
	setwall "endless_war",41,87,1,1,0,"BattleGroundwarpB22";
	setwall "endless_war",41,86,1,1,0,"BattleGroundwarpB23";
	setwall "endless_war",41,85,1,1,0,"BattleGroundwarpB24";
	setwall "endless_war",40,85,1,1,0,"BattleGroundwarpB25";
	setwall "endless_war",39,85,1,1,0,"BattleGroundwarpB26";
	setwall "endless_war",39,86,1,1,0,"BattleGroundwarpB27";
	setwall "endless_war",39,87,1,1,0,"BattleGroundwarpB28";
	callsub OnEndd;
	end;
OnPCKillEvent:
	if(strcharinfo(3)=="endless_war" && $@bg_id_a && $@bg_id_
	{
		if(getcharid(4) == $@bg_id_a)
		{
			set .point[1],.point[1]+1;
		}else
			set .point[2],.point[2]+1;
		bg_updatescore "endless_war",.point[1],.point[2];
	}
	end;
}

1 answer to this question

Recommended Posts

Posted
OnTimer190000:

    if(.point[1]>.point[2]){

        set .bg_id_w,$@bg_id_a;

        Announce "[battle Ground]:Team A Win!",0;

    }else if(.point[2]>.point[1]){

        set .bg_id_w,$@bg_id_b;

        Announce "[battle Ground]:Team B Win!",0;

    }else{

        set .bg_id_w,-1;

        Announce "[battle Ground]:Draw!",0;

    }

    for( set .@i,1; .playerid[.@i]; set .@i,.@i+1 ){

        if( attachrid(.playerid[.@i]) ){    //Prize if Team A win

            if(.bg_id_w == -1){ getitem 605,1;} //If Match Draws

            else if( getcharid(4) == .bg_id_w ) { getitem 605,1;} //If Someone Wins

        }

    }

 

Tried using this lines

 

 

for( set .i,1; i <= getarraysize(.playerid[.i]); set .i,.i+1 ){
 

and

 

 

for( set .@i,1; getarraysize(.playerid[.@i]) < .@i; set .@i,.@i+1 ){
 

Booth doesn't have error in the MAP DB but still wont give a prize.

 

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...