Перейти к содержанию
Авторизация  
Nice

Сurse Death Link Не Открывает Сундуки!

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

Здравствуйте ув. знатоки :)

Нужна Ваша помощь касательно сундуков в сборке C4. Проблема собственно заключается в том, что сундуки не открываются при нанесении большого урона. Они просто исчезают.

Подскажите в каком файле исходников и что отвечает за подобную ерунду. Буду весьма признателен.

 

Сборка L2jLisvus, Chronicle 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 04:02, Nice сказал:

Здравствуйте ув. знатоки :)

Нужна Ваша помощь касательно сундуков в сборке C4. Проблема собственно заключается в том, что сундуки не открываются при нанесении большого урона. Они просто исчезают.

Подскажите в каком файле исходников и что отвечает за подобную ерунду. Буду весьма признателен.

 

Сборка L2jLisvus, Chronicle 4

 

Есть исходы? Покажите AI Chest-ов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 07:42, Silentium сказал:

Смотрите АИ сундуков.

 

Спасибо :) Но вот еще, я не очень силен в Java. Подскажите где и что менять..

Вот мой Chests.py

 

  Chests.py (Показать контент)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:25, Nice сказал:

Спасибо :) Но вот еще, я не очень силен в Java. Подскажите где и что менять..

Вот мой Chests.py

 

Ну смотрите, всё верно.

 

def onAttack(self,npc,player,damage,isPet) :

npcId = npc.getNpcId()

# check if the npc and skills used are valid for this script. Exit if invalid.

if npcId not in self.chests : return

 

При Атаке сунука:

if Rnd.get(100) < IS_BOX : #Это бокс, он может быть открыт ключом

npc.onDecay() #Удаляем его

 

 

Всё верно, бьём box - вызываем onDecay() - удаляем его из игрового мира.

Изменено пользователем YuraAAA1
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:32, YuraAAA1 сказал:

Ну смотрите, всё верно.

 

def onAttack(self,npc,player,damage,isPet) :

npcId = npc.getNpcId()

# check if the npc and skills used are valid for this script. Exit if invalid.

if npcId not in self.chests : return

 

При Атаке сунука:

if Rnd.get(100) < IS_BOX : #Это бокс, он может быть открыт ключом

npc.onDecay() #Удаляем его

 

 

Всё верно, бьём box - вызываем onDecay() - удаляем его из игрового мира.

 

То есть все верно указано? и должны открываться при нанесении большого урона?

Поделиться сообщением


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

Смотрите. Сундук может быть Box (открывается, с точками), а может быть Chest (обычный сундук, дерётся).

 

Если Вы атакуете Box - он исчезает, как Вы и описали (onDecay()). Если Вы атакуете Chest - он начинает драться с Вами. От количества урона не зависит.

А как Вы хотите изменить? Чтобы он открывался?

Поделиться сообщением


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

По acis-у Box не просто исчезает, а кастует "суицид". Т.е. взрывается. Но ни в коем случае он не открывается при атаке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:39, YuraAAA1 сказал:

Смотрите. Сундук может быть Box (открывается, с точками), а может быть Chest (обычный сундук, дерётся).

 

Если Вы атакуете Box - он исчезает, как Вы и описали (onDecay()). Если Вы атакуете Chest - он начинает драться с Вами. От количества урона не зависит.

А как Вы хотите изменить? Чтобы он открывался?

 

Я почти на всех серверах С4 видел такой эффект, когда маг (СХ, Некр) сливаются под CDL (Curse Death Link) и с одного удара убивают сундук который должен открываться ключом (то есть сундук Box) и с него имеется дроп. Если же с одного удара не удалось убить, сундук исчезает.

Возможно это баг такой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:40, YuraAAA1 сказал:

По acis-у Box не просто исчезает, а кастует "суицид". Т.е. взрывается. Но ни в коем случае он не открывается при атаке.

В С4 сундук должен открываться при смерти, если он умирает с одного удара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:43, Nice сказал:

Я почти на всех серверах С4 видел такой эффект, когда маг (СХ, Некр) сливаются под CDL (Curse Death Link) и с одного удара убивают сундук который должен открываться ключом (то есть сундук Box) и с него имеется дроп. Если же с одного удара не удалось убить, сундук исчезает.

Возможно это баг такой?

 

Я думаю, это баг. Такого не должно быть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:43, Nice сказал:

Я почти на всех серверах С4 видел такой эффект, когда маг (СХ, Некр) сливаются под CDL (Curse Death Link) и с одного удара убивают сундук который должен открываться ключом (то есть сундук Box) и с него имеется дроп. Если же с одного удара не удалось убить, сундук исчезает.

Возможно это баг такой?

Оффлайк. Вроде бы в С5 были изменения по сундукам, и они перестали открываться таким образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:44, YuraAAA1 сказал:

Я думаю, это баг. Такого не должно быть.

Не баг. Можно проверить на ПТС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 09:45, Silentium сказал:

Не баг. Можно проверить на ПТС.

 

Есть PTS с4, но понятия не имею где искать Ai :)

 

Как сделать то? чтоб правильно работало. Подскажите пожалуйста.

Изменено пользователем Nice

Поделиться сообщением


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

Так мне поможет кто-то с данной проблемой? Тема актуальна..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 12.05.2014 в 15:03, Nice сказал:

Так мне поможет кто-то с данной проблемой? Тема актуальна..

 

Т.е. Вам нужно сделать так, что если сундук умирает с одного удара, он должен открыться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 13.05.2014 в 07:00, YuraAAA1 сказал:

Т.е. Вам нужно сделать так, что если сундук умирает с одного удара, он должен открыться?

 

Да, именно так и нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 13.05.2014 в 13:53, Nice сказал:

Да, именно так и нужно.

 

Не сильно в питоне разбираюсь, но да ладно.

 

Вместо onDecay() в методе onAttack пишем

 

keyLevelNeeded = int(npc.getLevel()/10)
levelDiff = keyLevelNeeded - 9 #9 - должен быть уровень скилла видимо. Экспериментируйте
if levelDiff < 0 :
levelDiff = levelDiff * (-1)
chance = BASE_CHANCE - levelDiff * LEVEL_DECREASE

# success, pretend-death with rewards: npc.reduceCurrentHp(99999999, player)
if Rnd.get(100) < chance :
npc.setMustRewardExpSp(False)
npc.setSpecialDrop();
npc.reduceCurrentHp(99999999, player)
return

npc.onDecay()

 

Помните, что python чувствителен к отступам, по-этому Вы должны внимательно всё расставить

Изменено пользователем YuraAAA1
  • Upvote 1

Поделиться сообщением


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

http://postimg.org/image/rlmad4lp3/

 

P.S. Не знаю как прикрепить изображение прямо на форум :(

Изменено пользователем YuraAAA1
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 13.05.2014 в 15:44, YuraAAA1 сказал:

http://postimg.org/image/rlmad4lp3/

 

P.S. Не знаю как прикрепить изображение прямо на форум :(

 

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

 

Нужно чтоб работали оба варианта, и уроном и ключом.

Но все равно спасибо, буду крутить как-то код)

Изменено пользователем Nice

Поделиться сообщением


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

даш сайт серва? покажу тебе прикол, отобьет желание открывать что то на ц4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 13.05.2014 в 23:26, Nice сказал:

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

 

Нужно чтоб работали оба варианта, и уроном и ключом.

Но все равно спасибо, буду крутить как-то код)

 

Нет нет нет. Смотрите. Мы с Вами изменили только лишь onAttack метод. Это метод обратного вызова. Грубо говоря, он срабатывает тогда и только тогда, когда Вы лупите сундук. Что же происходит по коду:

 

Рандомно считаем, box это (с точками) или же обычный chest. Если второе, то нам всё равно, код остаётся прежний (лупим игрока или же его пета, смотря кто ударил).

А вот если это box, то начинается магия.

Мы считаем шанс открытия и открываем в зависимости от шанса. И в любом случае сундук пропадёт.

 

И я уже вижу свою ошибку. Ещё нужно damage проверять, так как сейчас он будет открываться даже при демейдже 1. Ну попробуйте так, если получится, докрутим с Вами расчёт урона.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 14.05.2014 в 06:54, YuraAAA1 сказал:

Нет нет нет. Смотрите. Мы с Вами изменили только лишь onAttack метод. Это метод обратного вызова. Грубо говоря, он срабатывает тогда и только тогда, когда Вы лупите сундук. Что же происходит по коду:

 

Рандомно считаем, box это (с точками) или же обычный chest. Если второе, то нам всё равно, код остаётся прежний (лупим игрока или же его пета, смотря кто ударил).

А вот если это box, то начинается магия.

Мы считаем шанс открытия и открываем в зависимости от шанса. И в любом случае сундук пропадёт.

 

И я уже вижу свою ошибку. Ещё нужно damage проверять, так как сейчас он будет открываться даже при демейдже 1. Ну попробуйте так, если получится, докрутим с Вами расчёт урона.

 

Дело в следующем.. Изменив таким образом AI сундуков, они все стали Chest. Не 1 сундук не открывается ключом). + сундуки перестали передвигаться, стоят на месте и дергаются.

И кстати GS начал бить ошибку..

Failed to import ai : chests

Изменено пользователем Nice

Поделиться сообщением


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

Упс..! Это я тупица :D в строках кода, поставил табуляцию вместо пробелов.. А так вроде бы работает :) тестирую

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 13.05.2014 в 15:29, YuraAAA1 сказал:

Не сильно в питоне разбираюсь, но да ладно.

 

Вместо onDecay() в методе onAttack пишем

 

keyLevelNeeded = int(npc.getLevel()/10)
levelDiff = keyLevelNeeded - 9 #9 - должен быть уровень скилла видимо. Экспериментируйте
if levelDiff < 0 :
levelDiff = levelDiff * (-1)
chance = BASE_CHANCE - levelDiff * LEVEL_DECREASE

# success, pretend-death with rewards: npc.reduceCurrentHp(99999999, player)
if Rnd.get(100) < chance :
npc.setMustRewardExpSp(False)
npc.setSpecialDrop();
npc.reduceCurrentHp(99999999, player)
return

npc.onDecay()

 

Помните, что python чувствителен к отступам, по-этому Вы должны внимательно всё расставить

 

Что-то все равно пропадают, нанес 20к маг. дамага, а он все равно пропал не открывшись. :(

Изменено пользователем Nice

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...