Список форумов
Гипат.org
Найдется место всем!


:: В чате сейчас никого нет
eimod
Страницы Пред.  1, 2, 3 ... 22, 23, 24
   Список форумов -> MODный форум
Автор
Сообщение
NB
Неизвестный


Пришел: 24.10.2006
Сообщения: 2
Откуда: Rostov-on-Don
Добавлено: 22 мая 2009, 22:23 [?] [PM] [i]   [«»]

Добрый день.
Подскажите, собрал батарейку - Жезл из Костей Синего Дракона (самая модная палочка на Гипате :D ), рецепт: У+У+Пр5хM-- сложность 42, вот только она НЕ работает! Как я понимаю, когда я ловлю удар, жезл должен меня лечить. Вот только лечения нет, пока я его на себя не применю. Как сделать, чтобы батарейка заработала???
EI Mod 3.0.3
P.S. Знатоки, заранее спасибо за конкретный ответ!
Влесам
Охотник


Пришел: 04.01.2008
Сообщения: 76
Откуда: Ульяновск
Добавлено: 22 мая 2009, 22:51 [?] [PM]   [«»]

Пп надо ставить. :clever:
Пр действует только если каким-либо боком замешан сам предмет(он или по нему бьют), а жезл не входит в броню и поэтому по нему ударов не наносится, соответственно заклинание не активируется. :clever:
_________________
Если ты споришь с идиотом, подумай - а вдруг он делает тоже самое?
NB
Неизвестный


Пришел: 24.10.2006
Сообщения: 2
Откуда: Rostov-on-Don
Добавлено: 23 мая 2009, 08:21 [?] [PM] [i]   [«»]

Цитата (Влесам):
Пп надо ставить. :clever:
Пр действует только если каким-либо боком замешан сам предмет(он или по нему бьют), а жезл не входит в броню и поэтому по нему ударов не наносится, соответственно заклинание не активируется. :clever:

Спасибо :up:
В ПЗ вернулся спустя нескольких лет wow, уже забыл почти всё) Напомни, если лечение (ПР) стоит в шлеме, а удар прошел в тело или руки, то руна сработает или нет? (собственно и в обратном случае - руна в торс, а удар в голову)
Влесам
Охотник


Пришел: 04.01.2008
Сообщения: 76
Откуда: Ульяновск
Добавлено: 23 мая 2009, 17:21 [?] [PM]   [«»]

Цитата (NB):
Напомни, если лечение (ПР) стоит в шлеме, а удар прошел в тело или руки, то руна сработает или нет? (собственно и в обратном случае - руна в торс, а удар в голову)


Сработает.
_________________
Если ты споришь с идиотом, подумай - а вдруг он делает тоже самое?
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 20 октября 2009, 22:28 [?] [PM] [i]   [«»]

В EI Mod 3.0.3 во многих локациях спрятаны сундуки с сокровищами.
У меня такой вопрос: Деньги из такого сундука получит только сервер, они распределятся поровну между Heroes или их получит только открывший сундук? Аналогичный вопрос насчет вещей из сундуков.

ЗЫ
В скриптах мобов использутся команды
GiveItem( 0, "ххх" )
GiveMoney( 0 , ххх )
Но это не добавляет ясности, т.к. я не знаю, как они работают в условиях мультиплеера.
Isilendil
Дозорный


Пришел: 13.09.2006
Сообщения: 59
Добавлено: 20 октября 2009, 23:02 [?] [PM]   [«»]

Тебе цифры 0 зачем даны? Ясно же что получает деньги и предметы сервер! Если бы были 1 - второй игрок и так далее....

PS: Интересно, а развитие ЕИ-мода в каком-либо направлении планируется?
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 21 октября 2009, 19:50 [?] [PM] [i]   [«»]

Цитата (AzK):
Тебе цифры 0 зачем даны? Ясно же что получает деньги и предметы сервер! Если бы были 1 - второй игрок и так далее....


Точно? А можно ли сделать так, чтобы все получил только тот, кто открыл сундук?

Например так:
Код:

DeclareScript #Chest1Check (  this : object )
DeclareScript #Chest1 (  this : object )

Script #Chest1Check
(
  if
  (
    IsEqual( GetLeverState( Chest1 ) , 1 )
  )
  then
  (
    KillScript()
    Sleep( 5 )
    #Chest1 ( NULL )
  )
)

Script #Chest1
(
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,0) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 0 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,1) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 1 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,2) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 2 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,3) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 3 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,4) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 4 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer(0,5) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( 5 , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
  )
  then
  (
    KillScript()
  )
)


Ксожалению, я не знаю как тут можно организовать цикл, поэтому конструкция получилась громоздкая.

Я проверил у себя - этот скрипт работает (правда я не могу пока проверить его, с большим количеством игроков).
Aleks
Опытный воин


Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
Добавлено: 21 октября 2009, 23:27 [?] [PM] [i]   [«»]

Код:
DeclareScript #Chest1Check ( this : object )
DeclareScript #Chest1 ( gamer : float )

Script #Chest1Check
(
  if
  (
    IsEqual( GetLeverState( Chest1 ) , 1 )
  )
  then
  (
    KillScript()
    Sleep( 5 )
    #Chest1 ( 0 )
  )
)

Script #Chest1
(
  if
  (
    IsLess( DistanceUnitUnit( Chest1 , GetUnitOfPlayer( gamer,0 ) ) , 2 )
    Not(IsEqual( GSGetVar( 0, "Is.Opened.Chest1") , 1 ))
  )
  then
  (
    KillScript()
    GSSetVar( 0, "Is.Opened.Chest1" , 1 )
    GiveMoney( gamer , Add( 3000, Random( 12000 ) ) )
  )
  if
  (
  )
  then
  (
   KillScript()
   #Chest1( Add( gamer,1 ) )
  )
)

Проверь такой код. Обрати внимание, что GetUnitOfPlayer определяется как GetUnitOfPlayer( nPlayer : float , nUnitInCurrentParty : float ), а в твоём скрипте вместо nPlayer меняется nUnitInCurrentParty, в то время как в GiveMoney( nPlayer : float , Money : float ) меняется как раз nPlayer.
Насчёт мультиплеера: я с ним в скриптовом плане вообще не сталкивался и не знаю, кому и как выдаются деньги и каким будет номер игрока у играющих, но если идея скрипта верна - должен работать. Я бы проверил с несколькими игроками открытие сундука с таким скриптом и без, чтобы быть уверенным.

//Поискал немного по форуму, не заметил, чтобы кто-то жаловался на неправильную работу сундуков. Может проблемы нет и мы изобретаем велосипед?
_________________
Против глупости сами боги бессильны.
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 22 октября 2009, 07:01 [?] [PM] [i]   [«»]

Спасибо, интересное решение! ;)

Но вот в этом:
Цитата:
в то время как в GiveMoney( nPlayer : float , Money : float ) меняется как раз nPlayer
я не уверен.
Разве номер игрока у игроков человека не всегда 0? Тогда скорее уж такой вариант будет ближе к истине: GiveMoney( nUnitInCurrentParty : float , Money : float ) т.е. параметр nPlayer у функции GiveMoney отсутсвует, т.к. нет смыла давать деньги не игрокам.

Или я совсем себя запутал? :roll:

Цитата:
//Поискал немного по форуму, не заметил, чтобы кто-то жаловался на неправильную работу сундуков. Может проблемы нет и мы изобретаем велосипед?

Может и велосипед, но скорее всего просто никто не обращает на это внимание.
А вобще, ты прав - для полной ясности нужно тестить с несколькими игроками.
Aleks
Опытный воин


Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
Добавлено: 22 октября 2009, 09:40 [?] [PM] [i]   [«»]

Если номер партии у игроков человека всегда 0, то GiveMoney( 0 , Money ) всегда работает одним образом - даёт всем юнитам в партии 0 n денег(либо каждому n/(кол-во юнитов) денег) (если я, опять же, не ошибаюсь), и следовательно, проблемы нет. Нужно потестить.
_________________
Против глупости сами боги бессильны.
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 22 октября 2009, 14:40 [?] [PM] [i]   [«»]

Цитата (Aleks):
Если номер партии у игроков человека всегда 0, то GiveMoney( 0 , Money ) всегда работает одним образом - даёт всем юнитам в партии 0 n денег(либо каждому n/(кол-во юнитов) денег) (если я, опять же, не ошибаюсь), и следовательно, проблемы нет. Нужно потестить.

Именно таким был мой первый вопрос, сказали
Цитата:
Ясно же что получает деньги и предметы сервер! Если бы были 1 - второй игрок и так далее....
я поверил :) Может скоро удасться проверить, как на самом деле.
Isilendil
Дозорный


Пришел: 13.09.2006
Сообщения: 59
Добавлено: 22 октября 2009, 14:41 [?] [PM]   [«»]

А, стоп! Это give 0 money x даёт деньги серверу а Givemoney - группе
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 24 октября 2009, 19:07 [?] [PM] [i]   [«»]

1. GiveMoney( 0 , ххх ) дает деньги только серверу, независимо от того, кто открыл сундук.

2. И первый и второй вариант скрипта работают только с 1 игроком, если открывает сундук не сервер - ничего не происходит. :(
Aleks
Опытный воин


Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
Добавлено: 24 октября 2009, 19:29 [?] [PM] [i]   [«»]

Вы синхронизировали мобы карт перед тестированием?
_________________
Против глупости сами боги бессильны.
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 24 октября 2009, 22:42 [?] [PM] [i]   [«»]

Цитата (Aleks):
Вы синхронизировали мобы карт перед тестированием?
конечно
Aleks
Опытный воин


Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
Добавлено: 24 октября 2009, 23:26 [?] [PM] [i]   [«»]

Тогда, если все игроки-люди находятся в группе 0, починить такую багу не получится. Если же не находятся (интересно, как бы это проверить), нужно думать дальше.
_________________
Против глупости сами боги бессильны.
BaaL
Зайчатник


Пришел: 02.11.2004
Сообщения: 22
Добавлено: 25 октября 2009, 05:17 [?] [PM] [i]   [«»]

Цитата (Aleks):
... нужно думать дальше.

эх, если бы была команда, дающая деньги объекту, тогда просто For( i, Heroes ) и нет проблем! ;) ... только вот обекты в ПЗ не всегда юниты. Давать деньги, допустим, стене было бы интересно. Скрипты в ПЗ какието урезаные - я привык как NWN, там скриптами почти все что угодно можно сделать.

О я придумал! Напишу скрипт разных проверок в .txt файле, создам серв и буду тайно тестить на заходящих игроках :D Можно вместо денег какойнить спецэфект на них направить.
Монгол
Охотник


Пришел: 26.10.2009
Сообщения: 70
Откуда: Королев
Добавлено: 31 октября 2009, 17:55 [?] [PM]   [«»]

Я вот подумал, а нельзя ли смастерить для ПЗ скриптовой расширитель уж если сварганили 3д редактор карт, то думаю и это труда не составит ?
Aleks
Опытный воин


Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
Добавлено: 31 октября 2009, 17:59 [?] [PM] [i]   [«»]

Нельзя, нужен исходник.
Хотя, через стартёр можно что-то подобное организовать, насколько я помню.
_________________
Против глупости сами боги бессильны.


Изменено: Aleks (31 октября 2009, 18:08), всего изменялось 1 раз
Монгол
Охотник


Пришел: 26.10.2009
Сообщения: 70
Откуда: Королев
Добавлено: 31 октября 2009, 18:01 [?] [PM]   [«»]

Была связь с Нивалом...эхх, я раньше держал контакт с Сергеем Орловским, а сейчас увы :(
Sagrer
Убийца троллей


Пришел: 24.12.2001
Сообщения: 3548
Откуда: Курск
Добавлено: 01 ноября 2009, 01:15 [?] [PM] [M] [w] [m] [i]   [«»]

хватит уже флудить. Поудалял бред нафиг.
_________________
Мы уйдем без следа, ни имен ни примет.
Этот мир простоит еще тысячи лет.
Нас и раньше здесь не было - после не будет.
Ни ущерба, ни пользы от этого нет. (с) Омар Хайям
Показать сообщения:   
   Список форумов -> MODный форум
Страницы Пред.  1, 2, 3 ... 22, 23, 24 Версия для печати
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы
Вы можете скачивать выложенные файлы
Перейти:  
Часовой пояс: GMT +4:00