[Мануал] Как создать комнату или улицу

Elenberg

Новичок
Репутация
0 / 18
В данном топике я опишу как создать новую улицу или здание.
у меня АнтиБК.ОРГ 2008 от DarkSoul
Предположим что нужно создать здание общаги.
Все действия будут проходить в файле main.php

1. Нужно создать на площади соответствующую картинку с ссылкой на общагу
ищем строки
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>$in_r[14]=getinroom(14,$myinfo->id_city); $r_name[14]</div>
и добавляем туда в конец такую надпись
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>$in_r[23]=getinroom(23,$myinfo->id_city); $r_name[23]="Общага";</div>
Обратите внимание что 23 это id комнаты, оно не должно быть занато другой комнатой или локацией.

то есть должно получиться что то типа
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>$in_r[10]=getinroom(10,$myinfo->id_city); $r_name[10]="Магазин";
$in_r[11]=getinroom(11,$myinfo->id_city); $r_name[11]="Вокзал";
$in_r[12]=getinroom(12,$myinfo->id_city); $r_name[12]="Комиссионка";
$in_r[13]=getinroom(13,$myinfo->id_city); $r_name[13]="Оптовый магазин";
$in_r[14]=getinroom(14,$myinfo->id_city); $r_name[14]="Стела Выбора";
$in_r[15]=getinroom(15,$myinfo->id_city); $r_name[15]="Почтовое отделение";
$in_r[16]=getinroom(16,$myinfo->id_city); $r_name[16]="Лотерейный дом";
$in_r[23]=getinroom(23,$myinfo->id_city); $r_name[23]="Общага";</div>

потом прорисовуем саму картинку общаги, и выбераем где она должна находиться.
прокрутив чуть ниже мы видим строки
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>}else{
echo "<div style=\"position:relative; cursor: pointer;\" id=\"ione\"></div>
добавляем стрроки
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>$num=23;
echo "<div style=\"position:absolute; left:92px; top:172px; width:75px; height:90px; z-index:91; filter:progid:DXImageTransform.Microsoft.Alpha( Opacity=100, Style=0);\"><img src=\"/i/city/iron/mn_hostel.gif\" width=\"95\" height=\"78\" alt=\"\" class=\"aFilter\" onmouseover=\"imover(this)\" onmouseout=\"imout(this); hideshow();\" id=\"mo_1.100.102\" onclick=\"solo('".$num."','".$r_name[$num]."')\" onmousemove=\"fastshow2('".$r_name[$num]."
Сейчас в комнате: ".$in_r[$num]."');\" /></div>";
</div>
left:92px; top:172px; - расположение картинке на фоне города

Помом нужно разрешить переход в эту локу.
Ищем <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>if ($nextroom) {</div>
добавляем ко всему тому что там есть это.
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'> if (in_array($nextroom,array(8)) && $roomtype == 23) {$changeroom=true;} # в общагу </div>
8 - айди цп
23 - айди общаги
по скольку я делаю общагу на страшилкиной у меня вышло чучуть по другому
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>if ($nextroom) {

$changeroom=false;
#echo "@@@".$roomtype.' '.$nextroom;

# Главное здание - 1 этаж

if (in_array($roomtype,array(1,2,3,4)) && $nextroom==5) {$changeroom=true;} # 1 этаж

if (in_array($roomtype,array(19,20,21,22,18)) && $nextroom==6) {$changeroom=true;} # 2 этаж

if (in_array($roomtype,array(19)) && $nextroom==18) {$changeroom=true;} # в знахаря из торгового




/*-------------------------------- СТАШИЛКИНА УЛИЦА-------------------------------------------------*/
if (in_array($roomtype,array(8)) && $nextroom==23) {$changeroom=true;} #из цп на страшилкину
if (in_array($nextroom,array(23)) && $roomtype == 8) {$changeroom=true;} # Из страшилкиной на ЦП
if (in_array($nextroom,array(23)) && $roomtype == 24) {$changeroom=true;} # Из страшилкиной в общагу


if (in_array($roomtype,array(18)) && $nextroom==19) {$changeroom=true;} # из знахаря в торговый


if (in_array($nextroom,array(21,22)) && $roomtype==20) {$changeroom=true;} # из рыц зала в рыцмагов и таверну

if (in_array($nextroom,array(20)) && $roomtype==21) {$changeroom=true;} # из магов в рыцзал

if (in_array($nextroom,array(19)) && $roomtype==22) {$changeroom=true;} # из таверны в торговый



if (in_array($nextroom,array(1,2,3,4,6)) && $roomtype==5) {$changeroom=true;} # из 1 этажа - в комнаты

if (in_array($nextroom,array(19,20)) && $roomtype==6) {$changeroom=true;} # из 2 этажа - в комнаты



if (in_array($nextroom,array(0,5)) && $roomtype==6) {$changeroom=true;} # из 2 этажа и новичков - на 1й
</div>

потом ищем <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>switch ($roomtype){</div>
добавляем строку
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>case 23:$cp=1;break; #Общага</div>
Дальше нам нужно добавить в БД запись о том что такая лока существует
делаем запрос
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>INSERT INTO `room` (`id_city`,`roomname`,`roomtype`,`klub`) VALUES ('1','Общежитие','23','0')</div>
ну и на последок сделаем куда же будет перенаправлять нас скрипт когда мы зайдем в локу.
ищем <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>if ($cp==1)</div>
добавляем в конец этого ифа
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'> elseif ($roomtype == 23){ // ремонтная мастерская
echo "<script> document.location.href=\"obchaga.php\";</script>";
die;
}</div>
Если следить за мануалом то все получиться.
050c61266b3d.jpg
 
Вот чем мне модульность нравится. две кнопки нажал и локация готова.
А тут пока здание добавишь руки опухунут.

// А так спасибо за мануал.
 
Вот чем мне модульность нравится. две кнопки нажал и локация готова.
А тут пока здание добавишь руки опухунут.

// А так спасибо за мануал.

Напиши модуль!

Это же не так сложно.
 
:)
не факт, я бы сделал если бы в этом была нужда для меня, а так в данный момент я занимаюсь общагой и боями, если когда то будет настроение мб и напишу

к примеру, if (in_array($nextroom,array(8)) && $roomtype == 23) {$changeroom=true;} # в общагу
можно забросить в отдельную функцию
написать что то типу


$change = loac_and_rooms($nextroom, $roomtype)
if ($change){
$changeroom=true;
}

function loac_and_rooms($nextroom, $roomtype){
создать новую таблицу в мускуле где это все будет храниться
тут же делаем запрос, и если ответ подожительный то
return true;
}

Добавление в $num=23; и $in_r[23]=getinroom(23,$myinfo->id_city); $r_name[23]="Общага"; и switch ($roomtype){ можно написать взяв влюбой модуль для ДЛЕ в котором есть установка.

Просто на это нужно время, а так как я пишу все скрипты сам, то времени фактически НЕТУ.
Если у кого то есть желание стать соадмином, пишыте в асю!)
сори за рекламу!
 
Вот чем мне модульность нравится. две кнопки нажал и локация готова.
А тут пока здание добавишь руки опухунут.

// А так спасибо за мануал.
модульность это хорошо но вот у нее есть некоторые минусы которые в играх иногда ну хуже криво написанного кода. Еще не одной не видел нормально написанной РПГ с полной модульностью. Да и игре модульность проста не нужна ей достаточно ООП и хорошего кода с логической продуманной структурой. Модульность может пременима в играх типа Стратегии или в буржуйских РПГ и то от части она там не нужна, ее и редко используют.
 
Напиши модуль!

Это же не так сложно.
Я не в упрёк тебе это сказал.
Просто я поставил акцент на том, к чему приводят не граммотно написанные игры.
 
Спасибо , скажи орг от дарксола с мунам сделано ? или мун город сам делал ? и где его скрипт можно скачать? заранее спс
 
Подскажите как сделать так чтобы когда нажимаешь на зал попадал сразу в раздел заявки! Чтобы не приходилось после выбора комнаты нажимать кнопку поединки.! ???
 
уже сам давно разобрался! здесь не от кого не чего не дождешься.
 
Сверху