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

Help Help Help Поьщгите С Настройкой Сундуков Treasure Chest / Treasure Box

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

Хочу сделать чтоб было как на сервере на котором сам когда-то играл, перепробовал кучу всяких патчей на сундуки и нифига не работает!

 

Очень удобно играть когда видно какой перед тобой сундук. Как сделать, чтобы сундуки Chest и Box были с разными ID и по разному назывались. Возьму для примера сундуки 21 левела сразу возле Диона, что нужно сделать, чтобы обычноый сундук с которого можно спойлить и дропать был (ID 21801 и назывался Treasure Chest), а когда его убиваешь вместо него появлялся сундук с которого только открыв ключем выпадали заточки или адена, был (ID 18265 и назывался Treasure Box) и соответственно у сундуков других лвлов по подобию ?????

 

С именем и титулом сундука понятно - редактируется или на сервере в таблице НПС или в файле npcname-e.dat в клиенте.

 

 

Меня больше интересует как сделать, чтобы у сундуков был разный ID в зависимости от типа сундука. Где-то вроди читал, что это редактируется в файлах chests.py и __init__.py

ю

(путь gameserver\data\jscript\ai\group_template\chests.py) но не знаю как их редактировать.

 

Если кто шарит где зарыты и как правильно настраиваются сундуки просьба отписаться поподробнее.

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


Ссылка на сообщение
Поделиться на другие сайты
Хочу сделать чтоб было как на сервере на котором сам когда-то играл, перепробовал кучу всяких патчей на сундуки и нифига не работает!

 

Очень удобно играть когда видно какой перед тобой сундук. Как сделать, чтобы сундуки Chest и Box были с разными ID и по разному назывались. Возьму для примера сундуки 21 левела сразу возле Диона, что нужно сделать, чтобы обычноый сундук с которого можно спойлить и дропать был (ID 21801 и назывался Treasure Chest), а когда его убиваешь вместо него появлялся сундук с которого только открыв ключем выпадали заточки или адена, был (ID 18265 и назывался Treasure Box) и соответственно у сундуков других лвлов по подобию ?????

 

С именем и титулом сундука понятно - редактируется или на сервере в таблице НПС или в файле npcname-e.dat в клиенте.

 

 

Меня больше интересует как сделать, чтобы у сундуков был разный ID в зависимости от типа сундука. Где-то вроди читал, что это редактируется в файлах chests.py и __init__.py

ю

(путь gameserver\data\jscript\ai\group_template\chests.py) но не знаю как их редактировать.

 

Если кто шарит где зарыты и как правильно настраиваются сундуки просьба отписаться поподробнее.

 

только ядро копать или покупать птс

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


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

И что во всех ява сборках сундуки неизвестные и никто ни пытается их настроить?

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


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

Вот нашел на другом форуме якобы нужно вместо файла по адресу "gameserver\data\jscript\ai\group_template\" вместо файла chests.py нужно создать 2 файла chests.py и box.py и добавить их в __init__.py

 

так выглядит оригинальный chests.py:

 

Скрытый текст
# # # # # # # # # # #

# Chest AI implementation.

# Written by Fulminus

# # # # # # # # # # #

import sys

from net.sf.l2j.gameserver.ai import CtrlIntention

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

from net.sf.l2j.util import Rnd;

 

SKILL_DELUXE_KEY = 2229

 

#Base chance for BOX to be opened

BASE_CHANCE = 100

 

# Percent to decrease base chance when grade of DELUXE key not match

LEVEL_DECREASE = 40

 

# Chance for a chest to actually be a BOX (as opposed to being a mimic).

IS_BOX = 40

 

class chests(JQuest) :

 

# init function. Add in here variables that you'd like to be inherited by subclasses (if any)

def __init__(self,id,name,descr):

# firstly, don't forget to call the parent constructor to prepare the event triggering

# mechanisms etc.

JQuest.__init__(self,id,name,descr)

 

self.chests = [18265,18266,18267,18268,18269,18270,18271,18272,18273,18274, \

18275,18276,18277,18278,18279,18280,18281,18282,18283,18284, \

18285,18286,18287,18288,18289,18290,18291,18292,18293,18294, \

18295,18296,18297,18298,21671,21694,21717,21740,21763,21786, \

21801,21802,21803,21804,21805,21806,21807,21808,21809,21810, \

21811,21812,21813,21814,21815,21816,21817,21818,21819,21820, \

21821,21822]

 

for i in self.chests :

self.addSkillUseId(i)

self.addAttackId(i)

 

def onSkillUse (self,npc,player,skill):

npcId = npc.getNpcId()

skillId = skill.getId()

skillLevel= skill.getLevel()

 

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

if npcId not in self.chests : return

 

# if this has already been interacted, no further ai decisions are needed

# if it's the first interaction, check if this is a box or mimic

if not npc.isInteracted() :

npc.setInteracted()

if Rnd.get(100) < IS_BOX :

# if it's a box, either it will be successfully openned by a proper key, or instantly disappear

if skillId == SKILL_DELUXE_KEY :

# check the chance to open the box

keyLevelNeeded = int(npc.getLevel()/10)

levelDiff = keyLevelNeeded - skillLevel

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

# used a skill other than chest-key, or used a chest-key but failed to open: disappear with no rewards

npc.onDecay()

else :

attacker = player

if npc.getAttackByList().contains(player.getPet()):

attacker = player.getPet()

npc.setRunning()

npc.addDamageHate(attacker,0,999)

npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, attacker)

return

 

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 this was a mimic, set the target, start the skills and become agro

if not npc.isInteracted() :

npc.setInteracted()

if Rnd.get(100) < IS_BOX :

npc.onDecay()

else : # if this weren't a box, upon interaction start the mimic behaviors...

# todo: perhaps a self-buff (skill id 4245) with random chance goes here?

attacker = player

if isPet:

attacker = player.getPet()

npc.setRunning()

npc.addDamageHate(attacker,0,(damage*100)/(npc.getLevel()+7))

npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, attacker)

return

 

# now call the constructor (starts up the ai)

QUEST = chests(-1,"chests","ai")

 

 

И вместо него создать такие файлы с разделением сундуков

 

chests.py:

 

 

 

import sys

from net.sf.l2j.gameserver.ai import CtrlIntention

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

 

 

class chests(JQuest) :

 

def __init__(self,id,name,descr):

JQuest.__init__(self,id,name,descr)

 

self.chests = [18265,18266,18267,18268,18269,18270,18271,18272,18273,18274, \

18275,18276,18277,18278,18279,18280,18281,18282,18283,18284, \

18285,18286,18287,18288,18289,18290,18291,18292,18293,18294, \

18295,18296,18297,18298]

 

for i in self.chests :

self.addSkillUseId(i)

self.addAttackId(i)

 

def onSkillUse (self,npc,player,skill):

npcId = npc.getNpcId()

skillId = skill.getId()

skillLevel= skill.getLevel()

 

 

 

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

#Проверка сундука на Id

if npcId not in self.chests : return

 

 

attacker = player

 

if isPet:

attacker = player.getPet()

npc.setRunning()

npc.addDamageHate(attacker,0,damage/(npc.getLevel()+7))

npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_ATTACK, attacker)

else :

attacker = player

if isPet:

attacker = player.getPet()

npc.setRunning()

npc.addDamageHate(attacker,0,999)

npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_ATTACK, attacker)

return

 

QUEST = chests(-1,"chests","ai")

 

 

 

и файл box.py:

 

 

import sys

from net.sf.l2j.gameserver.ai import CtrlIntention

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

from net.sf.l2j.util import Rnd;

 

SKILL_DELUXE_KEY = 2229

 

#Base chance for BOX to be opened

BASE_CHANCE = 100

 

# Percent to decrease base chance when grade of DELUXE key not match

LEVEL_DECREASE = 40

 

 

class Box(JQuest) :

 

def __init__(self,id,name,descr):

JQuest.__init__(self,id,name,descr)

 

self.chests = [21671,21694,21717,21740,21763,21786,21801,21802,21803,21804, \

21805,21806,21807,21808,21809,21810,21811,21812,21813,21814, \

21815,21816,21817,21818,21819,21820,21821,21822]

 

 

for i in self.chests :

self.addSkillUseId(i)

self.addAttackId(i)

 

def onSkillUse (self,npc,player,skill):

npcId = npc.getNpcId()

skillId = skill.getId()

skillLevel= skill.getLevel()

 

#Проверка на Id

if npcId not in self.chests : return

 

if not npc.isInteracted() :

npc.setInteracted()

 

###

if skillId == SKILL_DELUXE_KEY :

 

keyLevelNeeded = int(npc.getLevel()/10)

levelDiff = keyLevelNeeded - skillLevel

if levelDiff < 0 :

levelDiff = levelDiff * (-1)

chance = BASE_CHANCE - levelDiff * LEVEL_DECREASE

 

if Rnd.get(100) < chance :

npc.setMustRewardExpSp(False)

npc.setSpecialDrop()

npc.reduceCurrentHp(99999999, player)

return

 

npc.onDecay()

###

 

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

 

npcId = npc.getNpcId()

if npcId not in self.chests : return

 

if not npc.isInteracted() :

npc.setInteracted()

npc.onDecay()

 

QUEST = Box(-1,"box","ai")

 

ПОМОГИТЕ ДОВЕСТИ ДО УМА.... ЧТО НЕТ НИ ОДНОГО ШАРЯЩЕГО ФОРУМЧАНИНА....????

ОЧЕНЬ ПРОШУ!!!!!! HELP

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


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

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

название сборки говори может к ней вполне реально diff прикрутить)

З.Ы. а сервак не фронт х100 случаем называется?)

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


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

Фронт.нормальный серв вот только наверное сделать такие же сундучки невыйдет,у них вроде птс

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


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

))я два годика играл на фронте,очень мне он понравился,но вот сундучки настроить как у них немагу,ядро перерыл-лишь только одни догадки как ети ящики сделать нормальными))и видать неодин я такой

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


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

Интересно а какая же тогда на фронте сборка??

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


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

А у кого есть какая сборка сервера с нормальными сундуками тоесть чтоб в зависимости от типа сундука был и ID сундука

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


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

качай исходы и делай))))) или пиши тем кто шарит если сам сделать не можеш думаю рублей за 150 тебе с сундуками помогут)))

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


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

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

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


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

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

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

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