Автор |
Сообщение |
NB
Неизвестный
Пришел: 24.10.2006
Сообщения: 2
Откуда: Rostov-on-Don
|
Добавлено: 22 мая 2009, 22:23 |
|
|
Добрый день.
Подскажите, собрал батарейку - Жезл из Костей Синего Дракона (самая модная палочка на Гипате ), рецепт: У+У+Пр5хM-- сложность 42, вот только она НЕ работает! Как я понимаю, когда я ловлю удар, жезл должен меня лечить. Вот только лечения нет, пока я его на себя не применю. Как сделать, чтобы батарейка заработала???
EI Mod 3.0.3
P.S. Знатоки, заранее спасибо за конкретный ответ! |
|
|
Влесам
Охотник
Пришел: 04.01.2008
Сообщения: 76
Откуда: Ульяновск
|
Добавлено: 22 мая 2009, 22:51 |
|
|
Пп надо ставить.
Пр действует только если каким-либо боком замешан сам предмет(он или по нему бьют), а жезл не входит в броню и поэтому по нему ударов не наносится, соответственно заклинание не активируется. _________________ Если ты споришь с идиотом, подумай - а вдруг он делает тоже самое? |
|
|
NB
Неизвестный
Пришел: 24.10.2006
Сообщения: 2
Откуда: Rostov-on-Don
|
Добавлено: 23 мая 2009, 08:21 |
|
|
Цитата (Влесам): | Пп надо ставить.
Пр действует только если каким-либо боком замешан сам предмет(он или по нему бьют), а жезл не входит в броню и поэтому по нему ударов не наносится, соответственно заклинание не активируется. |
Спасибо
В ПЗ вернулся спустя нескольких лет wow, уже забыл почти всё) Напомни, если лечение (ПР) стоит в шлеме, а удар прошел в тело или руки, то руна сработает или нет? (собственно и в обратном случае - руна в торс, а удар в голову) |
|
|
Влесам
Охотник
Пришел: 04.01.2008
Сообщения: 76
Откуда: Ульяновск
|
Добавлено: 23 мая 2009, 17:21 |
|
|
Цитата (NB): | Напомни, если лечение (ПР) стоит в шлеме, а удар прошел в тело или руки, то руна сработает или нет? (собственно и в обратном случае - руна в торс, а удар в голову) |
Сработает. _________________ Если ты споришь с идиотом, подумай - а вдруг он делает тоже самое? |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 20 октября 2009, 22:28 |
|
|
В EI Mod 3.0.3 во многих локациях спрятаны сундуки с сокровищами.
У меня такой вопрос: Деньги из такого сундука получит только сервер, они распределятся поровну между Heroes или их получит только открывший сундук? Аналогичный вопрос насчет вещей из сундуков.
ЗЫ
В скриптах мобов использутся команды
GiveItem( 0, "ххх" )
GiveMoney( 0 , ххх )
Но это не добавляет ясности, т.к. я не знаю, как они работают в условиях мультиплеера. |
|
|
Isilendil
Дозорный
Пришел: 13.09.2006
Сообщения: 59
|
Добавлено: 20 октября 2009, 23:02 |
|
|
Тебе цифры 0 зачем даны? Ясно же что получает деньги и предметы сервер! Если бы были 1 - второй игрок и так далее....
PS: Интересно, а развитие ЕИ-мода в каком-либо направлении планируется? |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 21 октября 2009, 19:50 |
|
|
Цитата (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 |
|
|
Код: | 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 |
|
|
Спасибо, интересное решение! ;)
Но вот в этом: Цитата: | в то время как в GiveMoney( nPlayer : float , Money : float ) меняется как раз nPlayer | я не уверен.
Разве номер игрока у игроков человека не всегда 0? Тогда скорее уж такой вариант будет ближе к истине: GiveMoney( nUnitInCurrentParty : float , Money : float ) т.е. параметр nPlayer у функции GiveMoney отсутсвует, т.к. нет смыла давать деньги не игрокам.
Или я совсем себя запутал?
Цитата: | //Поискал немного по форуму, не заметил, чтобы кто-то жаловался на неправильную работу сундуков. Может проблемы нет и мы изобретаем велосипед? |
Может и велосипед, но скорее всего просто никто не обращает на это внимание.
А вобще, ты прав - для полной ясности нужно тестить с несколькими игроками. |
|
|
Aleks
Опытный воин
Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
|
Добавлено: 22 октября 2009, 09:40 |
|
|
Если номер партии у игроков человека всегда 0, то GiveMoney( 0 , Money ) всегда работает одним образом - даёт всем юнитам в партии 0 n денег(либо каждому n/(кол-во юнитов) денег) (если я, опять же, не ошибаюсь), и следовательно, проблемы нет. Нужно потестить. _________________ Против глупости сами боги бессильны. |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 22 октября 2009, 14:40 |
|
|
Цитата (Aleks): | Если номер партии у игроков человека всегда 0, то GiveMoney( 0 , Money ) всегда работает одним образом - даёт всем юнитам в партии 0 n денег(либо каждому n/(кол-во юнитов) денег) (если я, опять же, не ошибаюсь), и следовательно, проблемы нет. Нужно потестить. |
Именно таким был мой первый вопрос, сказали Цитата: | Ясно же что получает деньги и предметы сервер! Если бы были 1 - второй игрок и так далее....
| я поверил Может скоро удасться проверить, как на самом деле. |
|
|
Isilendil
Дозорный
Пришел: 13.09.2006
Сообщения: 59
|
Добавлено: 22 октября 2009, 14:41 |
|
|
А, стоп! Это give 0 money x даёт деньги серверу а Givemoney - группе |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 24 октября 2009, 19:07 |
|
|
1. GiveMoney( 0 , ххх ) дает деньги только серверу, независимо от того, кто открыл сундук.
2. И первый и второй вариант скрипта работают только с 1 игроком, если открывает сундук не сервер - ничего не происходит. |
|
|
Aleks
Опытный воин
Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
|
Добавлено: 24 октября 2009, 19:29 |
|
|
Вы синхронизировали мобы карт перед тестированием? _________________ Против глупости сами боги бессильны. |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 24 октября 2009, 22:42 |
|
|
Цитата (Aleks): | Вы синхронизировали мобы карт перед тестированием? | конечно |
|
|
Aleks
Опытный воин
Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
|
Добавлено: 24 октября 2009, 23:26 |
|
|
Тогда, если все игроки-люди находятся в группе 0, починить такую багу не получится. Если же не находятся (интересно, как бы это проверить), нужно думать дальше. _________________ Против глупости сами боги бессильны. |
|
|
BaaL
Зайчатник
Пришел: 02.11.2004
Сообщения: 22
|
Добавлено: 25 октября 2009, 05:17 |
|
|
Цитата (Aleks): | ... нужно думать дальше. |
эх, если бы была команда, дающая деньги объекту, тогда просто For( i, Heroes ) и нет проблем! ... только вот обекты в ПЗ не всегда юниты. Давать деньги, допустим, стене было бы интересно. Скрипты в ПЗ какието урезаные - я привык как NWN, там скриптами почти все что угодно можно сделать.
О я придумал! Напишу скрипт разных проверок в .txt файле, создам серв и буду тайно тестить на заходящих игроках Можно вместо денег какойнить спецэфект на них направить. |
|
|
Монгол
Охотник
Пришел: 26.10.2009
Сообщения: 70
Откуда: Королев
|
Добавлено: 31 октября 2009, 17:55 |
|
|
Я вот подумал, а нельзя ли смастерить для ПЗ скриптовой расширитель уж если сварганили 3д редактор карт, то думаю и это труда не составит ? |
|
|
Aleks
Опытный воин
Пришел: 27.06.2004
Сообщения: 535
Откуда: Днепропетровск
|
Добавлено: 31 октября 2009, 17:59 |
|
|
Нельзя, нужен исходник.
Хотя, через стартёр можно что-то подобное организовать, насколько я помню. _________________ Против глупости сами боги бессильны.
Изменено: Aleks (31 октября 2009, 18:08), всего изменялось 1 раз |
|
|
Монгол
Охотник
Пришел: 26.10.2009
Сообщения: 70
Откуда: Королев
|
Добавлено: 31 октября 2009, 18:01 |
|
|
Была связь с Нивалом...эхх, я раньше держал контакт с Сергеем Орловским, а сейчас увы |
|
|
Sagrer
Убийца троллей
Пришел: 24.12.2001
Сообщения: 3548
Откуда: Курск
|
Добавлено: 01 ноября 2009, 01:15 |
|
|
хватит уже флудить. Поудалял бред нафиг. _________________ Мы уйдем без следа, ни имен ни примет.
Этот мир простоит еще тысячи лет.
Нас и раньше здесь не было - после не будет.
Ни ущерба, ни пользы от этого нет. (с) Омар Хайям |
|
|
|
Вы не можете создавать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы Вы можете скачивать выложенные файлы
|
Часовой пояс: GMT +4:00
|
|