Назад

есть идея, а с чего начать?

Автор: ??????? ????: Дата: 05.22.2011

в общем хочу написать скрипт "живого" оружия.
суть такая - одеваешь оружие, и активируется скрипт, снимаешь его - и скрипт останавливается.
Насколько я знаю в итем дб в последней части можно прописать свойства итему:

9425,1st_regal_of_Sleipnir,1st regal of Sleipnir,3,0,,10,,,,,,,,,,,,,{},{},{}

первые {} это свойства итема при одевании(использовании),
вторые скобки - свойства итема когда он одет
третьи скобки - свойство итема когда он снимается.

Так вот что прописать в свойство итема чтобы запускался скрипт?
И как скрипт сам начать?

Автор: Хитрюга Джэк: Дата: 05.22.2011

Цитата Rectedo;41864:
bonus script

а по-подробней можно? или в виде примера?

Автор: Пикник: Дата: 05.22.2011

можно callfunc "lolo"; потом делаем скрипт и туда суем эту функцию а в неё то что уже нужно тебе.
извини, если я не так понял первый пост.

Автор: kadze: Дата: 05.22.2011

смотри скрипт по примеру линк итема-я создавал топик.там когда юзаешь хавку делается линк на тебя)

Автор: Kill Spirit: Дата: 05.23.2011

Цитата Хитрюга Джэк;41861:
в общем хочу написать скрипт "живого" оружия.
суть такая - одеваешь оружие, и активируется скрипт, снимаешь его - и скрипт останавливается.
Насколько я знаю в итем дб в последней части можно прописать свойства итему:
9425,1st_regal_of_Sleipnir,1st regal of Sleipnir,3,0,,10,,,,,,,,,,,,,{},{},{}

первые {} это свойства итема при одевании(использовании),
вторые скобки - свойства итема когда он одет
третьи скобки - свойство итема когда он снимается.

Так вот что прописать в свойство итема чтобы запускался скрипт?
И как скрипт сам начать?


Запоздал немного.

9425,1st_regal_of_Sleipnir,1st regal of Sleipnir,3,0,,10,,,,,,,,,,,,,{callfunc "название функции",1;},{},{}

Автор: Kill Spirit: Дата: 05.23.2011

Цитата Хитрюга Джэк;41861:
в общем хочу написать скрипт "живого" оружия.
суть такая - одеваешь оружие, и активируется скрипт, снимаешь его - и скрипт останавливается.
Насколько я знаю в итем дб в последней части можно прописать свойства итему:
9425,1st_regal_of_Sleipnir,1st regal of Sleipnir,3,0,,10,,,,,,,,,,,,,{},{},{}

первые {} это свойства итема при одевании(использовании),
вторые скобки - свойства итема когда он одет
третьи скобки - свойство итема когда он снимается.

Так вот что прописать в свойство итема чтобы запускался скрипт?
И как скрипт сам начать?


Запоздал немного.

9425,1st_regal_of_Sleipnir,1st regal of Sleipnir,3,0,,10,,,,,,,,,,,,,{},{set onsleip,1; callfunc "lox";},{set onsleip,0; callfunc "lox";}


При одевании, будет юзатся функция, которая проверит, есть или нет на персонаже переменная, выдаваемая шмоткой. Если вещь не одета, то эффект снимается, если одета то остаётся.
Попробуй....

function[TAB]script[TAB]lox[TAB]{ if($onsleip>0){sc_start SC_Assumptio,600000,0;} else {sc_end SC_Assumptio;} }


Вроде так.

Автор: Хитрюга Джэк: Дата: 05.23.2011

Kill Spirit, спасибо за стартовую точку. на твоём примере всё отлично функционирует. теперь дело за малым- прописать функцию. ушёл с головой в работу)

Автор: Kill Spirit: Дата: 05.23.2011

Цитата Хитрюга Джэк;41945:
Kill Spirit, спасибо за стартовую точку. на твоём примере всё отлично функционирует. теперь дело за малым- прописать функцию. ушёл с головой в работу)


Можешь написать идею свою (если в паблик не хочется, можешь написать в пм), попытаюсь реализовать (зависит от сложности), делать то всё равно нечего ;)

PS. Изменил переменную в своём посте, с $onsleip (ошибся, это глобальная переменная) на onsleip (перманентная (постоянная) переменная на персонажа)

Автор: Хитрюга Джэк: Дата: 05.24.2011

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

В общем идея следующая:
Представьте что вы в мире меча и магии, в рун-мадгарде, где царят колдуны и существа, призванные неведомо кем.
Как мне кажется, вполне лаконично тут будет смотреться живое оружие. Да- именно живое.
Кто-то может это сравнить с БАНКАЕМ у шинигами из Блича, кто-то назовёт это иначе, но как ни крути суть одна - живое оружие.
Дух заключён в вашей шпаге/щите/шлеме/копье и др.
Естественно этот дух не один - отсюда можно вывести целую линейку квестов и новых итемов, что собственно и сделается.
Много живых оружий,каждое из них уникально по своему. Много характеров и много скриптов.
Бонусы которые может давать подобное оружие это разговор другой ветки топика- сейчас же нас интересует именно как будет выглядеть оружие в игре и что с ним будет происходить.
Рассмотрим на примере всем известного оружия под названием МЕЧ.
Берём любой стандартный спрайт или кастомный, вводим его в игру, присваиваем переменные, дописываем скрипты, и что мы можем увидеть?
-при одевании меча может появится его изображение - то как выглядит дух, живущий в оружии. Картинка появится нам на манер сотрудницы кафры.
-меч при одевании или при каком-то определённом условии будет с нами разговаривать. Он может с нами спорить или подбадривать нас.
-у духа свой характер, и нашему мечу не нравится когда мы с его помощью убиваем людей (расу хьюман). После убийства десятого/сотого/тысячного (на ваш выбор) человека, меч воплощается перед нами в обличии своей демонической формы и пытается убить нас, в надежде освободиться от плена оружия, ну и игрока конечно же. Побеждая демона- мы получаем какую-нибудь плюшку. Допустим наш меч был +15 атк и после этого стал +16 ))

Сейчас я довожу до ума полный цикл действий оружия и его возможности, и на данном не откажусь от помощи в разработке подобной штучки.
(в данный момент скрипт ведёт собственный подсчёт убитых игроков, достигая определённого количества подсчёт прекращается и на карту призывается монстр, побеждая которого игрок получает доступ к линейке квестов.
Если у кого есть комментарии на эту тему- высказывайтесь.

!!! Я не знаю насколько это будет грузить сервак- так что можете поделиться мнениями.
Как сделать чтобы если игрок за определённое время не убивает монстра, то смерть монстра не влияла на продолжение скрипта?
(к примеру - по идее призывается монстр и игрок убивая его активирует следующий диалог с нпс, так вот если игрок за 15 минут не убивает монстра нужно чтобы когда кто-либо другой убьёт этого монстра, диалог не выскочил перед первым игроком так как будто бы он всё-таки убил монстра.)
.
И ещё- подскажите каким запросом в скрипте узнать местоположение игрока и на соседнюю клетку респаунить туда монстра?
а также как запросить проверку на то, одето ли определённое оружие на игроке?

Автор: Хитрюга Джэк: Дата: 05.25.2011

ап)

Автор: kadze: Дата: 05.25.2011

getmapxy разве не?
сделать проверку на имя убившего монстра( если убивший = хозяин меча,то выводим диалог)
isequiped проверка на шмот

Автор: Кеник: Дата: 05.25.2011

Цитата Хитрюга Джэк;41966:

И ещё- подскажите каким запросом в скрипте узнать местоположение игрока и на соседнюю клетку респаунить туда монстра?
а также как запросить проверку на то, одето ли определённое оружие на игроке?


getmapxy - именно то, что тебе надо.
Ну и isequipped для проверки оружия...

В целом - интересная идея, я бы помог даже, но не слишко много свободного времени...

Автор: Kill Spirit: Дата: 05.25.2011

Картинка - клиент, папка с иллюстрациями
Подбадривания - rand \ disbottom
Характер - (Итем бонус оружия, примерно так)

- script OnPCKillEvent -1,{
OnPCKillEvent: // Если мы убили игрока, то будет вызыватся эта функция
if(kill<100){ // Если kill меньше ста, то
set kill, kill+1; // Зачисляем kill +1 при каждом убийстве, до числа 100.
end;
}
monster..... Появление монстра (духа) При убийстве моба, переводим его к нпц...spiritkill::OnSpiritDie; // Если убийств 100, либо более - будет вызыватся этот скрипт.

- script spiritkill -1,{
OnSpiritDie: // Если мы убили моба, то будет вызыватся эта функция
set itembonus,1; // Мы убили моба, теперь нам даётся переменная на перса, что у нас будет не 15 атк, а 16.
set kill,0; // Обнуляем убийства, чтобы не было повторного вызова моба.
}


скрипт оружия будет:

{if(itembonus>0){bonus bAtkRate,16;} bonus bAtkRate,15;},{},{}


-----------

getmapxy map$,x,y; | monster....map$,x,y...;


Как сделать чтобы если игрок за определённое время не убивает монстра, то смерть монстра не влияла на продолжение скрипта?
(к примеру - по идее призывается монстр и игрок убивая его активирует следующий диалог с нпс, так вот если игрок за 15 минут не убивает монстра нужно чтобы когда кто-либо другой убьёт этого монстра, диалог не выскочил перед первым игроком так как будто бы он всё-таки убил монстра.)


перед призывом моба делаем set pers$,strcharinfo(0);
когда убивают моба, то делаем проверку if(pers$!=strcharinfo(0)){end;} вроде так

Автор: kadze: Дата: 05.25.2011

спирит,что бы показать что ты умный третий раз не нужно переписывать одно и тоже :)
как вставить картинку он уже нашел видно из его соседней темы.
по скриптовым функциям сказали уже что и как.
+про убийства у него функция уже реализована.
и да что будет если другой игрок убьет твоего моба с лейблом?)

Автор: Kill Spirit: Дата: 05.25.2011

Цитата kadze;42033:
и да что будет если другой игрок убьет твоего моба с лейблом?)


Читай лучше...

перед призывом моба делаем set pers$,strcharinfo(0);
когда убивают моба, то делаем проверку if(pers$!=strcharinfo(0)){end;} вроде так


И да... getmapxy и issequip это не всё что он просил.

Автор: kadze: Дата: 05.25.2011

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

Автор: Kill Spirit: Дата: 05.25.2011

Цитата kadze;42035]я тоже могу отредактировать пост и написать что так и было х)


[IMG]http://hlfx.ru/forum/images/smilies/facepalm.gif[/IMG:

Автор: kadze: Дата: 05.25.2011

да я просто написал что одно и тоже не обязательно писать третий раз)
а если ты редактировал пост,то не нужно мне писать "читай лучше")

Автор: Kill Spirit: Дата: 05.25.2011

Цитата kadze;42037:
да я просто написал что одно и тоже не обязательно писать третий раз)
а если ты редактировал пост,то не нужно мне писать "читай лучше")


Ололошенька.

Я разве там упомянул по 100500 раз getmapxy и issequiped?
Во 1. Упомянул я правильный вариант о getmapxy.
Во 2. О иссеквипе не было и слова
В 3. Написаны там совершенно другие функции, которые автор просил написать.

Автор: kadze: Дата: 05.25.2011

1.Чем getmapxy не правильный вариант? xD
2. Где автор просил написать бонус скрипт +15 +16 атк?) это было лишь для примера возможностей живого оружия.

Автор: Kill Spirit: Дата: 05.25.2011

Цитата kadze;42042:
1.Чем getmapxy не правильный вариант? xD
2. Где автор просил написать бонус скрипт +15 +16 атк?) это было лишь для примера возможностей живого оружия.

1. Тем что автор явно не знаток скриптов.
2.
Побеждая демона- мы получаем какую-нибудь плюшку. Допустим наш меч был +15 атк и после этого стал +16 ))

Тоесть я написал ему, его же пример. Пусть использует его в качестве плюшек.

Автор: kadze: Дата: 05.25.2011

проветрись

Автор: Kill Spirit: Дата: 05.25.2011

Цитата kadze;42045] проветрись


[IMG]http://hlfx.ru/forum/images/smilies/facepalm.gif[/IMG:

Автор: kadze: Дата: 05.25.2011

копирайты есть на смайлик?) то что ты его сам писданул с форума хл ниче?:D
UPD: опять редактируешь ололшенька))

Автор: Кеник: Дата: 05.25.2011

Цитата Kill Spirit;42044:
1. Тем что автор явно не знаток скриптов.


Пусть учится. Тем более в scripts_commands.txt достаточно полно расписана эта функция.

Автор: Хитрюга Джэк: Дата: 05.26.2011

ребят) ну не знаю знаток я или нет)) но во всяком случае единственные проблеммы были:
-привязка скрипта(функции) к итему
-координаты и призыв на соседнюю клетку моба
- вопрос о том как сделать чтобы если моба убивает другой игрок и не убивает главный игрок, то моб не юзался дальше в скриптах)

Скрипт был написан сразу же после того как подсказали идею с вызовом функции в свойствах итема)

Спасибо за помощь всем и не разводите флуд. Ещё попишу чуток и стопудово вопросы снова появятся по скрипту)

Автор: SouZe: Дата: 06.07.2011

копирайты есть на смайлик?)