Перейти к содержанию

МОТОР


Some

Рекомендуемые сообщения

Если кто-то раньше играл на МОТРе, то, наверное, помнит тамошнюю функцию супер премиума с тикетом на вызов МВП.

Суть, для тех, кто не знает:

Супер Премиум пользователь получает специальный купон при приобретении аккаунта на вызов МВП. Собирает пати из 6 человек, включая его самого. Люди становятся в пентаграмму(5 концов) и в центре премиум жмёт на купон, призывая МВП. Если пентаграмма кривая, то вызывается гриб или травинка с бешеным АСПД и нередко и убивает смельчаков :D

Есть идеи по реализации?

Ссылка на комментарий
Поделиться на другие сайты

Что значит пентаграмма кривая? они встали не там, где положено?

Робота с координатами(простейшая) Dice Event. Вызов через условия нужного монстра.

Ссылка на комментарий
Поделиться на другие сайты

В есть видео\скрины?

Мне интересно как создать правильную пентаграмму, у которой вершины с целыми координатами

На набросках ужасно криво, а уж какие погрешности придется учитывать...

fDXlnBp.png

P.S.: И да, на мотре прем не жмет на купон, сначала пишет @pentagram, от чего между всеми членами пати появляются нитки, а потом пишет @mvp, после чего уже происходит проверка, вызов и забирание купона

Изменено пользователем Jarek
Ссылка на комментарий
Поделиться на другие сайты

Нет. Ничем таковым не располагаю :( Ни видео, ни скрины.

Ну это, конечно, очень хитроумно, использовать скрипт кубика. Хотелось бы юзать эту команду или купон везде, а не на определённой локации и определённых координатах. Смысла тогда не будет в правильности постановки игроков по краям звезды. Как итог - постоянный вызов МВП и минимальный шанс ошибки.

Я думаю, что нужно впаять определённые координаты, на вскидку. Абсолютно прямо всё равно не получится. После того, как забиндим координаты для использования ставим проверку на 2-3 клетки от "идеала" и вызов травы. Ну и координаты можно будет подравнять уже на тестировании в раге. Как покажется более прямым - так и оставить.

** По поводу купона - каюсь, не знал. Сам был только в роли "столба"

__________________________________________________________

У меня нет толковых идей по релизу. Думал насчёт кубика ещё до публикации топика и с проверками если помудрить, то реализовать одну такую локацию будет не сложно.

Но как сделать всё это на "простор" игрового мира пока не вкурил.

Изменено пользователем Some
Ссылка на комментарий
Поделиться на другие сайты

Чисто теоретически:

1) получаем координаты шести тел

2) проверяем, найдется ли такое тело, которое равноудалено от остальных? (если да, то высчитываем среднее значение и получаем R)

3) убедиться, что остальные 5 образуют пятиугольник (например будет ли каждое удалено от двух на t (длина стороны), а от других двух на d(диагональ) (предварительно посчитав t и d на основе R)

(не уверен будет ли такая проверка правильной, но не смог её опровергнуть)

Ну или сделать жесткое условие, чтобы пятиугольник был строго ориентирован ( южная грань была параллельна Ох) и был определенных размеров

тогда координаты центрального игрока берутся за основу, и проверяется, будет ли в определенных клетках от него стоят его же сопартийцы

Ссылка на комментарий
Поделиться на другие сайты

2txt.jpg

Присмотрелся я - это практически твой второй вариант. Ну и относительно него, как раз, составлена схема с радиусами и прочим.

Изменено пользователем Some
Ссылка на комментарий
Поделиться на другие сайты

@Jarek что-то хитровымудренное придумал, второй вариант проще и мне кажется правильнее его юзать. Центральные игрок как точка отсчета, остальные стоят +5 вверх, +1 вверх +5 влево и т.д. Все кажется довольно просто

Ссылка на комментарий
Поделиться на другие сайты

Да координаты разметить это уже по месту можно. Меня интересовал стартовый "толчок" к реализации.

Тем более, как всплыло позднее, после публикации - участвовали команды.

Ну а как всю эту связку впаять :D

Ссылка на комментарий
Поделиться на другие сайты

знаешь как можно сделать, для начара отредактировать карту

на месте где должны стоять игроки поставить эффект 172-179 ,

когда все игроки займуть места этих эфффектов, появляется нпц по центру, далее музон, проверки на лут и уаля появляется МВП.

без вмешательства в Соцы

Изменено пользователем Salfer
Ссылка на комментарий
Поделиться на другие сайты

знаешь как можно сделать, для начара отредактировать карту

на месте где должны стоять игроки поставить эффект 172-179 ,

когда все игроки займуть места этих эфффектов, появляется нпц по центру, далее музон, проверки на лут и уаля появляется МВП.

без вмешательства в Соцы

это скучно. Так можно в любом месте делать, и сейчас тоже не обязательно в сорсы лезть есть уже бинд для команд любых, со всем этим справится обычный скрипт

Ссылка на комментарий
Поделиться на другие сайты

Не хотелось бы ограничиваться одной локацией - стандартом, в который игроки зайдут, встанут по линеечке и закастуют МВП. Проще сразу тогда давать парочку блуди бранчей.

Я хоть и в броу не особо шарю, но проставить эффекты, аля сафети волл смогу, но не хотелось бы)

Ну, допустим, я сделаю в предмет вызов функции. Кликнули, значит, 2 раза и пошёл скрипт работать...

Можно для проверки сразу гетмапюзерс :D бахнуть или гетпатимембер, не важно.

Как реализовать проверку на отдаление одних от других?

Ссылка на комментарий
Поделиться на другие сайты

alpha 0.1b

координаты рассчитываются на основе рисунка из 6-го поста

номера вершин показаны схематически в коде

.@fail = .@true = 0;
getpartymember getcharid(1);
if ($@partymembercount < 6)
.@fail = 1;
else {
//___0___
//1_____2
//_______
//_3___4_
getmapxy(.@map, .@x, .@y, 0, strcharinfo(0));
setarray .@px[0], .@x, .@x-4, .@x+4, .@x-3, .@x+3,
setarray .@py[0], .@y+4, .@y+1, .@y+1, .@y-4, .@y-4;
for(.@i = 0; .@i < $@partymembercount; .@i++ ){
if(strcharinfo(0) == $@partymembername$[.@i])
continue; //если данный член пати - вызывающий, не нужно его проверять
getmapxy(.@mapp, .@xp, .@yp, 0, $@partymembername$[.@i]);
for(.@j = 0; .@j < getarraysize(.@px); .@j++){
if((.@xp == .@px[.@j]) && (.@yp == .@py[.@j])){
.@true++;
//удаляем из массивов координат "занятые"
deletearray .@px[.@j],1;
deletearray .@py[.@j],1;
}
}
}
if(.@true<5)
.@fail = 1;
}
if (.@fail)
monster .@map, .@x, .@y, "Грыбочек",<mob id>,1;
else
monster "this",-1,-1,"--ja--",-3,1,"";
delitem <coupon_id>,1;
end;

Изменено пользователем Jarek
  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

Если я правильно понимаю то тут нет проверки на вызывающего, то есть он может стоять где угодно?

И как указывать значение .@xp и.@yp, чтобы не было фейлов, когда их действительно нет?

UPD Все понял, дурак) Учимся читать скрипты)))

Можно сие чудо сразу привязать к билетику, который с помощью меню и проверит на пати и нитки раскидает. И потом через него же или другой билет начать сам вызов с проверками на правильность звезды..

Изменено пользователем Elmiria
Ссылка на комментарий
Поделиться на другие сайты

Еще при желании можно выводить имена тех, кто накосячил

Elmiria, ну я лишь привел основу

Edit: не уверен насчет того, примет ли парсер скриптов continue в цикле, если нет - можно что-нибудь придумать

Изменено пользователем Jarek
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика