PaiN 63 Опубликовано 13 сентября, 2014 Название: Скрипт выдачи ПА новичкам Добавил: PaiN Добавлен: 13 Sep 2014 Категория: Серверные дополнения Автор: PaiN Хроники: Interlude Скрипт написан для сборки PW-Soft. Суть работы скрипта: при диалоге с определенным нпц, персонаж проходит проверку по hwid/account/ip - если ни по одному из параметров персонаж не получал бонус(премиум+указанные предметы), то он его получит. Время премиума указывается в часах. Нажмите здесь, чтобы скачать файл 20 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Detect 618 Опубликовано 13 сентября, 2014 Молодец, держи плюс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 13 сентября, 2014 Красаучик,благодарю за скрипт! Будем тестить.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 14 сентября, 2014 Русские символы не видит. То есть,к примеру должно было бы показать так "Ваш уровень слишком высок!" , а показывает только "!". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 14 сентября, 2014 Русские символы не видит. То есть,к примеру должно было бы показать так "Ваш уровень слишком высок!" , а показывает только "!". кодировку смените Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 14 сентября, 2014 кодировку смените Подскажите как ее сменит? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 14 сентября, 2014 Подскажите как ее сменит? открываешь нотпад ++вырезаешь весь текст меняешь кодировку в соответствующем пункте меню вставляешь текст сохраняешь профит Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 14 сентября, 2014 открываешь нотпад ++ вырезаешь весь текст меняешь кодировку в соответствующем пункте меню вставляешь текст сохраняешь профит А какую кодировку ставить? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
whаtever 203 Опубликовано 14 сентября, 2014 А какую кодировку ставить? А какая кодировка у нас поддерживает русские символы? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 14 сентября, 2014 А какая кодировка у нас поддерживает русские символы? Ставлю UTF8 - Сохраняю. Далее в ГС идет ошибка. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 14 сентября, 2014 А какую кодировку ставить? без понятия Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 14 сентября, 2014 utf-8 без (BOM) должно помочь. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 16 сентября, 2014 (изменено) utf-8 без (BOM) должно помочь. Это помогло.. Но толку то,если в Pwsoft косяк с ПА. ПА действует пока рестарт или релог не сделаешь.. Замечал и раньше,что допустим берешь ПА на сутки заходишь за час до того как он должен кончится, и через час он не кончается пока игрок в онлайне. Изменено 16 сентября, 2014 пользователем joejo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KaRmiN 1265 Опубликовано 17 ноября, 2014 Как его поставить?.. что-то немогу понять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vkontakte 21 Опубликовано 17 ноября, 2014 Добрые люди подскажите как реализовать под сборку lucera? Импорты менял ошибку бёт! что делать? package teleports; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.TimeUnit; import ru.catssoftware.L2DatabaseFactory; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.quest.State; import ru.catssoftware.gameserver.model.quest.jython.QuestJython; import ru.catssoftware.mysql.Close; import ru.catssoftware.mysql.Connect; // для работы скрипта необходимо залить char_bonus.sql в бд геймсервера public class Bonus extends QuestJython { // айди нпц private static final int npcId = 50016; // максимальный уровень персонажа для получения бонуса private static final int MAX_LEVEL = 1; // на сколько часов выдавать премиум private static final int PREMIUM_HOURS = 1; // проверка по IP private static final boolean CHECK_IP = true; // предметы, которые выдаются вместе с премиумом private static final int[] ITEMS = {57,1000,728,100}; // экипировать предметы private static final boolean EQUIP = true; public Bonus(int questId, String name, String descr) { super(questId, name, descr, 1); State st = new State("Start", this); this.setInitialState(st); this.addStartNpc(npcId); this.addTalkId(npcId); } public String onTalk(L2NpcInstance npc, L2PcInstance talker) { if(talker.getLevel() > MAX_LEVEL) return "Ваш уровень слишком высок!"; String htmltext = "Вы уже получили свой бонус!"; Connect con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = L2DatabaseFactory.get(); statement = con.prepareStatement("SELECT id FROM char_bonus WHERE id=? OR account=? OR hwid=?"+(CHECK_IP?" OR ip=?":"")); statement.setInt(1, talker.getObjectId()); statement.setString(2, talker.getAccountName()); statement.setString(3, talker.getHWID()); if(CHECK_IP) statement.setString(4, talker.getIP()); rset = statement.executeQuery(); if(!rset.next()) { Close.S(statement); statement = con.prepareStatement("REPLACE INTO char_bonus (id, account, ip, hwid) values(?,?,?,?)"); statement.setInt(1, talker.getObjectId()); statement.setString(2, talker.getAccountName()); statement.setString(3, talker.getIP()); statement.setString(4, talker.getHWID()); statement.execute(); storePremium(talker, PREMIUM_HOURS); if(ITEMS.length > 1) { for(int i = 0; i < ITEMS.length; i += 2) { L2ItemInstance item = talker.getInventory().addItem("Bonus", ITEMS, ITEMS[i+1], talker, null); if(EQUIP && item.isEquipable()) talker.getInventory().equipItemAndRecord(item); } talker.sendItems(false); } htmltext = "Вы успешно получили бонус!"; } } catch(SQLException e) { e.printStackTrace(); } finally { Close.CSR(con, statement, rset); } return htmltext; } private static void storePremium(L2PcInstance player, int param) { long expire = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(param); Connect con = null; PreparedStatement st = null; try { con = L2DatabaseFactory.get(); st = con.prepareStatement("UPDATE `characters` SET `premium`=? WHERE `obj_Id`=?"); st.setLong(1, expire); st.setInt(2, player.getObjectId()); st.execute(); } catch(SQLException e) { e.printStackTrace(); } finally { Close.CS(con, st); } player.setPremium(true); player.broadcastUserInfo(); String date = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(new Date(expire)); player.sendCritMessage(new StringBuilder().append("\u0421\u0442\u0430\u0442\u0443\u0441 \u041F\u0440\u0435\u043C\u0438\u0443\u043C: \u0434\u043E ").append(date).toString()); } public static void main(String... arguments) { new Bonus(-1,"Bonus","Bonus"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 11 декабря, 2014 Для меня остается загадкой,таблица char_bonus пустая. Все делаю правильно (раньше все работало),подхожу к нпц нажимаю,мне пишет,что уже брал ПА. Как,если таблица с проверкой ip/hwid пустая?! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KaRmiN 1265 Опубликовано 11 декабря, 2014 Для меня остается загадкой,таблица char_bonus пустая. Все делаю правильно (раньше все работало),подхожу к нпц нажимаю,мне пишет,что уже брал ПА. Как,если таблица с проверкой ip/hwid пустая?! Удали таблицу char_bonus Создай новый sql файл Вставь туда: CREATE TABLE IF NOT EXISTS `char_bonus` ( `id` INT NOT NULL DEFAULT 0, `account` VARCHAR(45) NOT NULL DEFAULT '', `ip` VARCHAR(15) NOT NULL DEFAULT '', `hwid` VARCHAR(49) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE = MYISAM; И залей! Я так решил ету проблему! С тебя Огромный + 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 12 декабря, 2014 Удали таблицу char_bonus Создай новый sql файл Вставь туда: CREATE TABLE IF NOT EXISTS `char_bonus` ( `id` INT NOT NULL DEFAULT 0, `account` VARCHAR(45) NOT NULL DEFAULT '', `ip` VARCHAR(15) NOT NULL DEFAULT '', `hwid` VARCHAR(49) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE = MYISAM; И залей! Я так решил ету проблему! С тебя Огромный + Не помогло! То же самое, "Вы уже получали премиум!". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KaRmiN 1265 Опубликовано 12 декабря, 2014 Не помогло! То же самое, "Вы уже получали премиум!". Гс смотри 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 12 декабря, 2014 (изменено) Гс смотри Все,решил! Спасибо Андрюха за совет! Только толку то,в скрипте стоит выдача на 1 час, а оно выдает на 3 часа. В 15:09 взял,в чате пишет,что он закончится в 18:09! Весело.. Изменено 12 декабря, 2014 пользователем joejo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta2 21 Опубликовано 12 декабря, 2014 кто может дат бекпас на html что то не хрена не пойму как он работает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
aquamarine 248 Опубликовано 13 декабря, 2014 в html что писать то? подскажите? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta2 21 Опубликовано 14 декабря, 2014 что не кто не поможет ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
aquamarine 248 Опубликовано 14 декабря, 2014 (изменено) времена поменялись, надо писать заплачу за помощь, тогда помогут... Изменено 14 декабря, 2014 пользователем aquamarine Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 14 декабря, 2014 времена поменялись, надо писать заплачу за помощь, тогда помогут... Логику еще никто не отменял! Остальные скрипты,к примеру выдача хиро,как ты подключал? bypass -h npc_%objectId%_Quest Bonus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты