2022-06-06 21:30:34 +00:00
< ? php
2023-02-02 15:39:42 +00:00
if ( ! defined ( 'GAME' )) {
die ();
}
2022-06-06 21:30:34 +00:00
// dungeons/building.php
2023-01-10 16:29:32 +00:00
// name:"Строительство портала"|resource:898x1000,891x500,877x250,900x400,899x400,890x200,876x100,889x100,1035x100
2022-06-06 21:30:34 +00:00
2023-02-02 15:39:42 +00:00
if ( isset ( $file ) && $file [ 0 ] == 'dungeons/building.php' /* && $u->info['admin'] > 0 */ ) {
2022-06-06 21:30:34 +00:00
2023-02-02 15:39:42 +00:00
$need_count = 0 ;
$actions = [];
$resource = [];
$action = explode ( '|' , $file [ 1 ]);
foreach ( $action as $value ) {
$temp = explode ( ':' , $value );
$actions [ $temp [ 0 ]] = $temp [ 1 ];
}
if ( isset ( $actions [ 'resource' ])) {
$action = explode ( ',' , $actions [ 'resource' ]);
foreach ( $action as $value ) {
$temp = explode ( 'x' , $value );
$resource [] = [
'item' => ( int ) $temp [ 0 ],
'count' => ( int ) $temp [ 1 ],
];
$need_count = $need_count + ( int ) $temp [ 1 ];
}
}
$actions [ 'resource' ] = $resource ;
unset ( $action , $temp , $value , $resource );
# Обьекты для строительства
if ( isset ( $_GET [ 'buildend' ])) {
//identid
$obj = mysql_fetch_array (
mysql_query (
'SELECT * FROM `dungeon_obj` WHERE `id` = "' . mysql_real_escape_string (
$actions [ 'identid' ]
) . '" LIMIT 1'
)
);
$txt = '' ;
if ( ! isset ( $obj [ 'id' ])) {
$txt = 'Объект строительства был поврежден темной магией...' ;
} else {
if ( $obj [ 'x' ] == $u -> info [ 'x' ] && $obj [ 'y' ] == $u -> info [ 'y' ]) {
$txt = 'Объект уже был построен ранее! Вернитесь на клетку назад для использования объекта!' ;
} else {
mysql_query (
'UPDATE `dungeon_obj` SET `x` = "' . $u -> info [ 'x' ] . '", `y` = "' . $u -> info [ 'y' ] . '" WHERE `id` = "' . $obj [ 'id' ] . '" LIMIT 1'
);
mysql_query (
'UPDATE `dungeon_obj` SET `x` = "' . $u -> info [ 'x' ] . '", `y` = "' . $u -> info [ 'y' ] . '" WHERE `dn` > 0 AND `name` = "' . $obj [ 'name' ] . '" AND `img` = "' . $obj [ 'img' ] . '" AND `action` = "' . $obj [ 'action' ] . '" AND `x` = "' . $obj [ 'x' ] . '" AND `y` = "' . $obj [ 'y' ] . '"'
);
$txt = 'Строительство "' . $obj [ 'name' ] . '" завершилось, вернитесь на клетку назад...' ;
$cmsg = new ChatMessage ();
$cmsg -> setText ( 'Игрок "<b>' . $u -> info [ 'login' ] . '</b>" завершил строительство объекта "' . mysql_real_escape_string ( $actions [ 'name' ]) . '".' );
$cmsg -> setType ( 6 );
( new Chat ()) -> sendMsg ( $cmsg );
}
}
echo '<div style="font-weight: bold; color: red">' . $txt . '</div>' ;
}
# пожертвование
if ( isset ( $_POST [ 'itemid' ], $_POST [ 'action' ])) {
$help = mysql_fetch_assoc (
mysql_query (
'SELECT COUNT(`id`) as count, item_id FROM `items_users` WHERE `item_id` = ' . $_POST [ 'itemid' ] . ' AND `uid` = ' . $u -> info [ 'id' ] . ' AND (`delete` = "0" OR `delete` = "1000") AND `inOdet` = "0" AND `inShop` = "0" LIMIT 1'
)
);
if ( $help ) {
$item = mysql_fetch_assoc (
mysql_query (
'SELECT im.`name`, im.`img` FROM `items_main` as im WHERE im.`id` = ' . $help [ 'item_id' ] . ' LIMIT 1'
)
);
if ( isset ( $item ) && $item [ 'name' ] != '' ) {
foreach ( $actions [ 'resource' ] as $key => $val ) {
if ( $_POST [ 'itemid' ] == $val [ 'item' ]) {
$current = mysql_fetch_assoc (
mysql_query (
'SELECT SUM(b.`count`) as count, im.`name`, im.`img` FROM `items_main` as im LEFT JOIN `building` as `b` ON b.item_id = im.id WHERE b.`building` = "' . $actions [ 'ident' ] . '" AND im.`id` = ' . $val [ 'item' ] . ' LIMIT 1'
)
);
if ( $current [ 'count' ] == null ) {
$current [ 'count' ] = 0 ;
} else {
$current [ 'count' ] = ( int ) $current [ 'count' ];
}
if ( $current [ 'count' ] + ( int ) $help [ 'count' ] <= $val [ 'count' ]) {
# Если ваших ресурсов меньше чем требуется.
} else {
# Если ваших ресурсов больше чем требуется.
$help [ 'count' ] = + ( $val [ 'count' ] - $current [ 'count' ]);
}
if ( $help [ 'count' ] > 0 ) {
mysql_query (
'UPDATE `items_users` SET `delete` = "' . time (
) . '" WHERE `item_id` = ' . $help [ 'item_id' ] . ' AND `uid` = ' . $u -> info [ 'id' ] . ' AND (`delete` = "0" OR `delete` = "1000") AND `inOdet` = "0" AND `inShop` = "0" ORDER BY `delete` DESC LIMIT ' . $help [ 'count' ] . ''
);
mysql_query (
'INSERT INTO building (id, building, uid, clan_id, item_id, count) VALUES (NULL, "' . $actions [ 'ident' ] . '", ' . $u -> info [ 'id' ] . ', ' . $u -> info [ 'clan' ] . ', ' . $help [ 'item_id' ] . ', ' . $help [ 'count' ] . ')'
);
$d -> error = 'Вы пожертвовали на строительство [' . $item [ 'name' ] . '] в количестве ' . $help [ 'count' ] . 'шт.' ;
}
}
}
#
# mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES ("'.$u->info['dnow'].'","'.time().'","'.$u->info['x'].'","'.$u->info['y'].'","'.$u->info['id'].'","building_resource","count_'.$help.'")');
#
#("'.$u->info['dnow'].'","'.time().'","'.$u->info['x'].'","'.$u->info['y'].'","'.$u->info['id'].'","building_resource","count_'.$help.'")');
}
}
}
unset ( $_POST , $help , $item );
# отображение
$count = mysql_fetch_array (
mysql_query ( 'SELECT SUM(count) as count FROM `building` WHERE `building` = "' . $actions [ 'ident' ] . '" LIMIT 1' )
);
if ( isset ( $count [ 0 ]) and $count [ 0 ] != null ) {
$count = $count [ 0 ];
} else {
$count = 0 ;
}
$r = ' < table width = " 520 " style = " border:1px solid gray;padding:4px 4px; " cellpadding = " 0 " cellspacing = " 0 " >< tr >
2023-01-10 16:29:32 +00:00
< td colspan = " 2 " style = " border:1px solid gray;padding:3px 6px;border-right:0px; " >< strong > Прогресс строительства %</ strong ></ td >
2023-02-02 15:39:42 +00:00
< td align = " right " style = " border:1px solid gray;padding:3px 6px;border-left:0px; " >< table style = " display:inline-block; " border = " 0 " cellspacing = " 0 " cellpadding = " 0 " height = " 10 " >< tr >< td valign = " middle " width = " 120 " style = " padding-top:12px " >< div style = " position:relative; " >< div id = " vhp-1234500000 " title = " Выполнение строительства " align = " left " class = " seehp " style = " position:absolute; top:-10px; width:120px; height:10px; z-index:12; " > ' . round (
$count / ( $need_count / 100 )
) . '/' . ( 100 ) . '</div><div title="Выполнение строительства" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div><div class="hp_3 senohp" style="height:9px; width:120px; position:absolute; top:-10px; z-index:11;" id="lhp-1234500000"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div><div title="Выполнение строительства" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div></div></td></tr></table><br><script>top.startHpRegen("main",-1234500000,' . round (
$count / ( $need_count / 100 )
) . ',' . ( 100 ) . ',0,0,0,0,0,0,1);</script>' ;
$r .= '</td></tr>' ;
# Текущее состояние строительства.
foreach ( $actions [ 'resource' ] as $key => $val ) {
if ( $count == 0 ) {
$current = mysql_fetch_assoc (
mysql_query (
'SELECT im.`name`, im.`img` FROM `items_main` as im WHERE im.`id` = ' . $val [ 'item' ] . ' LIMIT 1'
)
);
$current [ 'count' ] = 0 ;
} else {
$current = mysql_fetch_assoc (
mysql_query (
' SELECT SUM ( b . `count` ) as count , im . `name` , im . `img` FROM `items_main` as im LEFT JOIN `building` as `b` ON b . item_id = im . id
WHERE b . `building` = " ' . $actions['ident'] . ' " AND im . `id` = ' . $val[' item '] . ' LIMIT 1 '
)
);
}
if ( isset ( $current ) && $current [ 'name' ] != '' ) {
$actions [ 'resource' ][ $key ][ 'current' ] = ( int ) $current [ 'count' ];
$actions [ 'resource' ][ $key ][ 'name' ] = $current [ 'name' ];
$actions [ 'resource' ][ $key ][ 'img' ] = $current [ 'img' ];
} else {
$actions [ 'resource' ][ $key ][ 'current' ] = 0 ;
$actions [ 'resource' ][ $key ][ 'name' ] = " Неизвестный предмет " ;
$actions [ 'resource' ][ $key ][ 'img' ] = " " ;
}
}
unset ( $key , $val , $current );
foreach ( $actions [ 'resource' ] as $row ) {
$current_uid = mysql_fetch_assoc (
mysql_query (
'SELECT COUNT(`id`) as count FROM `items_users` WHERE `item_id` = ' . $row [ 'item' ] . ' AND `uid` = ' . $u -> info [ 'id' ] . ' AND (`delete` = "0" OR `delete` = "1000") AND `inOdet` = "0" AND `inShop` = "0" LIMIT 1'
)
);
if ( isset ( $current_uid ) && $current_uid [ 'count' ] == null ) {
$current_uid [ 'count' ] = 0 ;
} // Сколько можем внести
$r .= '<tr><td style="padding:1px 2px 1px 6px;">[' . $row [ 'name' ] . ']</td>' ;
if ( $row [ 'current' ] >= $row [ 'count' ]) {
$input = '' ;
} else {
$input = '<form method="post" id="te' . $row [ 'item' ] . '"><input style="min-width:24px; border:0px; font-weight:bold; cursor:pointer;cursor:hand; text-align:center;" type="hidden" name="itemid" value="' . $row [ 'item' ] . '"> <input style="min-width:90px; border:0px; font-weight:bold; cursor:pointer;cursor:hand; text-align:left;" type="SUBMIT" name="action" title="У вас есть ' . $current_uid [ 'count' ] . 'шт" value="Пожертвовать"></form>' ;
}
$r .= '<td style="padding:1px 3px 1px 3px; text-align:right;">' . $input . '</td><td width="125" style="padding:1px 6px 1px 2px; text-align:right;">' ;
$r .= '<table style="display:inline-block;" border="0" cellspacing="0" cellpadding="0" height="10"><tr><td valign="middle" width="120" style="padding-top:12px"><div style="position:relative;"><div id="vhp-123450' . $row [ 'item' ] . '" title="' . $row [ 'name' ] . '" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . round (
$row [ 'current' ] / ( $row [ 'count' ] / 100 )
) . '/' . ( 100 ) . '</div><div title="' . $row [ 'name' ] . '" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div><div class="hp_3 senohp" style="height:9px; width:120px; position:absolute; top:-10px; z-index:11;" id="lhp-123450' . $row [ 'item' ] . '"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div><div title="' . $row [ 'name' ] . '" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div></div></td></tr></table><br><script>top.startHpRegen("main",-123450' . $row [ 'item' ] . ',' . round (
$row [ 'current' ] / ( $row [ 'count' ] / 100 )
) . ',' . ( 100 ) . ',0,0,0,0,0,0,1);</script>' ;
$r .= '</td></tr>' ;
unset ( $input , $current_uid );
}
if ( round ( $count / ( $need_count / 100 )) >= 100 ) {
$r .= '<tr><td style="padding:1px 3px 1px 3px; text-align:center;"><br><input style="margin-left:120px;" class="btnnew2" onclick="location.href=\'/main.php?buildend\';" value="Завершить строительство" type="button"></td></tr>' ;
}
$r .= '</table>' ;
unset ( $row );
/*
* < table width = " 480 " style = " border:1px solid gray;padding:4px 4px; " cellpadding = " 0 " cellspacing = " 0 " >< tr >
< td style = " border:1px solid gray;padding:3px 6px;border-right:0px; " >< strong > Прогресс строительства </ strong ></ td >
< td align = " right " style = " border:1px solid gray;padding:3px 6px;border-left:0px; " >
*/
# Идет строительство "'.$actions['name'].'", но нам нехватает ресурсов, помоги добрый странник.
$d -> information = '<br/>' . $r ;
2022-06-06 21:30:34 +00:00
2023-02-02 15:39:42 +00:00
}