Gem of the North


Страницы: (5) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению ) -ОтветитьНовая темаГолосование-

> Помогите начинающему
fuzya_jc
Отправлено: Aug 30 2007, 12:39 PM
|Цитировать


Group Icon



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

Ответьте плиз чуть подробнее с примерами:
1. Есть две локи, Loka_1, Loka_2. Между ними нет перехода/дверя. На первом старт точка, на втором Точка маршрута. Тег точки маршрута Tochka_1.
На первом локе Портал. На On Use портала написал скрипт -

void main()
{
objekt Igrok, Tochka;
location Lika;

Igrok = GetUsedBy ();
Tochka = GetObjectByTag ("Tochka_1");
Loka = GetLocation(Tochka)
ActionJumpToLocation (Tochka);
}

Ну что то типа этого... Но не переходит в локу_2 когда жму на портале.

2. Какая функция или набор функций нужны для визуального эффекта каста? Напрмер мне нада что бы при розговоре с НПС на персе показался визуальный эффект Харма, но не сам Харм.

3. Как привязывать скрипты ко кнопке РЕСПАУН после смерти ? в дэфолте при нажатие Респавна респится прямо там же... а мн енада что бы респился в Стартовом локе.
4. Можно ли запретить конкретные спеллы в модуле?



==========
Sai:

// на OnUse портала:
object oPC = GetPCByTag("fuzya_jc");
object oWP = GetWaypointByTag("http://www.city-of-masters.ru/forums/index.php?showforum=5");
DelayCommand(0.01, AssignCommand(oPC, ClearAllActions(TRUE)));
DelayCommand(0.02, AssignCommand(oPC, JumpToObject(oWP)));

Это сообщение отредактировал Sairilias - Aug 31 2007, 06:58 AM


--------------------
--------------------
Карта Гема от меня:
http://picshare.ru/view/25307/map_gem_3-2.jpg.html
| PM| Email Poster|
Вверх Вниз
Ilerien Phoenix
Отправлено: Aug 30 2007, 01:25 PM
|Цитировать


Group Icon



1) object oPlayer, oPoint
Мб дело в этом?
2)
CODE
effect eVisHarm = EffectVisualEffect (nID);

nID берётся из файла visualeffects.2da (строчка), для харма это будет 246. Можно взять константу эффекта из скрипта самого харма smile.gif
3) хз smile.gif надо покопаться в тулсе
4) Да, редактированием spells.2da

Это сообщение отредактировал Ilerien Phoenix - Aug 30 2007, 01:49 PM


--------------------
И вечный бой! Покой нам только снится... (с) Александр Блок
------------------------
Я ролевик, и я не люблю манчей. И мне наплевать на тех, кто этого не понимает (с) Clement Astilon
------------------------
Если ты споришь с идиотом, вероятно, то же самое делает и он (с)
------------------------
[DM] Ilerien
| PM| Email Poster| Users Website| ICQ|
Вверх Вниз
Lomir
Отправлено: Aug 30 2007, 01:51 PM
|Цитировать


Group Icon



QUOTE
1) object oPlayer, oPoint
Мб дело в этом?

Этож переменые какоя разница то?

А тэги у меня точно неповторяються?
Я бы протрейсил находит ли он этот обьект "точка".

Можно попробовать ActionJumpToObject()


--------------------
От большого yма лишь сyма, да тюpьма.
От лихой головы лишь канавы и pвы.
От кpасивой дyши только стpyпья и вши.
От вселенской любви только моpды в кpови.
(с) Янка Дягилева
| PM| Email Poster| ICQ|
Вверх Вниз
Lomir
Отправлено: Aug 30 2007, 01:58 PM
|Цитировать


Group Icon



Все понел в чем дело!

ActionJumpToObject() и ActionJumpToLocation() непомогут потому, что кого он должен телепортировать? Себя, т.е. он пытаеться телепортивует не игрока а сам портал.

Тут надо делать что то типо Event'а. Портал OnUse будет запускать код на игроке который в свою очередь телепортирует игроке в обьект.


--------------------
От большого yма лишь сyма, да тюpьма.
От лихой головы лишь канавы и pвы.
От кpасивой дyши только стpyпья и вши.
От вселенской любви только моpды в кpови.
(с) Янка Дягилева
| PM| Email Poster| ICQ|
Вверх Вниз
Konug
Отправлено: Aug 30 2007, 02:59 PM
|Цитировать


Group Icon



QUOTE (Ilerien Phoenix @ Aug 30 2007, 07:25 PM)
4) Да, редактированием spells.2da

Необязательна. Можно просто поправить скрипты спеллов. Можно даже чтобы при попытки каста выдавало что-то типа "Спелл запрещен".
| PM| Email Poster| ICQ|
Вверх Вниз
Ilerien Phoenix
Отправлено: Aug 30 2007, 06:04 PM
|Цитировать


Group Icon



QUOTE
Необязательна. Можно просто поправить скрипты спеллов. Можно даже чтобы при попытки каста выдавало что-то типа "Спелл запрещен".
Через 2да проще...


--------------------
И вечный бой! Покой нам только снится... (с) Александр Блок
------------------------
Я ролевик, и я не люблю манчей. И мне наплевать на тех, кто этого не понимает (с) Clement Astilon
------------------------
Если ты споришь с идиотом, вероятно, то же самое делает и он (с)
------------------------
[DM] Ilerien
| PM| Email Poster| Users Website| ICQ|
Вверх Вниз
Bepon
Отправлено: Aug 31 2007, 05:25 AM
|Цитировать


Group Icon



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


--------------------
Бепон Цукфе - Gem of the North
| PM| Email Poster| ICQ|
Вверх Вниз
fuzya_jc
Отправлено: Aug 31 2007, 12:03 PM
|Цитировать


Group Icon



Спасибо вам..

- Разобрался в скрипте перелета между локами
- разобрался в скрипте визуального эффекта
- разобрался в кнопке Респавна

теперь другие вопросы:

- можно ли написать скрипт который удалит все вещи с инвеньтаря обекта. я че то там не нашел функцию RemoveItem.
- примерно напишите скрипт который обределяет кастера, спелла который он кастует.

Я в своей локе OnHeartBeat поставил скрипт с помошью функций GetLastCaster(), GetSpellId(), о че то не помог. Например мне надо было что при касте спелла Маг Армор (АйДи 42) сам кастер сразу сдох под дейсвием эффекта EffectDeath().


--------------------
--------------------
Карта Гема от меня:
http://picshare.ru/view/25307/map_gem_3-2.jpg.html
| PM| Email Poster|
Вверх Вниз
Drago the Fiery
Отправлено: Aug 31 2007, 12:20 PM
|Цитировать


Group Icon



1. ставицо в OnClientEnter в опциях модуля.
CODE

       object oItem = GetFirstItemInInventory(oPC);
       while(GetIsObjectValid(oItem))
       {
           DestroyObject(oItem);
           oItem = GetNextItemInInventory(oPC);
       } // удаляет из инвентаря

       int i=0;
       while(i<14)
       {
       DestroyObject(GetItemInSlot(i, oPC));
       i++;

       } // снимает все с чара

2. в скрипт закла добавь смерть.
| PM| Email Poster| ICQ|
Вверх Вниз
fuzya_jc
Отправлено: Aug 31 2007, 12:59 PM
|Цитировать


Group Icon



Спасибо за первое..

Но на счет 2-го... дело не то что он не убивает кастера, а в том что не определяет кастера... например я сам кастую на ся маг армор, но чего то не умираю.


--------------------
--------------------
Карта Гема от меня:
http://picshare.ru/view/25307/map_gem_3-2.jpg.html
| PM| Email Poster|
Вверх Вниз
Drago the Fiery
Отправлено: Aug 31 2007, 01:11 PM
|Цитировать


Group Icon



ниасилил.. если кастишь но себя, то умираешь, на других - нед?

упд

CODE

object oTarget = GetSpellTargetObject();
if (oTarget == OBJECT_SELF)
   ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), OBJECT_SELF);

так?

Это сообщение отредактировал Drago the Fiery - Aug 31 2007, 01:23 PM
| PM| Email Poster| ICQ|
Вверх Вниз
fuzya_jc
Отправлено: Aug 31 2007, 04:28 PM
|Цитировать


Group Icon



Нет..

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

Я так хотел:
CODE

object oMazaxist = GetLastSpellCaster(); // определяет того кто кастует

int iKodMagii = GetSpellID(); // опрределяет магию

if (iKodMagii = 42) // 42 код Магик Армора
  {
  effect eKill = EffectVisualEffect (50); // это визуальный эффект смерти
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oMazaxist); //
  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oMazaxist);
  SendMessage("Hey dude, dont cast this spell", oMazaxist);
  }


Но помоему скрипт не определяет токо кто кастует.

Это сообщение отредактировал fuzya_jc - Aug 31 2007, 04:31 PM


--------------------
--------------------
Карта Гема от меня:
http://picshare.ru/view/25307/map_gem_3-2.jpg.html
| PM| Email Poster|
Вверх Вниз
Drago the Fiery
Отправлено: Aug 31 2007, 04:31 PM
|Цитировать


Group Icon



дык прямо в скрипт спела и запихай..
| PM| Email Poster| ICQ|
Вверх Вниз
Ilerien Phoenix
Отправлено: Aug 31 2007, 06:15 PM
|Цитировать


Group Icon



В скрипте спелла ма:
CODE
effect eDeath = EffectDeath();
object oTarget = OBJECT_SELF;
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);


--------------------
И вечный бой! Покой нам только снится... (с) Александр Блок
------------------------
Я ролевик, и я не люблю манчей. И мне наплевать на тех, кто этого не понимает (с) Clement Astilon
------------------------
Если ты споришь с идиотом, вероятно, то же самое делает и он (с)
------------------------
[DM] Ilerien
| PM| Email Poster| Users Website| ICQ|
Вверх Вниз
fuzya_jc
Отправлено: Sep 6 2007, 02:32 PM
|Цитировать


Group Icon



Спасибо... полностью фиксил нужные мне спеллы через скрипты. И особых фитов типа "Стрелы смерти" Аркан Арчера и т.д смог фиксить (ДЦ = 20+Мф Дексы).. но не знаю как добавить/убрать/передвигать фиты для классов. Например файтеру на 17-м уровне хочу ставить эпик прувес и эпик армора. Если дело в 2да файле то дайте плиз редактор чтоб работать на них.


--------------------
--------------------
Карта Гема от меня:
http://picshare.ru/view/25307/map_gem_3-2.jpg.html
| PM| Email Poster|
Вверх Вниз
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Страницы: (5) [1] 2 3 ... Последняя » -ОтветитьНовая темаГолосование-