Aversia 3 Опубликовано 19 мая, 2017 (изменено) Попытался переписать скрипт с pwsoft под lucera (l2jlovely) Сам скрипт находиться по пути I:\project\server\game\data\scripts\custom\items\DonateScrolls.java Сразу скажу что в джаве новичок, но очень хотел бы разобраться как переписывать скрипты. Надеюсь тут есть люди которые могут подсказать с чего начать и как его переделать. Первое что делал это разархивировал ядро и посмотрел как идут импорты вроде они верные. Прошу помочь или подсказать как сделать плюсиками затыкаю. Лог ошибок скрипта: DonateScrolls.java [spoiler]Error on: I:\project\server\game\data\scripts\custom\items\DonateScrolls.java.error.log Line: -1 - Column: -1 compilation failed[/spoiler] Логи gameserver ===========================================-[ Events/Script/CoreScript/Engine ] [INFO 08:26:53]: Script Engine Manager: loaded 48 script(s) form corequests.jar [INFO 08:26:55]: NpcBufferSkillIdsTable: Loaded 1 buffers and 140 skills. incorrect classpath: ./extensions/* ---------- 1. ERROR in \DonateScrolls.java (at line 22) public class DonateScrolls implements IItemHandler ^^^^^^^^^^^^^ The type DonateScrolls must implement the inherited abstract method IItemHandler .useItem(L2PlayableInstance, L2ItemInstance, boolean) ---------- 2. ERROR in \DonateScrolls.java (at line 24) private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<I nteger, Integer[]>().shared("DonateScrolls.SCROLLS"); ^^^^^^ The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) ---------- 3. ERROR in \DonateScrolls.java (at line 56) if (!playable.isPlayer()) ^^^^^^^^ The method isPlayer() is undefined for the type L2PlayableInstance ---------- 4. ERROR in \DonateScrolls.java (at line 62) player.sendActionFailed(); ^^^^^^^^^^^^^^^^ The method sendActionFailed() is undefined for the type L2PcInstance ---------- 5. ERROR in \DonateScrolls.java (at line 68) player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVE NT); ^^^^^^ Static cannot be resolved ---------- 6. ERROR in \DonateScrolls.java (at line 69) player.sendActionFailed(); ^^^^^^^^^^^^^^^^ The method sendActionFailed() is undefined for the type L2PcInstance ---------- 7. ERROR in \DonateScrolls.java (at line 78) player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, da ta[3], 0)); ^^^^^^^^^^^^^^ MagicSkillUser cannot be resolved to a type ---------- 7 problems (7 errors)The type custom.items.DonateScrolls must implement the inhe rited abstract method ru.catssoftware.gameserver.handler.IItemHandler.useItem(ru .catssoftware.gameserver.model.actor.instance.L2PlayableInstance, ru.catssoftwar e.gameserver.model.L2ItemInstance, boolean) The method shared() in the type javolution.util.FastMap<java.lang.Integer,java.l ang.Integer[]> is not applicable for the arguments (java.lang.String) The method isPlayer() is undefined for the type ru.catssoftware.gameserver.model .actor.instance.L2PlayableInstance The method sendActionFailed() is undefined for the type ru.catssoftware.gameserv er.model.actor.instance.L2PcInstance Static cannot be resolved The method sendActionFailed() is undefined for the type ru.catssoftware.gameserv er.model.actor.instance.L2PcInstance MagicSkillUser cannot be resolved to a type [WARN 08:26:56]: Failed executing script: I:\projectl2drop\server l2drop\game\da ta\scripts\custom\items\DonateScrolls.java. See DonateScrolls.java.error.log for details. [INFO 08:26:56]: Spawn Events Managers Вот сам код что смог "наляпать" package custom.items; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledFuture; import ru.catssoftware.gameserver.datatables.SkillTable; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance; import ru.catssoftware.gameserver.network.serverpackets.MagicSkillUse; import ru.catssoftware.gameserver.handler.ItemHandler; import ru.catssoftware.gameserver.handler.IItemHandler; import javolution.util.FastList; import javolution.util.FastMap; public class DonateScrolls implements IItemHandler { private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS"); private static int[] ITEM_IDS = null; public DonateScrolls() { /**шаблон **SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ SCROLLS.put(9843, new Integer[] { 9959, 1, 2036, 1, 1 }); SCROLLS.put(4356, new Integer[] { 805, 1, 2036, 1, 1 }); SCROLLS.put(4355, new Integer[] { 806, 1, 2036, 1, 1 }); SCROLLS.put(4357, new Integer[] { 807, 1, 2036, 1, 1 }); SCROLLS.put(9996, new Integer[] { 819, 1, 2036, 1, 1 }); SCROLLS.put(9997, new Integer[] { 820, 1, 2036, 1, 1 }); SCROLLS.put(9998, new Integer[] { 821, 1, 2036, 1, 1 }); SCROLLS.put(9999, new Integer[] { 822, 1, 2036, 1, 1 }); SCROLLS.put(4361, new Integer[] { 835, 1, 2031, 1, 0 }); // Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[SCROLLS.size()]); ITEM_IDS = toIntArray(tmp_ids); tmp_ids = null; ItemHandler.getInstance().registerItemHandler(this); } public static void main (String... arguments ) { new DonateScrolls(); } public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!playable.playerId()) return; L2PcInstance player = (L2PcInstance) playable; if (player.isAllSkillsDisabled()) { player.sendActionFailed(); return; } if (player.isInOlympiadMode()) { player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); player.sendActionFailed(); return; } Integer[] data = SCROLLS.get(item.getItemId()); if(data != null) { player.stopSkillEffects(data[0]); SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player); player.broadcastPacket(new MagicSkillUse(player, player, data[2], 1, data[3], 0)); if (data[4] == 1) player.destroyItem("Consume", item.getObjectId(), 1, null, false); } } private int[] toIntArray(Integer[] arr) { int[] ret = new int[arr.length]; int i = 0; for (Integer e : arr) ret[i++] = e.intValue(); return ret; } public int[] getItemIds() { return ITEM_IDS; } } огромное спасибо отзывчивым джава кодерам Изменено 19 мая, 2017 пользователем Aversia Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 (изменено) сказано же в ошибках что методов не хватает в ядре. скрипт не может определить методы в L2PcInstance это так к примеру Изменено 19 мая, 2017 пользователем Urban 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 сказано же в ошибках что методов не хватает в ядре. скрипт не может определить методы в L2PcInstance это так к примеру то есть там эти методы как то по другому называются? как понять какие методы ему нужны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 мая, 2017 то есть там эти методы как то по другому называются? как понять какие методы ему нужны Некоторых просто не хватает, а некоторые просто по другому записаны в ловели. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 Некоторых просто не хватает, а некоторые просто по другому записаны в ловели. Это уже понял а как узнать какие и где их искать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 мая, 2017 Это уже понял а как узнать какие и где их искать Самое простое открыть исходники в ide и добавить скрипт в нужную папку и он покажет где ошибки. Когда их будешь исправлять хоть будешь знать правильно или нет. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 Самое простое открыть исходники в ide и добавить скрипт в нужную папку и он покажет где ошибки. Когда их будешь исправлять хоть будешь знать правильно или нет. исходников нету есть только разорхивированое ядро Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 Самое простое открыть исходники в ide и добавить скрипт в нужную папку и он покажет где ошибки. Когда их будешь исправлять хоть будешь знать правильно или нет. вот этот софт подойдет? https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 мая, 2017 вот этот софт подойдет? https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC intellij idea, исходники от ловели последние возьми что в шаре есть разницы нету что у тебя сейчас и что в шаре. Методы одни и теже. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 (изменено) сократил до 3 ошибок Лог ГС [spoiler] ===========================================-[ Events/Script/CoreScript/Engine ] [INFO 10:03:48]: Script Engine Manager: loaded 48 script(s) form corequests.jar [INFO 10:03:52]: NpcBufferSkillIdsTable: Loaded 1 buffers and 140 skills. incorrect classpath: ./extensions/* ---------- 1. ERROR in \DonateScrolls.java (at line 23) public class DonateScrolls implements IItemHandler ^^^^^^^^^^^^^ The type DonateScrolls must implement the inherited abstract method IItemHandler .useItem(L2PlayableInstance, L2ItemInstance, boolean) ---------- 2. ERROR in \DonateScrolls.java (at line 25) private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<I nteger, Integer[]>().shared("DonateScrolls.SCROLLS"); ^^^^^^ The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) ---------- 3. ERROR in \DonateScrolls.java (at line 57) if (!playable.getActingPlayer() ^ Syntax error, insert ") Statement" to complete BlockStatements ---------- 3 problems (3 errors)Syntax error, insert ") Statement" to complete BlockStateme nts The type custom.items.DonateScrolls must implement the inherited abstract method ru.catssoftware.gameserver.handler.IItemHandler.useItem(ru.catssoftware.gameser ver.model.actor.instance.L2PlayableInstance, ru.catssoftware.gameserver.model.L2 ItemInstance, boolean) The method shared() in the type javolution.util.FastMap<java.lang.Integer,java.l ang.Integer[]> is not applicable for the arguments (java.lang.String) [WARN 10:03:55]: Failed executing script: I:\projectl2drop\server l2drop\game\da ta\scripts\custom\items\DonateScrolls.java. See DonateScrolls.java.error.log for details. [INFO 10:03:55]: Spawn Events Managers сам чудо скрипт [spoiler] package custom.items; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledFuture; import ru.catssoftware.gameserver.datatables.SkillTable; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance; import ru.catssoftware.gameserver.network.serverpackets.MagicSkillUse; import ru.catssoftware.gameserver.handler.ItemHandler; import ru.catssoftware.gameserver.handler.IItemHandler; import javolution.util.FastList; import javolution.util.FastMap; public class DonateScrolls implements IItemHandler { private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS"); private static int[] ITEM_IDS = null; public DonateScrolls() { /**?????? **SCROLLS.put(????_??, new Integer[] { ??_?????, ???????_?????, ??_??????_????????, ?????????????????_????????(??.)), ??????_??????(1 ??, 0 ???)) }); **/ SCROLLS.put(9843, new Integer[] { 9959, 1, 2036, 1, 1 }); SCROLLS.put(4356, new Integer[] { 805, 1, 2036, 1, 1 }); SCROLLS.put(4355, new Integer[] { 806, 1, 2036, 1, 1 }); SCROLLS.put(4357, new Integer[] { 807, 1, 2036, 1, 1 }); SCROLLS.put(9996, new Integer[] { 819, 1, 2036, 1, 1 }); SCROLLS.put(9997, new Integer[] { 820, 1, 2036, 1, 1 }); SCROLLS.put(9998, new Integer[] { 821, 1, 2036, 1, 1 }); SCROLLS.put(9999, new Integer[] { 822, 1, 2036, 1, 1 }); SCROLLS.put(4361, new Integer[] { 835, 1, 2031, 1, 0 }); // Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[SCROLLS.size()]); ITEM_IDS = toIntArray(tmp_ids); tmp_ids = null; ItemHandler.getInstance().registerItemHandler(this); } public static void main (String... arguments ) { new DonateScrolls(); } public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!playable.getActingPlayer() return; L2PcInstance player = (L2PcInstance) playable; if (player.isAllSkillsDisabled()) { player.sendMessage(); return; } if (player.isInOlympiadMode()) { player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); player.sendMessage(); return; } Integer[] data = SCROLLS.get(item.getItemId()); if(data != null) { player.stopSkillEffects(data[0]); SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player); player.broadcastPacket(new MagicSkillUse(player, player, data[2], 1, data[3], 0)); if (data[4] == 1) player.destroyItem("Consume", item.getObjectId(), 1, null, false); } } private int[] toIntArray(Integer[] arr) { int[] ret = new int[arr.length]; int i = 0; for (Integer e : arr) ret[i++] = e.intValue(); return ret; } public int[] getItemIds() { return ITEM_IDS; } } Изменено 19 мая, 2017 пользователем Aversia Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 (изменено) сократил до 3 ошибок Лог ГС [spoiler] ===========================================-[ Events/Script/CoreScript/Engine ] [INFO 10:03:48]: Script Engine Manager: loaded 48 script(s) form corequests.jar [INFO 10:03:52]: NpcBufferSkillIdsTable: Loaded 1 buffers and 140 skills. incorrect classpath: ./extensions/* ---------- 1. ERROR in \DonateScrolls.java (at line 23) public class DonateScrolls implements IItemHandler ^^^^^^^^^^^^^ The type DonateScrolls must implement the inherited abstract method IItemHandler .useItem(L2PlayableInstance, L2ItemInstance, boolean) ---------- 2. ERROR in \DonateScrolls.java (at line 25) private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<I nteger, Integer[]>().shared("DonateScrolls.SCROLLS"); ^^^^^^ The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) ---------- 3. ERROR in \DonateScrolls.java (at line 57) if (!playable.getActingPlayer() ^ Syntax error, insert ") Statement" to complete BlockStatements ---------- 3 problems (3 errors)Syntax error, insert ") Statement" to complete BlockStateme nts The type custom.items.DonateScrolls must implement the inherited abstract method ru.catssoftware.gameserver.handler.IItemHandler.useItem(ru.catssoftware.gameser ver.model.actor.instance.L2PlayableInstance, ru.catssoftware.gameserver.model.L2 ItemInstance, boolean) The method shared() in the type javolution.util.FastMap<java.lang.Integer,java.l ang.Integer[]> is not applicable for the arguments (java.lang.String) [WARN 10:03:55]: Failed executing script: I:\projectl2drop\server l2drop\game\da ta\scripts\custom\items\DonateScrolls.java. See DonateScrolls.java.error.log for details. [INFO 10:03:55]: Spawn Events Managers сам чудо скрипт [spoiler] package custom.items; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledFuture; import ru.catssoftware.gameserver.datatables.SkillTable; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance; import ru.catssoftware.gameserver.network.serverpackets.MagicSkillUse; import ru.catssoftware.gameserver.handler.ItemHandler; import ru.catssoftware.gameserver.handler.IItemHandler; import javolution.util.FastList; import javolution.util.FastMap; public class DonateScrolls implements IItemHandler { private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS"); private static int[] ITEM_IDS = null; public DonateScrolls() { /**?????? **SCROLLS.put(????_??, new Integer[] { ??_?????, ???????_?????, ??_??????_????????, ?????????????????_????????(??.)), ??????_??????(1 ??, 0 ???)) }); **/ SCROLLS.put(9843, new Integer[] { 9959, 1, 2036, 1, 1 }); SCROLLS.put(4356, new Integer[] { 805, 1, 2036, 1, 1 }); SCROLLS.put(4355, new Integer[] { 806, 1, 2036, 1, 1 }); SCROLLS.put(4357, new Integer[] { 807, 1, 2036, 1, 1 }); SCROLLS.put(9996, new Integer[] { 819, 1, 2036, 1, 1 }); SCROLLS.put(9997, new Integer[] { 820, 1, 2036, 1, 1 }); SCROLLS.put(9998, new Integer[] { 821, 1, 2036, 1, 1 }); SCROLLS.put(9999, new Integer[] { 822, 1, 2036, 1, 1 }); SCROLLS.put(4361, new Integer[] { 835, 1, 2031, 1, 0 }); // Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[SCROLLS.size()]); ITEM_IDS = toIntArray(tmp_ids); tmp_ids = null; ItemHandler.getInstance().registerItemHandler(this); } public static void main (String... arguments ) { new DonateScrolls(); } public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!playable.getActingPlayer() return; L2PcInstance player = (L2PcInstance) playable; if (player.isAllSkillsDisabled()) { player.sendMessage(); return; } if (player.isInOlympiadMode()) { player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); player.sendMessage(); return; } Integer[] data = SCROLLS.get(item.getItemId()); if(data != null) { player.stopSkillEffects(data[0]); SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player); player.broadcastPacket(new MagicSkillUse(player, player, data[2], 1, data[3], 0)); if (data[4] == 1) player.destroyItem("Consume", item.getObjectId(), 1, null, false); } } private int[] toIntArray(Integer[] arr) { int[] ret = new int[arr.length]; int i = 0; for (Integer e : arr) ret[i++] = e.intValue(); return ret; } public int[] getItemIds() { return ITEM_IDS; } } The type DonateScrolls must implement the inherited abstract method IItemHandler должен унаследовать метод IItemHandler The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) не приемлем к аргументу стринг это вам к примеру всё же сказано в ошибках, сделайте декомпил ядра и смотрите что у вас как идет, и подгоняйте скрипт. ... Изменено 19 мая, 2017 пользователем Urban Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 The type DonateScrolls must implement the inherited abstract method IItemHandler должен унаследовать метод IItemHandler The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) не приемлем к аргументу стринг это вам к примеру всё же сказано в ошибках, сделайте декомпил ядра и смотрите что у вас как идет, и подгоняйте скрипт. ... короче ваше не чего не понял уже калить начинает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 (изменено) короче ваше не чего не понял уже калить начинает в шаре есть исходники как сказано выше, возьмите их и смотрите какие ошибки идут, и исправляйте их. ... http://forummaxi.ru/files/file/1528-%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA-lovely/ Изменено 19 мая, 2017 пользователем Urban Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 мая, 2017 The type DonateScrolls must implement the inherited abstract method IItemHandler должен унаследовать метод IItemHandler The method shared() in the type FastMap<Integer,Integer[]> is not applicable for the arguments (String) не приемлем к аргументу стринг это вам к примеру всё же сказано в ошибках, сделайте декомпил ядра и смотрите что у вас как идет, и подгоняйте скрипт. ... гуру, нет слов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 гуру, нет слов. не гуру, просто показал пример человеку. .. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 в шаре есть исходники как сказано выше, возьмите их и смотрите какие ошибки идут, и исправляйте их. ... http://forummaxi.ru/files/file/1528-%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA-lovely/ да скачал уже исходник зашел через idea и все полный ступор что делать дальше Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 да скачал уже исходник зашел через idea и все полный ступор что делать дальше добавляйте скрипт свой и смотрите... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aversia 3 Опубликовано 19 мая, 2017 добавляйте скрипт свой и смотрите... добавил уже есть там красные ошибки только какие методы писать за место того вообще не понятно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Urban 78 Опубликовано 19 мая, 2017 добавил уже есть там красные ошибки только какие методы писать за место того вообще не понятно вот эти ошибки вам и нужно исправить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 21 мая, 2017 да скачал уже исходник зашел через idea и все полный ступор что делать дальше Бросить это дело. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 21 мая, 2017 Бросить это дело. Ну не бросить, а уделить изучению java по часиков 7 в день на протяжении полугода Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 21 мая, 2017 Бросить это дело. тыж не бросаешь свое gve, хотя такой же Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты