Перейти к содержанию

gekasav

Пользователи
  • Публикаций

    79
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3
  • Отзывы

    0%

Весь контент gekasav

  1. package calypso; import java.util.Collections; import java.util.StringTokenizer; import java.util.concurrent.ScheduledFuture; import javolution.util.FastList; import javolution.util.FastMap; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.cache.Static; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Character; import net.sf.l2j.gameserver.model.L2Object; import net.sf.l2j.gameserver.model.L2ShortCut; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.util.Util; import scripts.commands.IVoicedCommandHandler; import scripts.commands.VoicedCommandHandler; import scripts.events.custom.CustomPlayerEventHandler; import scripts.events.custom.CustomPlayerEventList; /** * * @author CalypsoToolz * */ public class Bot implements IVoicedCommandHandler, CustomPlayerEventHandler { // слот панели и линия, счёт с нуля, т.е первая линия это 0, так же и слот // 0 0 - это F1 // в слоте должен быть скилл, либо будет бить автоатакой private static final int PANEL_LINE = 0; private static final int PANEL_SLOT = 0; // интервал между использованием скилла с панели в мс private static final long PANEL_DELAY = 100; // только для премиумов? private static boolean ONLY_PREMIUM = false; // ID итема, который должен быть в сумке, 0 для отключения private static int ITEM_REQUIRED = 0; // радиус для поиска таргета private static final int TARGET_RADIUS = 800; // интервал между сменой таргета в мс private static final long NEXT_DELAY = 1000L; private static final FastList<Integer> ACTIVE_BOTS = new FastList<Integer>(); private static final FastMap<Integer, ScheduledFuture<?>> ACTIVE_TASKS = new FastMap<Integer, ScheduledFuture<?>>(); private static final String[] CMDS = new String[] { "bot", "boton", "botoff" }; private static String ITEM_NAME; @Override public String[] getVoicedCommandList() { return CMDS; } @Override public boolean useVoicedCommand(String full, L2PcInstance player, String target) { try { StringTokenizer st = new StringTokenizer(full, " "); String cmd = st.nextToken(); if (cmd.equals("bot")) { if (st.hasMoreTokens()) { String next = st.nextToken(); if (next != null) { if (next.equals("on")) { useVoicedCommand("boton", player, "boton"); } else { useVoicedCommand("botoff", player, "botoff"); } return true; } } final NpcHtmlMessage msg = new NpcHtmlMessage(-1); StringBuilder sb = new StringBuilder(); sb.append("<html><title>L2-HUNTER.RU [BOT]</title><body><center><img src=\"logo.logo\" width=210 height=120>"); sb.append("<table width=280 border=1>"); // статус sb.append("<tr>"); sb.append("<td>Статус бота:</td>"); if (ACTIVE_BOTS.contains(player.getObjectId())) { sb.append("<td>включен</td>"); } else { sb.append("<td>выключен</td>"); } sb.append("</tr>"); // премиум // команды sb.append("<tr>"); sb.append("<td>Включить бота:</td>"); sb.append("<td><a action=\"bypass -h vch_bot on\">.boton</a></td>"); sb.append("</tr>"); sb.append("<tr>"); sb.append("<td>Выключить бота:</td>"); sb.append("<td><a action=\"bypass -h vch_bot off\">.botoff</a></td>"); sb.append("</tr>"); sb.append("</table><br>"); // итем if (ITEM_REQUIRED > 0) { sb.append("<center>Необходимый предмет: " + ITEM_NAME + "<center>"); } sb.append("</body></html> Error on: C:\build\gameserver\data\scripts\commands\voice\Bot.java.error.log Line: -1 - Column: -1 compilation failed это пишет в файле Bot.java.error.log а в гс пишит GameServer: Loading Server Scripts ---------- 1. ERROR in \Bot.java (at line 129) player.setAutoFarmNow(true); ^^^^^^^^^^^^^^ The method setAutoFarmNow(boolean) is undefined for the type L2PcInstance ---------- 2. ERROR in \Bot.java (at line 143) player.setAutoFarmNow(false); ^^^^^^^^^^^^^^ The method setAutoFarmNow(boolean) is undefined for the type L2PcInstance ---------- 3. ERROR in \Bot.java (at line 257) player.useMagicBot(skill, false, isMage); ^^^^^^^^^^^ The method useMagicBot(L2Skill, boolean, boolean) is undefined for the type L2PcInstance ---------- 4. ERROR in \Bot.java (at line 262) player.useMagicBot(skill, false, isMage); ^^^^^^^^^^^ The method useMagicBot(L2Skill, boolean, boolean) is undefined for the type L2PcInstance ---------- 4 problems (4 errors) The method useMagicBot(net.sf.l2j.gameserver.model.L2Skill, boolean, boolean) is undefined for the type net.sf.l2j.gameserver.model.actor.instance.L2PcInstance The method useMagicBot(net.sf.l2j.gameserver.model.L2Skill, boolean, boolean) is undefined for the type net.sf.l2j.gameserver.model.actor.instance.L2PcInstance The method setAutoFarmNow(boolean) is undefined for the type net.sf.l2j.gameserver.model.actor.instance.L2PcInstance The method setAutoFarmNow(boolean) is undefined for the type net.sf.l2j.gameserver.model.actor.instance.L2PcInstance Failed executing script: C:\build\gameserver\data\scripts\commands\voice\Bot.java. See Bot.java.error.log for details. Вот скрипт помогите исправить ошибку
  2. Дайте патч пожалуйсто оригинал
  3. да есле что пиши в скайп помогу gekasav1
  4. Ребят решил проблему взял скрипт с другой сборки
  5. import sys from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver import Announcements from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.ai import CtrlIntention from net.sf.l2j.util import Rnd from net.sf.l2j.gameserver.model import L2World from net.sf.l2j.gameserver.network.serverpackets import CreatureSay from java.lang import System from time import gmtime, strftime qn = "5555_Peklo" # ======================================= # НЕ ТРОГАЕМ # ======================================= annom=1 ATTAKERS = [] tek = 0 nyj = 1 closed = 1 # ======================================= # КОНФИГ # ======================================= # Название (только английские символы) NAME = "IIeklo" LOC = "Town of Giran" # Место, где вы поставили регистрирующего НПЦ. REGISTER = 55557 # Регистрирующий нпц. НЕ ЗАБЫВАЕМ ДЕЛАТЬ ЕГО БЕССМЕРТНЫМ. locr = [[82448,149424,-3468]] # Соответственно координаты, где будет появляться НПЦ. Сколько угодно различных точек PENI = 1164 # Итем, необходимый для участия PENI_KOL = 5 # Сколько итемов необходимо для участия. Если хотите чтобы участие было бесплатным - поставте 0 LEVEL = 80 # Минимальный уровень, на котором игрок сможет принять участие в ивенте. AFTER_RESTART = 1 # Время, которое пройдёт от запуска сервера(перезагрузки скрипта) до начала ивента. TIME_FOR_WAIT = 50 # Время между ивентами в минутах TIME_FOR_REG = 20 # Время на регистрацию в минутах ANNOUNCE_INTERVAL = 2 # Как часто аннонсить о регистрации на ивент в минутах. MOB = 55556 # Моб, которого надо убивать. С него ничего не должно дропаться. Желательно не менять, т.к. есть защита от незарегистрированных игроков. locf = [-88957,136220,-3085] # Соответственно координаты, где будет появляться 1 моб locfp = [-88651,136535,-3118] # Соответственно координаты, куда телепортируются игроки. Здесь же и ресаются. RADIUS = 10 # Радиус появления мобов относительно 1 моба MOB_R = 55555 # Моб, при помощи которого выдаётся награда. Здесь должен быть прописан дроп. YCH_MIN = 1 # Минимальное количество участников YCH_MAX = 35 # Максимальное количество участников. MOBS_TO_CHEL = 1 # Количество мобов на человека. Максимальное количество мобов, которое придётся убить участникам за последний заход= кл-во участников * на MOBS_TO_CHEL. CANCEL_TIME = 10 # Если в течение этого времени (минуты) мобы не атакуются - ивент считается проигранным. Пишется, что мобы выиграли и все они исчезают. REWARD =[[9840,20,25,100]] # Список наград. Выдайтся каждому участнику. Формат записи: [[itemId1,countMIN1,countMAX1,chance1],[itemId2,countMIN2,countMAX2,chanceN],...[itemIdN,countMINN,countMAXN,chanceN]] TIM = [] # Часы, в течение которых ивент не начнётся. Т.е если написано 20, то в период с 20:00:00 до 20:59:59 ивент не стартует. RAD = 5000 # Если в момент выдачи награды игрок находится вне этого радиуса, то награда не выдаётся. class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def init_LoadGlobalData(self) : self.startQuestTimer("open", AFTER_RESTART *60000, None, None) return def onTalk (Self,npc,player): global closed st = player.getQuestState(qn) global ATTAKERS npcId = npc.getNpcId() if npcId == REGISTER: if closed<>1 and int(Date().getHours()) not in TIM : if not player.isInOlympiadMode() : if player.getLevel() >= LEVEL: if player.getName() not in ATTAKERS : kolych = len(ATTAKERS) if kolych <= YCH_MAX : if PENI_KOL<>0: if st.getQuestItemsCount(PENI)>PENI_KOL: st.takeItems(PENI,PENI_KOL) ATTAKERS.append(player.getName()) return "reg.htm" else: st.exitQuest(1) return "nopeni.htm" else: ATTAKERS.append(player.getName()) return "reg.htm" else: return "max.htm" else: return "yje.htm" else: return "lvl.htm" else: return "You register in olympiad games now" else: return "noreg.htm" return def onAdvEvent (self,event,npc,player): global tek,nyj,ATTAKERS,kolych,annom,closed if event == "open" : ATTAKERS=[] closed=0 annom=1 spawncoord=locr[Rnd.get(len(locr))] npc=self.addSpawn(REGISTER,spawncoord[0],spawncoord[1],spawncoord[2],30000,False,0) npc.startAbnormalEffect(8192) self.startQuestTimer("close", TIME_FOR_REG*60000, npc, None) self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None) Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom [u][b]- 1[/b][/u]) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".") annom=annom+1 if event == "close": tek=0 nyj=1 self.startQuestTimer("open", TIME_FOR_WAIT*60000, None, None) kolych = len(ATTAKERS) if kolych < YCH_MIN : npc.deleteMe() closed=1 Announcements.getInstance().announceToAll("Event "+str(NAME)+" was canceled due lack of participation.") else: closed=1 Announcements.getInstance().announceToAll("Event "+str(NAME)+" has started!") npc.deleteMe() self.addSpawn(MOB,locf[0],locf[1],locf[2],30000,False,CANCEL_TIME*60000) self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None) for nm in ATTAKERS : i=L2World.getInstance().getPlayer(nm) try : if i.isOnline() : i.stopAllEffects() i.teleToLocation(locfp[0],locfp[1],locfp[2]) except : pass if event == "announce" and closed==0 and (TIME_FOR_REG - ANNOUNCE_INTERVAL * annom)<>0: Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom ) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".") annom=annom+1 self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None) if event == "return" : Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Players win!") for nm in ATTAKERS : i=L2World.getInstance().getPlayer(nm) try : if i.isOnline() : i.teleToLocation(83456,148208,-3406) except : pass if event == "return_l" : Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Monsters win!") for nm in ATTAKERS : i=L2World.getInstance().getPlayer(nm) try : if i.isOnline() : i.teleToLocation(83456,148208,-3406) except : pass if event == "exit" : ATTAKERS.remove(player.getName()) return "exit.htm" return def onAttack (self,npc,player,damage,isPet): if player.getName() not in ATTAKERS : try: player.teleToLocation(147725,-56517,9999) except : pass return def onKill(self,npc,player,isPet): global tek,nyj,kolych mobcount=(MOBS_TO_CHEL * kolych)+15 tek=tek+1 if tek==nyj and (2*nyj) < mobcount: for i in range(0,2*tek) : randx = 25*(20-Rnd.get(40)) randy = 25*(20-Rnd.get(40)) self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000) nyj=2*tek tek=0 self.cancelQuestTimer("return_l",None,None) self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None) npcppc=self.addSpawn(MOB,locf[0],locf[1],locf[2]+100,30000,False,CANCEL_TIME*60000) npcppc.broadcastPacket(CreatureSay(npcppc.getObjectId(), 1, "Event "+str(NAME)+": ","You have "+str(CANCEL_TIME)+" minutes for kill this monsters!")) npcppc.deleteMe() elif tek==nyj and (2*nyj) >= mobcount: for i in range(0,mobcount) : randx = 25*(20-Rnd.get(40)) randy = 25*(20-Rnd.get(40)) mobb=self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000) mobb.startAbnormalEffect(8192) nyj=mobcount+1 tek=0 self.cancelQuestTimer("return_l",None,None) self.startQuestTimer("return_l", (CANCEL_TIME)*60000, None, None) npcppc=self.addSpawn(MOB,locf[0],locf[1],locf[2]+100,30000,False,CANCEL_TIME*60000) npcppc.broadcastPacket(CreatureSay(npcppc.getObjectId(), 1, "Event "+str(NAME)+": ","You have "+str(CANCEL_TIME)+" minutes for kill this monsters!")) npcppc.deleteMe() elif tek==mobcount: for nm in ATTAKERS : player=L2World.getInstance().getPlayer(nm) if player<>None: if abs(abs(player.getX())-abs(locf[0]))>RAD or abs(abs(player.getY())-abs(locf[1]))>RAD : ATTAKERS.remove(nm) else: ATTAKERS.remove(nm) for nm in ATTAKERS : i=L2World.getInstance().getPlayer(nm) try: for id, countmin, countmax, chance in REWARD : if Rnd.get(100)<=chance : count=Rnd.get(countmin,countmax) i.getQuestState(qn).giveItems(id,count) except : pass self.startQuestTimer("return", 30000, None, None) self.cancelQuestTimer("return_l",None,None) return QUEST = Quest(5555, qn, "Peklo") QUEST.addKillId(int(MOB)) QUEST.addAttackId(int(MOB)) QUEST.addStartNpc(int(REGISTER)) QUEST.addTalkId(int(REGISTER)) Помогите настроить импорты для pwsoft Или дайте пожалуйсто рабочий для pwsoft сейчас пишит гейм сервер failed to import custom : 5555_Peklo
  6. Получил ответ от Тех поддержки Да, скоро сделаем специальный модуль, а пока можете попробовать установить модуль от UnitPay и немного изменить под нас. С уважением, поддержка Game Donate Как настрою скину сюда!
  7. Ребят хелп так и не кто не ответил(((
  8. Добрый вечер помогите настроить gdonate.ru не реклама <?php class Config { // Ваш секретный ключ (из настроек проекта в личном кабинете cp.gdonate.ru ) const SECRET_KEY = ''; // Стоимость товара в руб. const ITEM_PRICE = 10; // Таблица начисления товара, например `users` const TABLE_ACCOUNT = ''; // Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email` const TABLE_ACCOUNT_NAME = ''; // Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate` const TABLE_ACCOUNT_DONATE= ''; // Параметры соединения с бд // Хост const DB_HOST = 'localhost'; // Имя пользователя const DB_USER = 'root'; // Пароль const DB_PASS = ''; // Назывние базы const DB_NAME = 'db_name'; Не знаю что здесь прописывать // Таблица начисления товара, например `users` const TABLE_ACCOUNT = ''; // Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email` const TABLE_ACCOUNT_NAME = ''; // Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate` const TABLE_ACCOUNT_DONATE= ''; И где прописать ид выдаваемого итема Кто поможет скайп gekasav1
  9. Может вам чтото скажет баг с невидемостью? досехпор действуюший на 18реве!
  10. Сборка полная фигня найдено множество багов разработчик не чем не смог помочь очень не советую!
  11. в данной версии имеется баг с инвизом обновления за апрель!
  12. Солью последнею реву l2jlovely в шару за отвязку и прекрутку антибота! Так как разработчик не может этого сделать! Разработчик уже не может править баги! Писать в вк https://vk.com/vin_stim
  13. я не могу вот эти импорты переписать from com.l2jfrozen.gameserver.templates import L2EtcItemType from com.l2jfrozen.gameserver.templates import L2WeaponType from com.l2jfrozen.gameserver.templates import L2Item
  14. Скилы я сам допишу а вот импорты я не могу написать и чесно я не понял ваш ответ!
  15. РЕБЯТ ПОМОГИТЕ ПЕРЕПИСАТЬ ИМПОРТЫ ПОД l2jlovely import sys from com.l2jfrozen.gameserver.datatables import SkillTable from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model import L2Augmentation from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.util.random import Rnd from com.l2jfrozen.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.templates import L2EtcItemType from com.l2jfrozen.gameserver.templates import L2WeaponType from com.l2jfrozen.gameserver.templates import L2Item from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate from java.lang import System # #@author KFan #ICQ: 604883692 #Skype: Kotyara20141 # NPC_ID = 60007 ITEM_ID = 57 #ITEM_COUNT = 0 #Do not need a subject ITEM_COUNT = 1 #A player can learn just one skill? 1 = true 0 = false ONLY_ONE = 0 qn = "9994_skill_trader" print "9994_skill_trader Loading Started" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onTalk (self,npc,player): st = player.getQuestState(qn) htmltext = "<html><head><body>I have nothing to say you</body></html>" npcId = npc.getNpcId() if not st : return cond = st.getInt("cond") onlyone = st.getInt("onlyone") if ONLY_ONE : if onlyone > 0 : return "fail.htm" if cond >= 0 : st.set("cond", "1") st.setState(STARTED) htmltext = "start.htm" return htmltext def onEvent (self,event,st) : htmltext = event cond = st.getInt("cond") if event == "buy" : htmltext = "buy.htm" elif event.startswith('buy_') : if st.getQuestItemsCount(ITEM_ID) <= ITEM_COUNT : return "n-money.htm" buy_skill = str(event.replace("buy_", "")) buy_skill_splite = buy_skill.split('_') st.takeItems(ITEM_ID, ITEM_COUNT) st.getPlayer().addSkill(SkillTable.getInstance().getInfo(int(buy_skill_splite[0]), int(buy_skill_splite[1]))) if ONLY_ONE : st.set("onlyone", "1") st.set("cond", "0") st.setState(COMPLETED) htmltext = "buy.htm" return htmltext QUEST = Quest( -1, qn, "custom") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC_ID) QUEST.addTalkId(NPC_ID)
  16. Интересно почему эти фиксы все умалчивают ?
  17. Напиши в скайп или в ВК даже куплю есле поможешь подогнать и она реально работает
  18. А то что вы про окна пишете уже давно боты научились распознавать всю эту байду или тутже пишут скрипт дак и смы сол тогда перерывать половину интернета в поисках хрен знает чего ! А с нынешней обстановкой тема очень актуальна так как каждый 3тий школьник юзает адреналина!
  19. Ну дак ребят что трепатся та ну выложите более лучшей сюда вариант мы все будем благодарны я написал как возможно избавится от 70 % ботов таким способом и этот способ доступен без особых знаний в сборке и написания скриптов !
  20. Таким оброзом посуте у нас моб остается на месте просто мы на него не можем навести таргет иза того что у нас анимация и описание монстра смешено ! ну обычно фарм локации на пвп серверах не сильно большие и возможно расставить монстров создав макрос //spawn 213123 10 мин и локация готова! Растовлять нужно хотябы 1 на 3 обычных!
  21. Возможно вы мне поможете улучьшеть и даработать напишите в лс!
  22. Для каждого вашего обхода есть фикс этого способа!
  23. откуда ты узнаеш айди монстра есле он допустим с фреи и у него другой айди! И есле ты обычный игрок то не будиш заморачиватся и искать ид в клиенте!
×
×
  • Создать...