131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
// translator ready
 | 
						|
// addnews ready
 | 
						|
// mail ready
 | 
						|
require_once("common.php");
 | 
						|
require_once("lib/fightnav.php");
 | 
						|
require_once("lib/pvpwarning.php");
 | 
						|
require_once("lib/pvplist.php");
 | 
						|
require_once("lib/pvpsupport.php");
 | 
						|
require_once("lib/http.php");
 | 
						|
require_once("lib/taunt.php");
 | 
						|
require_once("lib/villagenav.php");
 | 
						|
 | 
						|
tlschema("pvp");
 | 
						|
 | 
						|
$iname = getsetting("innname", LOCATION_INN);
 | 
						|
$battle = false;
 | 
						|
 | 
						|
page_header("PvP Combat!");
 | 
						|
$op = httpget('op');
 | 
						|
$act = httpget('act');
 | 
						|
 | 
						|
if ($op=="" && $act!="attack"){
 | 
						|
	checkday();
 | 
						|
	pvpwarning();
 | 
						|
	$args = array(
 | 
						|
		'atkmsg'=> '`4You head out to the fields, where you know some unwitting warriors are sleeping.`n`nYou have `^%s`4 PvP fights left for today.`n`n',
 | 
						|
		'schemas'=>array('atkmsg'=>'pvp')
 | 
						|
	);
 | 
						|
	$args = modulehook("pvpstart", $args);
 | 
						|
	tlschema($args['schemas']['atkmsg']);
 | 
						|
	output($args['atkmsg'], $session['user']['playerfights']);
 | 
						|
	tlschema();
 | 
						|
	addnav("L?Refresh List of Warriors","pvp.php");
 | 
						|
	pvplist();
 | 
						|
	villagenav();
 | 
						|
} else if ($act == "attack") {
 | 
						|
	$name = httpget('name');
 | 
						|
	$badguy = setup_target($name);
 | 
						|
	$options['type'] = "pvp";
 | 
						|
	$failedattack = false;
 | 
						|
	if ($badguy === false) {
 | 
						|
		$failedattack = true;
 | 
						|
	} else {
 | 
						|
		$battle=true;
 | 
						|
		if ($badguy['location']==$iname) {
 | 
						|
			$badguy['bodyguardlevel']=$badguy['boughtroomtoday'];
 | 
						|
		}
 | 
						|
		$attackstack['enemies'][0] = $badguy;
 | 
						|
		$attackstack['options'] = $options;
 | 
						|
		$session['user']['badguy']=createstring($attackstack);
 | 
						|
		debug($session['user']['badguy']);
 | 
						|
		$session['user']['playerfights']--;
 | 
						|
	}
 | 
						|
 | 
						|
	if ($failedattack){
 | 
						|
		if (httpget('inn') > ""){
 | 
						|
			addnav("Return to Listing","inn.php?op=bartender&act=listupstairs");
 | 
						|
		}else{
 | 
						|
			addnav("Return to Listing","pvp.php");
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
if ($op=="run"){
 | 
						|
  output("Your pride prevents you from running");
 | 
						|
  $op="fight";
 | 
						|
  httpset('op', $op);
 | 
						|
}
 | 
						|
 | 
						|
$skill = httpget('skill');
 | 
						|
if ($skill!=""){
 | 
						|
  output("Your honor prevents you from using any special ability");
 | 
						|
  $skill="";
 | 
						|
  httpset('skill', $skill);
 | 
						|
}
 | 
						|
if ($op=="fight" || $op=="run"){
 | 
						|
	$battle=true;
 | 
						|
}
 | 
						|
if ($battle){
 | 
						|
 | 
						|
	require_once("battle.php");
 | 
						|
 | 
						|
	if ($victory){
 | 
						|
		$killedin = $badguy['location'];
 | 
						|
		$handled = pvpvictory($badguy, $killedin, $options);
 | 
						|
 | 
						|
		// Handled will be true if a module has already done the addnews or
 | 
						|
		// whatever was needed.
 | 
						|
		if (!$handled) {
 | 
						|
			if ($killedin==$iname){
 | 
						|
				addnews("`4%s`3 defeated `4%s`3 by sneaking into their room in the inn!",$session['user']['name'],$badguy['creaturename']);
 | 
						|
			}else{
 | 
						|
				addnews("`4%s`3 defeated `4%s`3 in fair combat in the fields of %s.", $session['user']['name'],$badguy['creaturename'], $killedin);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		$op = "";
 | 
						|
		httpset('op', $op);
 | 
						|
		if ($killedin==$iname){
 | 
						|
			addnav("Return to the inn","inn.php");
 | 
						|
		} else {
 | 
						|
			villagenav();
 | 
						|
		}
 | 
						|
		if ($session['user']['hitpoints'] <= 0) {
 | 
						|
			output("`n`n`&Using a bit of cloth nearby, you manage to staunch your wounds so that you do not die as well.");
 | 
						|
			$session['user']['hitpoints'] = 1;
 | 
						|
		}
 | 
						|
	}elseif($defeat){
 | 
						|
		$killedin = $badguy['location'];
 | 
						|
		$taunt = select_taunt_array();
 | 
						|
		// This is okay because system mail which is all it's used for is
 | 
						|
		// not translated
 | 
						|
		$handled = pvpdefeat($badguy, $killedin, $taunt, $options);
 | 
						|
		// Handled will be true if a module has already done the addnews or
 | 
						|
		// whatever was needed.
 | 
						|
		if (!$handled) {
 | 
						|
			if ($killedin == $iname) {
 | 
						|
				addnews("`%%s`5 has been slain while breaking into the inn room of `^%s`5 in order to attack them.`n%s`0", $session['user']['name'], $badguy['creaturename'], $taunt);
 | 
						|
			}else {
 | 
						|
				addnews("`%%s`5 has been slain while attacking `^%s`5 in the fields of `&%s`5.`n%s`0", $session['user']['name'], $badguy['creaturename'], $killedin, $taunt);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}else{
 | 
						|
		$extra = "";
 | 
						|
		if (httpget('inn')) $extra = "?inn=1";
 | 
						|
		fightnav(false,false, "pvp.php$extra");
 | 
						|
	}
 | 
						|
}
 | 
						|
page_footer();
 | 
						|
?>
 |