session_start();
function er($e)
{
global $c;
die('
Произошла ошибкаПроизошла ошибка: '.$e.'
Назад
(c) '.$c[1].'
');
}
function GetRealIp()
{
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP'];
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
define('IP',GetRealIp());
define('GAME',true);
include_once('_incl_data/__config.php');
include_once('_incl_data/class/__db_connect.php');
include_once('_incl_data/class/__user.php');
if($u->info['admin'] == 0) {
die('');
}
if(isset($_GET['id'])) {
$_POST['id'] = (int)$_GET['id'];
}
if(isset($_POST['id_dng'])) {
$id = (int)$_POST['id_dng'];
if($id > 0) {
$test_id = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" LIMIT 1'));
if(!isset($test_id['id'])) {
unset($test_id);
}
}else{
$id = 0;
}
}elseif(isset($_POST['id'])) {
$id = (int)$_POST['id'];
if($id > 0) {
$test_id = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" LIMIT 1'));
if(!isset($test_id['id'])) {
unset($test_id);
}
}else{
$id = 0;
}
}
$u->info['psevdo_x'] = 0;
$u->info['psevdo_y'] = 0;
$u->info['psevdo_s'] = 1;
if(isset($_POST['x'])) {
$u->info['psevdo_x'] = (int)$_POST['x'];
$u->info['psevdo_y'] = (int)$_POST['y'];
$u->info['psevdo_s'] = (int)$_POST['s'];
}
if(isset($_GET['x'])) {
$u->info['psevdo_x'] = (int)$_GET['x'];
$u->info['psevdo_y'] = (int)$_GET['y'];
$u->info['psevdo_s'] = (int)$_GET['s'];
}
if(isset($_POST['saveObjPosition'])) {
echo 'START#';
$_POST['saveObjPosition'] = str_replace('obj_true_','',$_POST['saveObjPosition']);
$_POST['saveObjPosition'] = floor((int)$_POST['saveObjPosition']);
$obj = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_obj` WHERE `id` = "'.mysql_real_escape_string($_POST['saveObjPosition']).'" LIMIT 1'));
if(isset($obj['id'])) {
$cor = array(0,0);
$data = explode(',',ltrim(rtrim($obj['date'],'\}'),'\{'));
$da = array();
$i = 0;
while($i < count($data)) {
$data[$i] = explode(':',$data[$i]);
$da[$data[$i][0]] = $data[$i][1];
echo '['.$data[$i][0].' = '.$data[$i][1].']';
$i++;
}
$obj['top'] = 0;
$obj['left'] = 0;
$rs = (int)$_POST['rz'];
$da['rt'.$rs] = 0+$_POST['objy'];
$da['rl'.$rs] = 0+$_POST['objx'];
$dak = array_keys($da);
$dav = $da;
$da = '';
$i = 0;
while($i < count($dak)) {
$da .= $dak[$i].':'.$dav[$dak[$i]].',';
$i++;
}
$da = rtrim($da,',');
$da = '{'.$da.'}';
$upd = mysql_query('UPDATE `dungeon_obj` SET `top` = "'.mysql_real_escape_string($obj['top']).'", `left` = "'.mysql_real_escape_string($obj['left']).'", `date` = "'.mysql_real_escape_string($da).'" WHERE `id` = "'.$obj['id'].'" LIMIT 1');
if($upd) {
echo 'Данные успешно сохранены '.$da;
}else{
echo '#!Ошибка';
}
}else{
echo '#Ошибка';
}
die('#END');
}elseif(isset($_POST['ore_id'])) {
$id = (int)$_POST['id_dng'];
echo '[START# ';
$_POST['ore_id'] = floor((int)$_POST['ore_id']);
$obj = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_obj` WHERE `id` = "'.mysql_real_escape_string($_POST['ore_id']).'" LIMIT 1'));
$_POST['ore_name'] = iconv("UTF-8", "cp1251",$_POST['ore_name']);
if(isset($obj['id'])) {
mysql_query('UPDATE `dungeon_obj` SET
`name` = "'.mysql_real_escape_string($_POST['ore_name']).'",
`img` = "'.mysql_real_escape_string($_POST['ore_img']).'",
`w` = "'.mysql_real_escape_string($_POST['ore_w']).'",
`h` = "'.mysql_real_escape_string($_POST['ore_h']).'",
`x` = "'.mysql_real_escape_string($_POST['ore_x']).'",
`y` = "'.mysql_real_escape_string($_POST['ore_y']).'",
`type2` = "'.mysql_real_escape_string($_POST['ore_type2']).'",
`s` = "'.mysql_real_escape_string($_POST['ore_s']).'",
`s2` = "'.mysql_real_escape_string($_POST['ore_s2']).'",
`os1` = "'.mysql_real_escape_string($_POST['ore_os1']).'",
`os2` = "'.mysql_real_escape_string($_POST['ore_os2']).'",
`os3` = "'.mysql_real_escape_string($_POST['ore_os3']).'",
`os4` = "'.mysql_real_escape_string($_POST['ore_os4']).'",
`fix_x_y` = "'.mysql_real_escape_string($_POST['ore_fix_x_y']).'",
`type` = "'.mysql_real_escape_string($_POST['ore_type']).'" WHERE `id` = "'.$obj['id'].'" LIMIT 1
');
echo 'Данные сохранены';
}else{
//создаем обьект
/*
$('#ore_id').val(op[0]);
$('#ore_img').val(op[4]);
$('#ore_name').val(op[1]);
$('#ore_x').val(op['x']);
$('#ore_y').val(op['y']);
$('#ore_t').val(top.obi['t']);
$('#ore_l').val(top.obi['l']);
$('#ore_w').val(op[7]);
$('#ore_h').val(op[8]);
*/
if(isset($_POST['ore_img'])) {
echo 'Объект создан';
if(mysql_query('INSERT INTO `dungeon_obj` (`for_dn`,`name`,`img`,`w`,`h`,`x`,`y`,`type2`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`fix_x_y`,`type`,`date`) VALUES (
"'.mysql_real_escape_string($id).'",
"'.mysql_real_escape_string($_POST['ore_name']).'",
"'.mysql_real_escape_string($_POST['ore_img']).'",
"'.mysql_real_escape_string($_POST['ore_w']).'",
"'.mysql_real_escape_string($_POST['ore_h']).'",
"'.mysql_real_escape_string($_POST['ore_x']).'",
"'.mysql_real_escape_string($_POST['ore_y']).'",
"'.mysql_real_escape_string($_POST['ore_type2']).'",
"'.mysql_real_escape_string($_POST['ore_s']).'",
"'.mysql_real_escape_string($_POST['ore_s2']).'",
"'.mysql_real_escape_string($_POST['ore_os1']).'",
"'.mysql_real_escape_string($_POST['ore_os2']).'",
"'.mysql_real_escape_string($_POST['ore_os3']).'",
"'.mysql_real_escape_string($_POST['ore_os4']).'",
"'.mysql_real_escape_string($_POST['ore_fix_x_y']).'",
"'.mysql_real_escape_string($_POST['ore_type']).'",
"{use:\'takeit\'}"
)')) {
echo '+';
}else{
echo '-';
}
}
}
die(' #END]');
}elseif(isset($_POST['ore_delete_id'])) {
mysql_query('UPDATE `dungeon_obj` SET `delete` = "'.$u->info['id'].'",`for_dn` = "'.time().'" WHERE `id` = "'.mysql_real_escape_string($_POST['ore_delete_id']).'" LIMIT 1');
die('[START# Объект удален #END]');
}
if($id > 0) {
//работа с пещерой
$pd = array(
1 =>0,
2 =>0,
3 =>0,
4 =>0,
5 =>0,
6 =>0,
7 =>0,
8 =>0,
9 =>0, //передняя стенка, в 2-х шагах
10=>0,
11=>0,
12=>0,
13=>0,
14=>0,
15=>0,
16=>0,
17=>0,
18=>0,
19=>0,
20=>0,
21=>0,
22=>0,
23=>0,
/* Растояние: 1 шаг */
24=>0, //стена прямо слева от персонажа (1)
25=>0, //стена прямо справа от персонажа (1)
26=>0, //стена прямо перед персонажем (1)
27=>0, //стена слева от персонажа (1)
28=>0 //стена справа от персонажа (1)
);
include('dn_editor_class.php');
$d->point = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "'.$d->info['id2'].'" AND `x` = "'.$u->info['x'].'" AND `y` ="'.$u->info['y'].'" LIMIT 1'));
if(!isset($d->point['id']))
{
$d->point['css'] = 'css';
}
}
if(!isset($_GET['look'])) {
?>
Визуальный редактор Лабиринтов © new-combats.com
'; }else{ ?>
function genMap(){
var i = 0, m = false, mz = false;
while(i=1)
{
if(zfloor0[i]!='')
{
document.getElementById('Floor0').innerHTML += zfloor0[i];
}
i--;
}
}
var dConfig={
2:{
1:{'top':50,'left':140,'w':80,'h':147},
2:{'top':45,'left':87,'w':80,'h':147},
3:{'top':45,'left':192,'w':80,'h':147},
4:{'top':49,'left':165,'w':80,'h':147},
5:{'top':49,'left':105,'w':80,'h':147},
6:{'top':53,'left':140,'w':80,'h':147},
7:{'top':53,'left':87,'w':80,'h':147},
8:{'top':53,'left':190,'w':80,'h':147}
},
3:{
1:{'top':60,'left':152,'w':53,'h':97},
2:{'top':58,'left':110,'w':53,'h':97},
3:{'top':58,'left':188,'w':53,'h':97},
4:{'top':61,'left':168,'w':53,'h':97},
5:{'top':61,'left':128,'w':53,'h':97},
6:{'top':62,'left':153,'w':53,'h':97},
7:{'top':62,'left':113,'w':53,'h':97},
8:{'top':62,'left':193,'w':53,'h':97}},
4:{
1:{'top':70,'left':158,'w':35,'h':64},
2:{'top':68,'left':125,'w':35,'h':64},
3:{'top':68,'left':193,'w':35,'h':64},
4:{'top':71,'left':173,'w':35,'h':64},
5:{'top':71,'left':137,'w':35,'h':64},
6:{'top':73,'left':158,'w':35,'h':64},
7:{'top':73,'left':129,'w':35,'h':64},
8:{'top':73,'left':193,'w':35,'h':64}
}
}
var dConfigObj = {
1: {
0: {
'top':65,
'left':110,
'w':1,
'h':1
}
}
,2: {
0: {
'top':65,
'left':110,
'w':0.65,
'h':0.65
}
},
3: {
0: {
'top':65,
'left':110,
'w':0.48,
'h':0.48
}
},
4: {
0: {
'top':65,
'left':110,
'w':0.35,
'h':0.35
}
}
}
var prob = {
0: {
1:1,
2:0.25,
3:-0.10,
4:-0.38
},
1: {
1:0.90,
2:0.50,
3:0.23,
4:0.05
}
};
function addObj(v,mz,iii){
var r = '';
//355*245 window
var rz = 0; //растояние до пользователя
if(v[2]>=1 && v[2]<=3) { rz = 1; }
if(v[2]>=4 && v[2]<=6) { rz = 2; }
if(v[2]>=7 && v[2]<=9) { rz = 3; }
if(v[2]>=10 && v[2]<=14) { rz = 4; }
if(v[2]>=15 && v[2]<=19) { rz = 5; }
if(v[5]==dsee) { rz -= 1; }
if(dConfigObj[rz]!=undefined && dConfigObj[rz][v[6]]!=undefined) {
new_w = v[7]*dConfigObj[rz][v[6]]['w'];
new_h = v[8]*dConfigObj[rz][v[6]]['h'];
new_left = dConfigObj[rz][v[6]]['left']-Math.round((v[7]*prob[0][rz])/4);
new_top = dConfigObj[rz][v[6]]['top']-Math.round((v[8]*prob[1][rz])/4);
if(v[2]==6) { new_left += 195; new_top -= 5; }
if(v[2]==4) { new_left -= 195; new_top -= 5; }
if( v[2]==9) { new_left -= 140; new_top -= 2; }
if( v[2]==7){ new_left += 140; new_top -= 2; }
if( v[2]==13){ new_left += 100; new_top -= 1; }
if( v[2]==11){ new_left -= 100; new_top -= 0; }
if( v[9]!=0){ new_left += Math.round(new_left/(100+(rz-1)*10)*v[9]+rz*0.25); }
if( v[10]!=0){ new_top += Math.round(new_h/2+new_top/(100+(rz-1)*50)*v[10]-rz*3.3); }
if( rz == 4 ){ new_top += 3; }
if( v[11] != 0 ) {
if(v[11]['t'+rz]!=undefined) { new_top += v[11]['t'+rz]; }
if(v[11]['l'+rz]!=undefined) { new_left += v[11]['l'+rz]; }
if(v[11]['w'+rz]!=undefined) { new_w += v[11]['w'+rz]; }
if(v[11]['h'+rz]!=undefined) { new_h += v[11]['h'+rz]; }
if(v[11]['rt'+rz]!=undefined) { new_top = v[11]['rt'+rz]; }
if(v[11]['rl'+rz]!=undefined) { new_left = v[11]['rl'+rz]; }
}
////i:{0:id,1:name,2:mapPoint,3:action,4:img,5:type},
if( rz >= 1 && rz <= 2 ) {
actionNow = '';
if( v[11]['use'] != undefined ) {
if( v[11]['use'] == 'exit' ) {
actionNow = 'alert(\'Выход из подземелья\');';
} else if( v[11]['use'] == 'takeit' ) {
actionNow = 'location=\'main.php?take_obj='+v[0]+'&rnd='+0.28626200682069150+'\';';
}
}
zfloor0[rz] = ''+zfloor0[rz];
} else {
zfloor0[rz] = ''+zfloor0[rz];
}
r = '';
}
return r;
}
function addUser(v,mz) {
var r = '';
var rz = 0; //растояние до пользователя
if(v[2]>=1 && v[2]<=3){ rz = 1; }
if(v[2]>=4 && v[2]<=6){ rz = 2; }
if(v[2]>=7 && v[2]<=9){ rz = 3; }
if(v[2]>=10 && v[2]<=14){ rz = 4; }
if(v[2]>=15 && v[2]<=19){ rz = 5; }
if(dConfig[rz]!=undefined && dConfig[rz][v[6]]!=undefined) {
new_w = dConfig[rz][v[6]]['w'];
new_h = dConfig[rz][v[6]]['h'];
new_left = dConfig[rz][v[6]]['left'];
new_top = dConfig[rz][v[6]]['top'];
if(v[2]==6) { new_left += 215; new_top -= 5; }
if(v[2]==4) { new_left -= 215; new_top -= 5; }
if(v[2]==9) { new_left -= 155; new_top -= 2; }
if(v[2]==7) { new_left += 155; new_top -= 2; }
if(v[2]==13) { new_left += 115; new_top -= 1; }
if(v[2]==11) { new_left -= 115; new_top -= 1; }
if(v[2]>=11 && v[2]<=13) { new_top += 5; }
if(rz>=1 && rz<=2) {
action = '';
if( v[5]=='bot' || 0 > 0 ) { action = 'dialogMenu('+v[0]+',1,'+v[7]+',0,0,event);'; }
zfloor0[rz] += '';
} else {
zfloor0[rz] += '';
}
r = '';
}
return r;
}
speedLoc = 0;
sLoc1 = 0;
sLoc2 = 0;
tgo = 0;
tgol = 0;
gotoup777 = 0;
gotext777 = '';
function cancelgoto() {
document.getElementById('gotext777').innerHTML = '';
gotoup777 = 0;
gotext777 = '';
}
function goToLoca(id,ttl) {
if(tgo < 1) {
location = 'main.php?go='+id;
}else{
gotoup777 = id;
gotext777 = ttl;
}
}
function locGoLineDng()
{
var line = document.getElementById('pline1');
if(line!=undefined)
{
prc = 100-Math.floor(tgo/tgol*100);
sLoc1 = 108/100*prc;
if(sLoc1<1)
{
sLoc1 = 1;
}
if(sLoc1>108)
{
sLoc1 = 108;
}
line.style.width = sLoc1+'px';
if(tgo>0)
{
tgo -= 1;
setTimeout('locGoLineDng()',100);
}else{
if(gotoup777 > 0) {
location = "main.php?go="+gotoup777;
}
}
if(gotoup777 > 0 && gotext777 != '' && document.getElementById('gotext777').innerHTML != 'Вы перейдете '+gotext777+' (отмена)') {
//document.getElementById('gotext777').style.display = 'block';
document.getElementById('gotext777').innerHTML = 'Вы перейдете '+gotext777+' (отмена)';
}else if(document.getElementById('gotext777').innerHTML != '' && gotoup777 == 0 && gotext777 == '') {
//document.getElementById('gotext777').style.display = 'none';
document.getElementById('gotext777').innerHTML = '';
}
}
}
|
} ?>
Редактировать ботов
if($u->info['admin']==0){ ?>
} ?>
if(!isset($_GET['look'])) { ?>
|
|
if(!isset($test_id)) {
echo ' Пещера не существует';
}else{
//Пещера существует
$min_x = mysql_fetch_array(mysql_query('SELECT `x` FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" ORDER BY `x` ASC LIMIT 1'));
$max_x = mysql_fetch_array(mysql_query('SELECT `x` FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" ORDER BY `x` DESC LIMIT 1'));
$min_y = mysql_fetch_array(mysql_query('SELECT `y` FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" ORDER BY `y` ASC LIMIT 1'));
$max_y = mysql_fetch_array(mysql_query('SELECT `y` FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" ORDER BY `y` DESC LIMIT 1'));
$min_x = $min_x[0];
$max_x = $max_x[0];
$min_y = $min_y[0];
$max_y = $max_y[0];
$map = array();
$stl = array();
$sp = mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "'.mysql_real_escape_string($id).'" AND `x` >= '.$min_x.' AND `x` <= '.$max_x.' AND `y` >= '.$min_y.' AND `y` <= '.$max_y.'');
while($pl = mysql_fetch_array($sp)) {
$style = 'vertical-align:bottom;';
if($pl['st'][2] == 1) {
$style .= 'border-bottom:1px solid #6e6e6e;';
}else{
$style .= 'padding-bottom:1px;';
}
if($pl['st'][1] == 1) {
$style .= 'border-left:1px solid #6e6e6e;';
}else{
$style .= 'padding-left:1px;';
}
if($pl['st'][0] == 1) {
$style .= 'border-top:1px solid #6e6e6e;';
}else{
$style .= 'padding-top:1px;';
}
if($pl['st'][3] == 1) {
$style .= 'border-right:1px solid #6e6e6e;';
}else{
$style .= 'padding-right:1px;';
}
$map[$pl['x']][$pl['y']] = ' ';
}
echo ' Карта пещеры (X: ['.$min_x.'] - ['.$max_x.'] , Y: ['.$min_y.'] - ['.$max_y.'])';
$r = ' ';
$i = $max_y;
while($i >= $min_y) {
$j = $min_x;
$r .= '';
while($j <= $max_x) {
if(isset($map[$j][$i])) {
$r .= ''.$map[$j][$i].' | ';
}else{
$r .= ' | ';
}
$j++;
}
$r .= ' ';
$i--;
}
$r .= ' ';
echo $r;
}
?>
|
|
} ?>