Спавн НПЦ - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 01.04.2012, 20:48   #1
Аватар для Evesis
Пользователь

Автор темы (Топик Стартер) Спавн НПЦ

Хелп. Сборка РТ 1.4.2
Делаю спавн нпц гмом. После рестарта нпц пропадает.
Помогите где копать. Исходы есть. С меня ++++

И даю себе хиро после релога пропадает как исправить.
Evesis вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 01.04.2012, 22:48   #2
Аватар для Double
Эксперт

По умолчанию Re: Спавн НПЦ

Цитата:
Сообщение от Evesis Посмотреть сообщение
Хелп. Сборка РТ 1.4.2
Делаю спавн нпц гмом. После рестарта нпц пропадает.
Помогите где копать. Исходы есть. С меня ++++

И даю себе хиро после релога пропадает как исправить.
Хиро - смотреть на то чтобы прописывалось в бд
Когда нпц спавн ошибки возникают в гс?
__________________
Nope
Double вне форума Отправить сообщение для Double с помощью ICQ Отправить сообщение для Double с помощью Skype™ Ответить с цитированием
Непрочитано 02.04.2012, 11:24   #3
Аватар для Evesis
Пользователь

Автор темы (Топик Стартер) Re: Спавн НПЦ

Да возникают вот такие
Цитата:
SpawnTable: Could not store spawn in the DB:com.mysql.jdbc.exceptions.jdbc4.MySQ
LIntegrityConstraintViolationException: Duplicate entry '59616' for key 'PRIMARY
'
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityCons traintViolationException: Dupl
icate entry '59616' for key 'PRIMARY'
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 9)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:1041)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3562)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3494)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:19 60)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java :2114)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionIm pl.java:2696)
at com.mysql.jdbc.PreparedStatement.executeInternal(P reparedStatement.ja
va:2105)
at com.mysql.jdbc.PreparedStatement.execute(PreparedS tatement.java:1367)

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement .execute(NewProxyPr
eparedStatement.java:989)
at net.sf.l2j.database.FiltredPreparedStatement.execu te(FiltredPreparedS
tatement.java:38)
at net.sf.l2j.gameserver.datatables.SpawnTable.addNew Spawn(SpawnTable.ja
va:279)
at net.sf.l2j.gameserver.handler.admincommandhandlers .AdminSpawn.spawnMo
nster(AdminSpawn.java:259)
at net.sf.l2j.gameserver.handler.admincommandhandlers .AdminSpawn.useAdmi
nCommand(AdminSpawn.java:170)
at net.sf.l2j.gameserver.clientpackets.RequestBypassT oServer.runImpl(Req
uestBypassToServer.java:98)
at net.sf.l2j.gameserver.clientpackets.L2GameClientPa cket.run(L2GameClie
ntPacket.java:70)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
Evesis вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.04.2012, 11:29   #4
Аватар для Yorie

По умолчанию Re: Спавн НПЦ

Похоже, кто-то накосячил с ключами в таблице спауна, либо криво сделали сам запрос на запись в эту таблицу. Можете показать структуру таблицы spawnlist'а?
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Непрочитано 02.04.2012, 13:08   #5
Аватар для Evesis
Пользователь

Автор темы (Топик Стартер) Re: Спавн НПЦ

Могу вот смотри
Цитата:
DROP TABLE IF EXISTS `spawnlist`;
CREATE TABLE `spawnlist` (
`id` int(11) NOT NULL auto_increment,
`location` varchar(40) NOT NULL default '',
`count` int(9) NOT NULL default '0',
`npc_templateid` int(9) NOT NULL default '0',
`locx` int(9) NOT NULL default '0',
`locy` int(9) NOT NULL default '0',
`locz` int(9) NOT NULL default '0',
`randomx` int(9) NOT NULL default '0',
`randomy` int(9) NOT NULL default '0',
`heading` int(9) NOT NULL default '0',
`respawn_delay` int(9) NOT NULL default '0',
`loc_id` int(9) NOT NULL default '0',
`periodOfDay` decimal(2,0) default '0',
PRIMARY KEY (id),
KEY `key_npc_templateid` (`npc_templateid`)
) ENGINE=MyISAM;

--
-- Dumping data for table `spawnlist`
--

INSERT INTO `spawnlist` VALUES
(25015,'oren07_npc1819_002',1,'31034',-40307,34037,-3595,0,0,0,60,0,0),
(25016,'oren07_npc1819_002',1,'31034',-38317,45945,-3595,0,0,0,60,0,0),
(25017,'oren07_npc1819_002',1,'31034',-58353,57473,-3694,0,0,0,60,0,0),
(25018,'oren07_npc1819_gd02',1,'31845',-44052,35000,-3340,0,0,0,60,0,0),
(25019,'oren07_npc1819_gd02',1,'31850',-43951,35178,-3340,0,0,0,60,0,0),
(25020,'oren07_npc1819_gd02',1,'31845',-41725,38403,-3075,0,0,38730,60,0,0),
(25021,'oren07_npc1819_gd02',1,'31850',-34807,39420,-3350,0,0,7107,60,0,0),
(25022,'oren07_npc1819_gd02',1,'31845',-43388,42026,-3264,0,0,19418,60,0,0),
(25023,'oren07_npc1819_gd02',1,'31850',-39923,43789,-3295,0,0,61709,60,0,0),
(25024,'oren07_npc1819_gd02',1,'31845',-39160,56340,-3672,0,0,0,60,0,0),
(25025,'oren07_npc1819_gd02',1,'31845',-39242,55145,-3311,0,0,36558,60,0,0),
(25026,'oren07_npc1819_gd02',1,'31850',-38858,56162,-3672,0,0,0,60,0,0),
(25027,'oren07_npc1819_gd02',1,'31845',-37432,50772,-3500,0,0,0,60,0,0),
(25028,'oren07_npc1819_gd02',1,'31850',-37130,50950,-3500,0,0,0,60,0,0),
(25029,'oren07_npc1819_gd02',1,'31845',-58612,59008,-3480,0,0,0,60,0,0),
(25030,'oren07_npc1819_gd02',1,'31850',-58209,58652,-3480,0,0,0,60,0,0),
(25031,'oren07_npc1819_gd02',1,'31845',-40929,66496,-3363,0,0,29071,60,0,0),
(25032,'oren07_npc1819_gd02',1,'31845',-38541,65704,-3684,0,0,0,60,0,0),
(25033,'oren07_npc1819_gd02',1,'31845',-59648,65796,-3420,0,0,0,60,0,0),
(25034,'oren07_npc1819_gd02',1,'31845',-59547,65974,-3420,0,0,0,60,0,0),
(25035,'oren07_npc1819_gd02',1,'31845',-58002,71183,-3124,0,0,29186,60,0,0),
(25036,'oren07_npc1819_gd02',1,'31845',-56778,66914,-3332,0,0,47034,60,0,0),
(25037,'oren07_npc1819_gd02',1,'31850',-53924,71961,-3249,0,0,52812,60,0,0),
(25038,'oren07_npc1819_gd02',1,'31845',-49978,71901,-3314,0,0,51363,60,0,0),
(25039,'oren07_npc1819_gd02',1,'31845',-51286,73331,-3275,0,0,58368,60,0,0),
(25040,'oren07_npc1819_gd02',1,'31850',-49546,75858,-3407,0,0,9201,60,0,0),
(25041,'oren07_npc1819_gd02',1,'31845',-58487,75286,-3185,0,0,33475,60,0,0),
(25042,'oren07_npc1819_gd02',1,'31845',-62069,74012,-3269,0,0,41721,60,0,0),
(25043,'oren07_npc1819_gd02',1,'31850',-56038,77026,-3120,0,0,52033,60,0,0),
(25044,'oren07_npc1819_gd02',1,'31845',-56296,80356,-3696,0,0,0,60,0,0),
(25045,'oren07_npc1819_gd02',1,'31845',-52503,84616,-3574,0,0,10079,60,0,0),
(25046,'oren07_npc1819_gd02',1,'31850',-56195,80534,-3696,0,0,0,60,0,0),
...
Evesis вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.04.2012, 13:24   #6
Аватар для Yorie

По умолчанию Re: Спавн НПЦ

Теперь надо посмотреть вот сюда: net.sf.l2j.gameserver.datatables.SpawnTable.addNew Spawn(SpawnTable.java:279) и найти запрос, который выполняется при спауне. Либо это тупит IdFactory, либо кто-то криво написал запрос. Возможно, что в запросе пытаюсь напрмую проставить значение в поле `id` (оно же является первичным ключом), что совершенно не нужно.
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Непрочитано 02.04.2012, 13:33   #7
Аватар для Evesis
Пользователь

Автор темы (Топик Стартер) Re: Спавн НПЦ

..............................
Цитата:
279 строка try
{
con = L2DatabaseFactory.getInstance().getConnection();
if (spawn.isCustom())
{
statement = con.prepareStatement("INSERT INTO `custom_spawnlist` (id,count,npc_templateid,locx,locy,locz,heading,re spawn_delay,loc_id) values(?,?,?,?,?,?,?,?,?)");
}
else
{
statement = con.prepareStatement("INSERT INTO `spawnlist` (id,count,npc_templateid,locx,locy,locz,heading,re spawn_delay,loc_id) values(?,?,?,?,?,?,?,?,?)");
}
statement.setInt(1, spawn.getId());
statement.setInt(2, spawn.getAmount());
statement.setInt(3, spawn.getNpcId());
statement.setInt(4, spawn.getLocx());
statement.setInt(5, spawn.getLocy());
statement.setInt(6, spawn.getLocz());
statement.setInt(7, spawn.getHeading());
statement.setInt(8, spawn.getRespawnDelay() / 1000);
statement.setInt(9, spawn.getLocation());
statement.execute();
statement.close();
}
Evesis вне форума Ответить с цитированием
Непрочитано 02.04.2012, 13:36   #8
Аватар для linliss
Герой

По умолчанию Re: Спавн НПЦ

найдите на свне лыжи коммит, в котором удалены ключи в ядре и spawnlist.sql и поставьте себе, ибо ключи в спаунлисте это конечно верх маразма
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.04.2012, 15:56   #9
Аватар для Yorie

По умолчанию Re: Спавн НПЦ

Цитата:
Сообщение от Evesis Посмотреть сообщение
..............................
ID спауна генерится и генерится криво. Решение на скорую руку:
1. Вместо
Цитата:
(id,count,npc_templateid,locx,locy,locz,heading,re spawn_delay,loc_id) values(?,?,?,?,?,?,?,?,?)
->
Цитата:
(count,npc_templateid,locx,locy,locz,heading,re spawn_delay,loc_id) values(?,?,?,?,?,?,?,?)
в обоих местах;

2. Удаляете строку
Цитата:
statement.setInt(1, spawn.getId());
3. Тут
Цитата:
statement.setInt(2, spawn.getAmount());
statement.setInt(3, spawn.getNpcId());
statement.setInt(4, spawn.getLocx());
statement.setInt(5, spawn.getLocy());
statement.setInt(6, spawn.getLocz());
statement.setInt(7, spawn.getHeading());
statement.setInt(8, spawn.getRespawnDelay() / 1000);
statement.setInt(9, spawn.getLocation());
Номера от 1 до 8.


Заработает. Но вообще неизвестно, как это себя поведет, потому что на выходе получите расхождение в идентификаторах, которые хранятся в памяти сервера и которые хранятся в БД.
Не легче ли обновить сборку?
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.04.2012, 16:03   #10
Аватар для linliss
Герой

По умолчанию Re: Спавн НПЦ

Цитата:
Сообщение от Yorie Посмотреть сообщение
ID спауна генерится и генерится криво. Решение на скорую руку:
1. Вместо

->

в обоих местах;

2. Удаляете строку


3. Тут

Номера от 1 до 8.


Заработает. Но вообще неизвестно, как это себя поведет, потому что на выходе получите расхождение в идентификаторах, которые хранятся в памяти сервера и которые хранятся в БД.
Не легче ли обновить сборку?
этого мало, вот полное решение проблемы

http://trac.l2jserver.com/changeset/4440
linliss вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спавн, КРИТ algedy Lineage II 2 30.12.2011 17:43
спавн фрея cxcxcx Lineage II 5 22.05.2011 18:05
Спавн РБ lordys1 Lineage II 1 23.12.2010 08:29
Как удалить спавн? operatorr Lineage II 1 06.04.2009 16:54
Спавн РБ HukuTa Работа со скриптами 4 22.07.2008 14:34


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 17:22. Часовой пояс GMT +3.

Вверх