HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.01.2016, 23:38
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Код:


[CODE]
/**
* Created by L2jGroot team on 25.07.2015.
*/
package handlers.voice;

import ru.catssoftware.gameserver.handler.IItemHandler;
import ru.catssoftware.gameserver.handler.IVoicedCommandH andler;
import ru.catssoftware.gameserver.handler.ItemHandler;
import ru.catssoftware.gameserver.handler.VoicedCommandHa ndler;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2 PcInstance;

import java.util.HashMap;

public class Acp implements IVoicedCommandHandler {

private static String[] commands = {"acpon", "acpoff"};
// *********************** ИД Банок
private static int ID_HEAL_CP = 5592;
private static int ID_HEAL_MP = 6036;
private static int ID_HEAL_HP = 1539;
// *********************** USE FULL
// Включить / Выключить
private static boolean ACP_ON = true;
// Минимальный уровень, с которого можно использовать ACP
private static int ACP_MIN_LVL = 0;
// Указываеться в % уровень, с которого начинаем регенить
private static int ACP_HP_LVL = 70;
private static int ACP_CP_LVL = 70;
private static int ACP_MP_LVL = 70;
private static int ACP_MILI_SECONDS_FOR_LOOP = 1000;
// Только для премиумов?
private static boolean ACP_PREMIUM = false;
// Что именно автоматически регеним
private static boolean ACP_CP = true;
private static boolean ACP_MP = true;
private static boolean ACP_HP = true;
private static HashMap userAcpMap = new HashMap();
// private volatile boolean acpUserOn = false;

public static void main(String[] args) {
VoicedCommandHandler.getInstance().registerVoicedC ommandHandler(new Acp());
}

public static Acp getInstance() {

return null;
}

@Override
public String getDescription(String command) {
if (command.equals("acpon"))
return "Включить автоматическое восстановление HP/CP/MP";
else if (command.equals("acpoff"))
return "Выключить автоматическое восстановление HP/CP/MP";
return null;
}

@Override
public String[] getVoicedCommandList() {
return commands;
}

@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) {
// Есть ли такой вообще в мире
if (activeChar == null) {
return false;
}

if (command.equals("acpon")) {
if (!ACP_ON) {
activeChar.sendMessage("Функция отключена на сервере!");
return false;
} else {
if (userAcpMap.containsKey(activeChar.toString())) {
activeChar.sendMessage("Уже включено!");
} else {
activeChar.sendMessage("Acp включен!");
Thread t = new Thread(new AcpHealer(activeChar));
userAcpMap.put(activeChar.toString(), t);
t.start();
return true;
}
}
} else if (command.equals("acpoff")) {
if (!userAcpMap.containsKey(activeChar.toString())) {
activeChar.sendMessage("Не было включено");
} else {
userAcpMap.remove(activeChar.toString()) //here we get thread and remove it from map
.interrupt(); //and interrupt it
activeChar.sendMessage("Отключено");
}
}
return false;
}

private class AcpHealer implements Runnable {

L2PcInstance activeChar;

public AcpHealer(L2PcInstance activeChar) {
this.activeChar = activeChar;
}

@Override
public void run() {
try {
while (true) {
// Проверяем уровень
if (activeChar.getLevel() >= ACP_MIN_LVL) {
// Проверяем нужен ли нам премиум
if (!(activeChar.getPremiumService() > 1 && ACP_PREMIUM)) {
// Проверяем, есть ли у нас хотя бы одна банка чего-то
L2ItemInstance cpBottle = activeChar.getInventory().getItemByItemId(ID_HEAL_ CP);
L2ItemInstance hpBottle = activeChar.getInventory().getItemByItemId(ID_HEAL_ HP);
L2ItemInstance mpBottle = activeChar.getInventory().getItemByItemId(ID_HEAL_ MP);

if (hpBottle != null && hpBottle.getCount() > 0) {
// Проверяем наш уровень здоровья
if ((activeChar.getStatus().getCurrentHp() / activeChar.getMaxHp()) * 100 0) {
if ((activeChar.getStatus().getCurrentCp() / activeChar.getMaxCp()) * 100 0) {
if ((activeChar.getStatus().getCurrentMp() / activeChar.getMaxMp()) * 100
 
Ответить с цитированием

  #2  
Старый 19.01.2016, 00:00
ツsmile10ツ
Познавший АНТИЧАТ
Регистрация: 23.02.2015
Сообщений: 1,608
С нами: 5904866

Репутация: 2646


По умолчанию

Пофапал на код. Надо позвать его в жопакод, нам нужны такие люди.
 
Ответить с цитированием

  #3  
Старый 19.01.2016, 00:04
zcxv
Постоянный
Регистрация: 22.06.2015
Сообщений: 562
С нами: 5732354

Репутация: 0


По умолчанию

Кстати, там баг

Код:


[CODE]
if (hpBottle != null && hpBottle.getCount() > 0) {
// Проверяем наш уровень здоровья
if ((activeChar.getStatus().getCurrentHp() / activeChar.getMaxHp()) * 100 0) {
if ((activeChar.getStatus().getCurrentCp() / activeChar.getMaxCp()) * 100 0) {
if ((activeChar.getStatus().getCurrentMp() / activeChar.getMaxMp()) * 100

С финфаном сейчас сидим и ржем Если ХП банок нет, то оно вообще не работает)
 
Ответить с цитированием

  #4  
Старый 19.01.2016, 00:14
zcxv
Постоянный
Регистрация: 22.06.2015
Сообщений: 562
С нами: 5732354

Репутация: 0


По умолчанию

Цитата:
Сообщение от ツsmile10ツ  

Пофапал на код. Надо позвать его в жопакод, нам нужны такие люди.
А меня не возьмете? У меня летающий кот(
 
Ответить с цитированием

  #5  
Старый 19.01.2016, 00:17
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Цитата:
Сообщение от ツsmile10ツ  

Пофапал на код. Надо позвать его в жопакод, нам нужны такие люди.
Анциента бери, однозначно нужен будет. Он умеет делать пЕар.
 
Ответить с цитированием

  #6  
Старый 19.01.2016, 03:27
mwmkr
Постоянный
Регистрация: 16.08.2015
Сообщений: 573
С нами: 5653763

Репутация: 0


По умолчанию

Цитата:
Сообщение от zcxv  

А меня не возьмете? У меня летающий кот(
вы слишком правильный для нашего кружка :Come On:

Цитата:
Сообщение от Mangol  

Анциента бери, однозначно нужен будет. Он умеет делать пЕар.
дЫркопакером возьмем, хороший совет.
 
Ответить с цитированием

  #7  
Старый 19.01.2016, 09:44
ツsmile10ツ
Познавший АНТИЧАТ
Регистрация: 23.02.2015
Сообщений: 1,608
С нами: 5904866

Репутация: 2646


По умолчанию

Цитата:
Сообщение от zcxv  

А меня не возьмете? У меня летающий кот(
А ты умеешь кодеть так, чтоб нпе в шаут летело?)))0)

Цитата:
Сообщение от Mangol  

Анциента бери, однозначно нужен будет. Он умеет делать пЕар.
Анциент распиарит нашу тиму тем шо будет пытатся продать соурце
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.