<?php # Admin Only Area const GAME = true; include_once('_incl_data/__config.php'); include_once('_incl_data/class/__db_connect.php'); define('IP', UserIp::get()); $u = User::start(); if (!$u->info['admin']) { die('<meta http-equiv="refresh" content="0; URL=/">'); } 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 = [0, 0]; $data = explode(',', ltrim(rtrim($obj['date'], '\}'), '\{')); $da = []; $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' ) ); 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 { 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 = [ 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) ]; $d = new DungeonEditor(); $d->start(); $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'])) { ?> <!DOCTYPE html> <html> <head> <title>Визуальный редактор Лабиринтов</title> <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/jqueryrotate.js"></script> <script type="text/javascript" src="../js/jquery.zclip.js"></script> <script type="text/javascript" src="../js/jquery.cookie.js"></script> <script type="text/javascript" src="../js/title.js"></script> <link href="//img.new-combats.tech/css/dungeon_<?= $d->point['css']; ?>.css" rel="stylesheet" type="text/css"> <script> //редактирование обьектов var obi = { 'obj': 0, 'w': 0, 'h': 0, 't': 0, 'l': 0, 'position': 0, 'val': 0 }; function editObjResize(objs, vl, iii) { $(top.obi['obj']).css({'background-color': ''}); top.obi = { 'obj': objs, 'id': $(top.obi['obj']).attr('id'), 'w': $(objs).width(), 'h': $(objs).height(), 't': $(objs).css('top'), 'l': $(objs).css('left'), 'position': 0, 'val': 0 }; $('#eo').css({ 'display': '', 'position': 'absolute', 'top': $(objs).css('top'), 'left': $(objs).css('left'), 'width': $(objs).width() + 'px', 'height': $(objs).height() + 'px' }); resizeObj1(event, iii); } function resizeObj1(e, iii) { $('#object_resize_editor').css({'display': ''}); $('#Dungeon2').css({'display': ''}); $('#Dungeon2').bind('mousemove', function (event) { resizeObj(event); }); $('#Dungeon2').bind('click', function (event) { moveObjEnd2(); }); //ore_save_obj var op = objs[iii]; $('#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]); $('#ore_w2').val(op[7]); $('#ore_h2').val(op[8]); $('#ore_type').val(op[12]); $('#ore_type2').val(op[13]); $('#ore_s').val(op[14]); $('#ore_s2').val(op[15]); $('#ore_os1').val(op[16]); $('#ore_os2').val(op[17]); $('#ore_os3').val(op[18]); $('#ore_os4').val(op[19]); $('#ore_fix_x_y').val(op[20]); saveCord(); var npos = $('#' + $(top.obi['obj']).attr('id') + '_2').offset(); $('#' + $(top.obi['obj']).attr('id') + '_2').css({'background-color': 'blue', 'opacity': '0.25'}); } function ore_save_obj() { $.post('dn_editor.php?look=1', { ore_id: $('#ore_id').val(), ore_img: $('#ore_img').val(), ore_name: $('#ore_name').val(), ore_x: $('#ore_x').val(), ore_y: $('#ore_y').val(), ore_t: $('#ore_t').val(), ore_l: $('#ore_l').val(), ore_w: $('#ore_w').val(), ore_h: $('#ore_h').val(), ore_type: $('#ore_type').val(), ore_type2: $('#ore_type2').val(), ore_s: $('#ore_s').val(), ore_s2: $('#ore_s2').val(), ore_os1: $('#ore_os1').val(), ore_os2: $('#ore_os2').val(), ore_os3: $('#ore_os3').val(), ore_os4: $('#ore_os4').val(), ore_fix_x_y: $('#ore_fix_x_y').val(), id_dng: <?=(0 + $_POST['id_dng'])?> }, function (data) { $('#textAjaxGo').html('[' + data + ']'); top.goPix(top.sel_id, top.sel_x, top.sel_y); }); } function ore_delete_obj() { $.post('dn_editor.php?look=1', { ore_delete_id: $('#ore_id').val() }, function (data) { $('#textAjaxGo').html('[' + data + ']'); top.goPix(top.sel_id, top.sel_x, top.sel_y); }); } function moveObjEnd2() { $('#Dungeon2').unbind('mousemove'); $('#Dungeon2').unbind('click'); $('#' + $(top.obi['obj']).attr('id') + '_2').css({'background-color': '', 'opacity': '1.0'}); $('#Dungeon2').css({'display': 'none'}); $('#eo').css({ 'display': 'none' }); $('#object_resize_editor').css({ 'display': 'none' }); var obi = { 'obj': 0, 'w': 0, 'h': 0, 't': 0, 'l': 0, 'position': 0, 'val': 0 }; } function editObj(objs, vl) { $(top.obi['obj']).css({'background-color': ''}); top.obi = { 'obj': objs, 'id': $(top.obi['obj']).attr('id'), 'w': $(objs).width(), 'h': $(objs).height(), 't': $(objs).css('top'), 'l': $(objs).css('left'), 'position': 0, 'val': 0 }; $('#eo').css({ 'display': '', 'position': 'absolute', 'top': $(objs).css('top'), 'left': $(objs).css('left'), 'width': $(objs).width() + 'px', 'height': $(objs).height() + 'px' }); moveObj1(event); } function moveObj1(e) { $('#Dungeon2').css({'display': ''}); $('#Dungeon2').bind('mousemove', function (event) { moveObj(event); }); $('#Dungeon2').bind('click', function (event) { moveObjEnd(event); }); $('#' + $(top.obi['obj']).attr('id') + '_2').css({'background-color': 'red', 'opacity': '0.21'}); } function moveObj(e) { if (!e) e = window.event; var x = e.pageX, y = e.pageY; var xm = parseFloat($('#Dungeon2').offset().left), ym = parseFloat($('#Dungeon2').offset().top); Math.round(x = x - xm - ($(top.obi['obj']).width() / 2)); Math.round(y = y - ym - ($(top.obi['obj']).height() / 2)); $('#' + $(top.obi['obj']).attr('id') + '_2').css({'top': y + 'px', 'left': x + 'px'}); $(top.obi['obj']).css({'top': (y + 2) + 'px', 'left': x + 'px'}); $('#eo').css({'top': y + 'px', 'left': x + 'px'}); } function moveObjEnd(e) { $('#Dungeon2').unbind('mousemove'); $('#Dungeon2').unbind('click'); if (!e) e = window.event; var x = e.pageX, y = e.pageY; var xm = parseFloat($('#Dungeon2').offset().left), ym = parseFloat($('#Dungeon2').offset().top); x = Math.round(x - xm - ($(top.obi['obj']).width() / 2)); y = Math.round(y - ym - ($(top.obi['obj']).height() / 2)); $('#' + $(top.obi['obj']).attr('id') + '_2').css({'background-color': '', 'opacity': '1.0'}); //$(top.obi['obj']).css({'top':(y+2)+'px','left':x+'px'}); $('#eo').css({'top': y + 'px', 'left': x + 'px'}); $('#Dungeon2').css({'display': 'none'}); //Сохраняем позицию обьекта $.post('dn_editor.php', { saveObjPosition: $(top.obi['obj']).attr('id'), rz: $(top.obi['obj']).attr('rz'), objx: x, objy: y, x: top.sel_x, y: top.sel_y, s: top.sel_s }, function (data) { $('#textAjaxGo').html('[' + data + ']'); }); $('#eo').css({ 'display': 'none' }); var obi = { 'obj': 0, 'w': 0, 'h': 0, 't': 0, 'l': 0, 'position': 0, 'val': 0 }; } var sel_id = 0, sel_x = 0, sel_y = 0, sel_s = 1; function goPix(id, x, y) { $('#dngseemap').html(''); if (top.sel_s < 1) { top.sel_s = 4; } if (top.sel_s > 4) { top.sel_s = 1; } if (top.sel_id > 0) { $('#px_' + top.sel_id).css({'background-color': ''}); $('#px_' + top.sel_id).attr({'className': 'cq'}); } $('#px_' + id).css({'background-color': '#ffd5d5'}); top.obi = { 'obj': 0, 'w': 0, 'h': 0, 't': 0, 'l': 0, 'position': 0, 'val': 0 }; top.sel_id = id; top.sel_x = x; top.sel_y = y; $('#fm1').attr("src", "dn_editor_bots.php?id_dn=<?=$id?>&xx=" + x + "&&yy=" + y + ""); $.post('dn_editor.php?look=1', {id: <?=$id?>, id_p: id, x: x, y: y, s: top.sel_s}, function (data) { $('#dngseemap').html(data); }); } function dialogMenu(id, atk, talk, look, take, e) { var d = document.getElementById('deMenu'); if (d != undefined) { if (e == undefined) { e = window.e; } d.innerHTML = ''; var t = ''; if (talk > 0) { t += '<a href=' + talk + '"../main.php?talk=&rnd=0.28626200682069150">Диалог</a><br>'; } if (atk == 1) { t += '<a href=' + id + '"../main.php?atack=&rnd=0.28626200682069150">Напасть</a><br>'; } if (look == 1) { t += 'Просмотр<br>'; } if (take == 1) { t += 'Поднять<br>'; } d.innerHTML = t + '<small style="float:right;"><button style="border: solid 1pt #B0B0B0; font-family: MS Sans Serif; font-size: 10px; color: #191970; MARGIN-BOTTOM: 2px; MARGIN-TOP: 1px;" type="button" onClick="exitDem();">x</button></center>'; d.style.display = ''; if (e.x == undefined) { e.x = e.clientX; e.y = e.clientY; } d.style.top = e.y + 'px'; if (e.x > 320) { d.style.right = (document.body.offsetWidth - e.x) + 'px'; } else { d.style.right = (-e.x + 540) + 'px'; } } } function exitDem() { var d = document.getElementById('deMenu'); if (d != undefined) { d.innerHTML = ''; d.style.display = 'none'; d.style.top = '0px'; d.style.right = '0px'; } } <?php } if($id > 0) { ?> <?php if (isset($_GET['look'])) { echo '<script>'; } if (!isset($_GET['look'])) { echo 'var'; }?> objects = {}; //i:{id,login,mapPoint,sex,obraz,type,users_p}, <?php if (!isset($_GET['look'])) { echo 'var'; }?> users = {}; <?php if (!isset($_GET['look'])) { echo 'var'; }?> objs = {<?= $d->genObjects(); ?>}; <?php if (!isset($_GET['look'])) { echo 'var'; }?> items = {}; <?php if (!isset($_GET['look'])) { echo 'var'; }?> actions = {}; <?php if (!isset($_GET['look'])) { echo 'var'; }?> dsee = <?= 0 + $d->gs; ?>; <?php if (!isset($_GET['look'])) { echo 'var'; }?> mapp = { 1: '0_0f', 2: '0_0f', 3: '0_0f', 4: '1_1f', 5: '1_1f', 6: '1_1f' , 7: '2_1f', 8: '2_1f', 9: '2_1f' , 11: '3_1l', 12: '3_1f', 13: '3_1r' } <?php if (!isset($_GET['look'])) { echo 'var'; }?> zmap = {5: 894, 8: 0, 12: 0} <?php if (!isset($_GET['look'])) { echo 'var'; }?> zfloor0 = {1: '', 2: '', 3: '', 4: '', 5: ''}; <?php } if(isset($_GET['look'])){ echo '</script>'; }else{ ?> function genMap() { var i = 0, m = false, mz = false; while (i < users['count']) { if (users[i] != undefined) { mz = mapp[users[i][2]]; if (document.getElementById(mz) != undefined) { m = document.getElementById(mz); m.innerHTML = addUser(users[i], mz) + m.innerHTML; } } i++; } var i = 0, m = false, mz = false; while (i < objs['count']) { if (objs[i] != undefined) { mz = mapp[objs[i][2]]; if (objs[i][5] == dsee && (objs[i][2] == 5 || objs[i][2] == 2 || objs[i][2] == 8 || objs[i][2] == 12 || objs[i][2] == 15)) { mz = mapp[objs[i][2] - 3]; } if (document.getElementById(mz) != undefined) { m = document.getElementById(mz); m.innerHTML = addObj(objs[i], mz, i) + m.innerHTML; } } i++; } var i = 5; 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] = '<img id="obj_true_' + v[0] + '_2" rz="' + rz + '" oncontextmenu="top.editObjResize(\'#obj_true_' + v[0] + '\',\'' + v + '\',\'' + iii + '\'); return false" title="' + v[1] + '" onClick="top.editObj(\'#obj_true_' + v[0] + '\',\'' + v + '\')" src="//img.new-combats.tech/1x1.gif" style="cursor:pointer;position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />' + zfloor0[rz]; } else { zfloor0[rz] = '<img id="obj_true_' + v[0] + '_2" rz="' + rz + '" oncontextmenu="top.editObjResize(\'#obj_true_' + v[0] + '\',\'' + v + '\',\'' + iii + '\'); return false" title="' + v[1] + '" onClick="top.editObj(\'#obj_true_' + v[0] + '\',\'' + v + '\')" src="//img.new-combats.tech/1x1.gif" style="position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />' + zfloor0[rz]; } r = '<img id="obj_true_' + v[0] + '" rz="' + rz + '" oncontextmenu="top.editObjResize(\'#obj_true_' + v[0] + '\',\'' + v[1] + '\',\'' + iii + '\'); return false" onClick="top.editObj(\'#obj_true_' + v[0] + '\',\'' + v[1] + '\')" title="obj" src="//img.new-combats.tech/i/sprites/' + v[4] + '" class="dObj" style="position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />'; } 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] += '<img title="' + v[1] + '" onClick="' + action + '" src="//img.new-combats.tech/1x1.gif" style="cursor:pointer;position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />'; } else { zfloor0[rz] += '<img title="' + v[1] + '" src="//img.new-combats.tech/1x1.gif" style="position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />'; } r = '<img title="user" src="//img.new-combats.tech/chars/' + v[3] + '/' + v[4] + '.png" class="dUser" style="position:absolute;top:' + new_top + 'px;left:' + new_left + 'px;width:' + new_w + 'px;height:' + new_h + 'px;" />'; } 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 != 'Вы перейдете <b>' + gotext777 + '</b> (<a href="javascript:void(0)" onclick="cancelgoto()">отмена</a>)') { //document.getElementById('gotext777').style.display = 'block'; document.getElementById('gotext777').innerHTML = 'Вы перейдете <b>' + gotext777 + '</b> (<a href="javascript:void(0)" onclick="cancelgoto()">отмена</a>)'; } else if (document.getElementById('gotext777').innerHTML != '' && gotoup777 == 0 && gotext777 == '') { //document.getElementById('gotext777').style.display = 'none'; document.getElementById('gotext777').innerHTML = ''; } } } </script> <style> .cq { background-color: #F2F2F2; } .cq:hover { background-color: #d6e4c6; } .hintDm { position: absolute; background-color: #E4E4E4; padding: 5px; border: 1px solid #999; z-index: 1; width: 70px; } .dUser { max-height: 220px; max-width: 120px; min-width: 30px; min-height: 55px; border: 0px solid; padding: 0px; margin: 0px; } *[onselectstart="return false"] { -moz-user-select: none; -o-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .dObj { border: 0px solid; padding: 0px; margin: 0px; } .test1 { text-align: right; } #pline1 { background-image: url(//img.new-combats.tech/wait3.gif); height: 9px; z-index: 1000; } </style> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="10"> <tr> <td height="40"> <div style="padding:10px;"> <form method="post" action="?<?= time() ?>"> <small style="margin:5px; background:#999999;"><span style="color:#CCCCCC"> Пещера# <b><?= $id ?></b> </span> </small> <select name="id_dng" id="id_dng"> <option value="0">Выберите номер пещеры</option> <?php $i = 0; while ($i <= 200) { $sp = mysql_fetch_array( mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "' . $i . '" LIMIT 1') ); if (isset($sp['id'])) { ?> <option <?php if ($id == $i) { echo 'selected'; } ?> value="<?= $i ?>"><?php if ($id == $i) { echo '*' . $i . '*'; } else { echo $i; } ?></option> <?php } $i++; } ?> </select> <button type="submit">Отправить</button> </form> <div style="height:23px;" id="textAjaxGo"></div> </div> </td> </tr> <tr> <td height="300" align="center" bgcolor="#F2F2F2"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td width="500" height="600" align="center" valign="top" id="dngseemap"> <?php } ?> <a href="dn_editor_bots.php?id_dn=<?= $id ?>&xx=<?= $u->info['psevdo_x'] ?>&&yy=<?= $u->info['psevdo_y'] ?>" target="fm1">Редактировать ботов</a> <div> <div style="float:left"><a href="javascript:void(0)" onClick="top.sel_s++;top.goPix(top.sel_id,top.sel_x,top.sel_y);">Налево</a> </div> <div style="float:right"><a href="javascript:void(0)" onClick="top.sel_s--;top.goPix(top.sel_id,top.sel_x,top.sel_y);">Направо</a> </div> </div> <!-- ---------------------------------------------------- --> <div id="Dungeon" class="Dungeon" align="center" style="width:352px;height:240px;padding:0px;margin:10px;"> <div id="Dungeon2" onselectstart="return false" style="z-index:10005000; display:none; position:absolute; width: 352px; height: 240px; left: 0px; top: 0px;"></div> <div id="eo" onselectstart="return false" style="display:none;z-index:10000000"></div> <!-- / MAP \ --> <div id="Floor0" class="Floor0"> <div class="Floor1"> <div class="<?php if ($pd[1] == 1) { echo 'LeftSide4_1'; } ?>"> <div class="<?php if ($pd[2] == 1) { echo 'RightSide4_1'; } ?>"> <div id="4_0r" class="<?php if ($pd[3] == 1) { echo 'RightSide4_0'; } ?>"> <div id="4_0l" class="<?php if ($pd[4] == 1) { echo 'LeftSide4_0'; } ?>"> <div id="3_2l" class="<?php if ($pd[5] == 1) { echo 'LeftFront3_2'; } ?>"> <div id="3_2r" class="<?php if ($pd[6] == 1) { echo 'RightFront3_2'; } ?>"> <div class="<?php if ($pd[7] == 1) { echo 'LeftFront3_1'; } ?>"> <div class="<?php if ($pd[8] == 1) { echo 'RightFront3_1'; } ?>"> <div id="3_1f" class="<?php if ($pd[9] == 1) { echo 'LeftFront3_0'; } ?>"> <div id="3_1l" class="<?php if ($pd[10] == 1) { echo 'LeftFront3_1'; } ?>"> <div id="3_1r" class="<?php if ($pd[11] == 1) { echo 'RightFront3_1'; } ?>"> <div class="<?php if ($pd[12] == 1) { echo 'LeftSide3_0'; } ?>"> <div id="3_0l" class="<?php if ($pd[13] == 1) { echo 'RightSide3_0'; } ?>"> <div id="2_1l" class="<?php if ($pd[14] == 1) { echo 'LeftFront2_1'; } ?>"> <div id="2_1r" class="<?php if ($pd[15] == 1) { echo 'RightFront2_1'; } ?>"> <div id="2_1f" class="<?php if ($pd[16] == 1) { echo 'LeftFront2_0'; } ?>"> <div class="<?php if ($pd[17] == 1) { echo 'LeftSide2_0'; } ?>"> <div id="2_0l" class="<?php if ($pd[18] == 1) { echo 'RightSide2_0'; } ?>"> <div id="1_1l" class="<?php if ($pd[19] == 1) { echo 'LeftFront1_1'; } ?>"> <div id="1_1r" class="<?php if ($pd[20] == 1) { echo 'RightFront1_1'; } ?>"> <div id="1_1f" class="<?php if ($pd[21] == 1) { echo 'LeftFront1_0'; } ?>"> <div class="<?php if ($pd[22] == 1) { echo 'LeftSide1_0'; } ?>"> <div id="1_0l" class="<?php if ($pd[23] == 1) { echo 'RightSide1_0'; } ?>"> <div sid="0_1l" class="<?php if ($pd[24] == 1) { echo 'LeftFront0_1'; } ?>"> <div id="0_1r" class="<?php if ($pd[25] == 1) { echo 'RightFront0_1'; } ?>"> <div id="0_0f" class="<?php if ($pd[26] == 1) { echo 'LeftFront0_0'; } ?>"> <div class="<?php if ($pd[27] == 1) { echo 'LeftSide0_0'; } ?>"> <div id="0_0l" class="<?php if ($pd[28] == 1) { echo 'RightSide0_0'; } ?>"> <?php if ($u->info['admin'] == 0){ ?> <div> <img src="//img.new-combats.tech/i/1x1.gif" usemap="#ObjectsMap" border="0"/> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- / MAP \ --> <span class="<?php if ($pd[28] == 1) { echo 'RightSide0_0'; } ?>"> <?php } ?> </span></div> </div> <script> genMap(); </script> <!-- ---------------------------------------------------- --> <?php if (isset($_GET['look'])) { return; } ?> </td> <td valign="top"> <iframe id="fm1" name="fm1" frameborder="0" src="" width="500px" height="500px"></iframe> <script> var audW = 0, audH = 0; function autoDext(id) { if (id == 0) { var aW = 0, aW = 0, aR = 0; aW = parseInt(top.audW); mW = parseInt($('#ore_w2').val()); aR = aW / 100; aR = (mW / aR - 100); var aR2 = parseInt(audH) / 100; aR = Math.ceil(parseInt(audH) + (aR * aR2)); $('#ore_h2').val(aR); } else { } } function saveCord() { top.audW = parseInt($('#ore_w2').val()); top.audH = parseInt($('#ore_h2').val()); } var utmr = 0; var utmrp = 0; function autoDext2() { //clearTimeout(top.utmr); //top.utmr = setTimeout('autoDext2('+utmrp+')',20); top.autoDext(utmrp); } </script> <div id="object_resize_editor" style="display:none"> <b>Редактор объекта</b><br> <div> <div style="display:inline-block;width:100px;">ID:</div> <input id="ore_id" type="text" value=""> (для нового указывать: 0) </div> <div> <div style="display:inline-block;width:100px;">название:</div> <input id="ore_name" type="text" value=""> </div> <div> <div style="display:inline-block;width:100px;">изображение:</div> <input id="ore_img" type="text" value=""> </div> ------[Для текущей позиции]-----<br> <div> <div style="display:inline-block;width:70px;">ширина:</div> <input id="ore_w" type="text" value=""> (общая) <input id="ore_w2" onKeyUp="utmrp=0;autoDext2();" type="text" value=""> (<a href="javascript:void(0)" onClick="saveCord();">Новый расчет</a>) </div> <div> <div style="display:inline-block;width:70px;">высота:</div> <input id="ore_h" type="text" value=""> (общая) <input id="ore_h2" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">top:</div> <input id="ore_t" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">left:</div> <input id="ore_l" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">X:</div> <input id="ore_x" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">Y:</div> <input id="ore_y" type="text" value=""> </div> ------[Детали отображения]-----<br> <div> <div style="display:inline-block;width:70px;">TYPE:</div> <input id="ore_type" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">TYPE2:</div> <input id="ore_type2" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">S:</div> <input id="ore_s" type="text" value=""> </div> <div> <div style="display:inline-block;width:70px;">S2:</div> <input id="ore_s2" type="text" value=""> </div> <?php $i = 1; while ($i <= 4) { ?> <div> <div style="display:inline-block;width:70px;">OS<?= $i ?>:</div> <input id="ore_os<?= $i ?>" type="text" value=""> </div> <?php $i++; } ?> <div> <div style="display:inline-block;width:70px;">FIX_X_Y:</div> <input id="ore_fix_x_y" type="text" value=""> </div> <a onClick="ore_save_obj()" href="javascript:void(0)">Сохранить / Добавить объект</a><br> -------------------------------------<br> <a onClick="ore_delete_obj()" href="javascript:void(0)">Удалить объект</a> </div> </td> <td> <div style="overflow:auto; height:410px"> <?php if (!isset($test_id)) { echo '<br><br><br><br><br><center>Пещера не существует</center>'; } 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 = []; $stl = []; $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']] = '<img class="cq" onClick="top.goPix(' . $pl['id'] . ',' . $pl['x'] . ',' . $pl['y'] . ');" id="px_' . $pl['id'] . '" style="' . $style . '" width="20" height="20" src="//img.new-combats.tech/1x1.gif" title="X: ' . $pl['x'] . ', Y: ' . $pl['y'] . '">'; } echo '<center><b>Карта пещеры</b> (X: [' . $min_x . '] - [' . $max_x . '] , Y: [' . $min_y . '] - [' . $max_y . '])</center><br><br>'; $r = '<table border="0" cellspacing="0" cellpadding="0">'; $i = $max_y; while ($i >= $min_y) { $j = $min_x; $r .= '<tr>'; while ($j <= $max_x) { if (isset($map[$j][$i])) { $r .= '<td>' . $map[$j][$i] . '</td>'; } else { $r .= '<td><img style="vertical-align:bottom" width="1" height="1" src="//img.new-combats.tech/1x1.gif"></td>'; } $j++; } $r .= '</tr>'; $i--; } $r .= '</table>'; echo $r; } ?> </div> </td> </tr> </table> </td> </tr> </table> </body> </html>