[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Коды в исходники
1ldarДата: Понедельник, 06.02.2012, 23:02 | Сообщение # 16

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Игра Искатели клада by DesmoNd
В ChatCommandProc:

Code
commands.put("!клад",new Cmd("!клад","$n $n",***));   

case ***:   
commandklad(proc, uin, parser.parseArgs(tmsg));   
break;   

/** Мини-игра искатели клада (@Автор: DesmoNd) */   
public void commandklad(IcqProtocol proc, String uin, Vector v){   
if(!auth(proc,uin, "game")) return;   
try{   
int stavka = (Integer)v.get(0);   
int v1 = (Integer)v.get(1);   
Users uss = srv.us.getUser(uin);   
if(uss.room!=ChatProps.getInstance(srv.getName()).getIntProperty("klad.room")){   
proc.mq.add(uin,"Бродяга: Играть можно только в "+ChatProps.getInstance(srv.getName()).getIntProperty("klad.room")+" комнате");   
return;   
}   
if (uss.ball < stavka){   
proc.mq.add(uin,"Бродяга: Недостаточно баллов для игры!");   
return;   
}   
if (stavka < ChatProps.getInstance(srv.getName()).getIntProperty("dmoney")){   
proc.mq.add(uin,"Бродяга: Максимальная ставка: "+ChatProps.getInstance(srv.getName()).getIntProperty("dmoney")+ " золотых");   
return;   
}   
if (v1 > 3){   
proc.mq.add(uin,"Бродяга: Всего только 3 пещеры!");   
return;   
}   
int p = radm.getRND(3)+1; //всего 3 пещеры   
proc.mq.add(uin,"Бродяга: Прнимаю ставку "+stavka+ " на "+v+"ю пещеру =).");   
String s1="Бродяга: " + uss.localnick + " вошёл в пещеру, но увы! Клад был в "+p+"й пещере!";   
if(p==v1){   
uss.ball+=stavka;   
s1+="\nБродяга: Клад найден! Ты выиграл "+stavka+ " золотых! Твой баланс "+uss.ball+" золотых";   
}else{   
uss.ball-=stavka;   
s1+="\nБродяга: Тебя засыпало! Ты проиграл "+stavka+ " золотых! Твой баланс "+uss.ball+" золотых";   
}   
srv.us.updateUser(uss);   
proc.mq.add(uin,s1);   
} catch (Exception ex) {   
ex.printStackTrace();   
proc.mq.add(uin,"Ошибка: "+ex.getMessage());   
}   
}   

\\************************************************//   

В ChatProps:   

setIntProperty("klad.room", 1);   
setIntProperty("dmoney", 250);   

new UserPreference(UserPreference.CATEGORY_TYPE,"klad", "Игра Искатели клада",""),   
new UserPreference(UserPreference.INTEGER_TYPE,"klad.room", "Комната для игры",getIntProperty("klad.room")),   
new UserPreference(UserPreference.INTEGER_TYPE,"dmoney", "Максимальная ставка",getIntProperty("dmoney")),


 
1ldarДата: Понедельник, 06.02.2012, 23:04 | Сообщение # 17

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Игра "Очко", "Взлом банкомата", "Тир" by MasteR

в ChatCommandProc.java
Code
commands.put("!очко", new Cmd("!очко", "$n $n", 139));
commands.put("!взлом", new Cmd("!взлом", "$n", 137));
commands.put("!тир", new Cmd("!тир", "$n", 138));

Code
case 139:   
                 commandGameOchko(proc, uin, this.parser.parseArgs(tmsg));   
                 break;
case 137:   
                 commandVzlom(proc, uin, this.parser.parseArgs(tmsg));   
                 break;        
case 138:   
                 commandTir(proc, uin, this.parser.parseArgs(tmsg));   
                 break;

Code
public void commandGameOchko(IcqProtocol proc, String uin, Vector v)   
           {   
             if ((!isChat(proc, uin)) && (!this.psp.testAdmin(uin))) return;   
             if (!auth(proc, uin, "g_kaz")) return; try   
             {   
               int i1 = ((Integer)v.get(0)).intValue();   
               int i2 = ((Integer)v.get(1)).intValue();   
               Users uss = this.srv.us.getUser(uin);   
               if (uss.room != this.psp.getIntProperty("ochkoo.room")) {   
                 proc.mq.add(uin, "Играть в казино можно только в комнате " + this.psp.getIntProperty("ochkoo.room"));   
                 return;   
               }if (uss.ball <= 0) {   
                 proc.mq.add(uin, "На вашем счету " + uss.ball + "!\nДля участия в игре, пополните пожалуйста ваш счет!");   
                 return;   
               }if (i2 > uss.ball) {   
                 proc.mq.add(uin, "Ставка не должна быть больше суммы на вашем счету!");   
                 return;   
               }if (i2 <= 0) {   
                 proc.mq.add(uin, "Ставка не должна быть меньше или равна 0!");   
                 return;   
               }if ((i1 < 0) || (i1 > 4)) {   
                 proc.mq.add(uin, "Число не должна быть меньше 0 и больше 4");   
                 return;   
               }int ger = (int)(Math.random() * 4.0D);   
               proc.mq.add(uin, "Ваше число " + i1 + ", выпало " + ger);   
               if (i1 == ger) {   
                 uss.ball += i2;   
                 String rrrt = i2 + "".toString();   
                 this.srv.us.updateUser(uss);   
                 proc.mq.add(uin, "Поздравляю! Числа совпали, ваш приз составляет " + i2 + "\nВаш баланс: " + uss.ball + "ч$");   
                 this.srv.cq.addMsg("Пользователь [" + uss.id + "] " + uss.localnick + " выиграл " + i2 + " в игре 'Очко'", uss.sn, uss.room);   
                 return;   
               }   
               uss.ball -= i2;   
               this.srv.us.updateUser(uss);   
               proc.mq.add(uin, "Числа не совпали!\nВы проиграли свои " + i2 + "\nВаш баланс: " + uss.ball + "");   
               this.srv.cq.addMsg("Пользователь [" + uss.id + "] " + uss.localnick + " проиграл свои " + i2 + " в игре 'Очко'", uss.sn, uss.room);   
             } catch (Exception ex) {   
               ex.printStackTrace();   
               proc.mq.add(uin, "Ошибка " + ex.getMessage());   
             }   
           }

Code
public void commandVzlom(IcqProtocol proc, String uin, Vector v) {   
             if ((!isChat(proc, uin)) && (!this.psp.testAdmin(uin))) return;   
             if (!auth(proc, uin, "vzlomik")) return; try   
             {   
               int s = ((Integer)v.get(0)).intValue();   
               int numb = (int)(Math.random() * 900.0D);   
               int num = (int)(Math.random() * 15.0D);   
               int hp = (int)(Math.random() * 7.0D);   
               Users uss = this.srv.us.getUser(uin);   
               if (uss.room != this.psp.getIntProperty("vzlo.room")) {   
                 proc.mq.add(uin, "Игра (взлом банка) находиться тут: [" + this.psp.getIntProperty("vzlo.room") + "] " + this.srv.us.getRoom(this.psp.getIntProperty("vzlo.room")).getName() + "");   
                 return;   
               }   
               int moder_id = 0;   
               String r = "Тебя спалила охрана!!!";   
               String d = "руб.";   
               String z = "%";   
               if (s > 15) {   
                 proc.mq.add(uin, "Число должно быть от 1 до 15...");   
                 return;   
               }   
               if (uss.ball < this.psp.getIntProperty("vzlo.many")) {   
                 proc.mq.add(uin, "Чтобы начать взлом надо чтобы у тебя было больше " + psp.getIntProperty("vzlo.many") + " на счету");   
                 return;   
               }   
               this.srv.cq.addMsg("Программа_взломщик: Я подобрала число: (" + num + ") , а [" + uss.localnick + "] выбрал: (" + s + ")", "", uss.room);   
               if (s == num) {   
                 uss.ball += numb;   
                 proc.mq.add(uin, "Программа_взломщик: Пароли доступа совпали!!! Ты получаешь [" + numb + "], твой баланс = " + uss.ball + d);   
                 this.srv.cq.addMsg("Программа_взломщик: Пароли доступа совпали!!! |" + uss.id + "|[" + uss.localnick + "] ХАКЕР:)!!! Он взломал банкомат и украл [" + numb + "], его баланс [" + uss.localnick + "](а) составляет: [" + uss.ball + "]", uss.sn, uss.room);   
               } else {   
                 proc.mq.add(uin, "Программа_взломщик: Я подобрала число: (" + num + ") , А ты выбрал: (" + s + ") , Пароли не совпали! ПАЛЕВО!!! МЕНТЫ!!! ТЕБЯ поймали и взяли штраф!!!Они тебя избили и твоё здоровье уменьшелось на: [" + hp + "]% и теперь составляет: " + uss.hp + z);   
                 proc.mq.add(uin, "Тебя запалили менты!!! И взяли штраф на " + numb + ",Попробуй еще раз! ;)");   
                 uss.ball -= numb;   
                 uss.hp -= hp;   
               }   
             }   
             catch (Exception ex) {   
               ex.printStackTrace();   
               proc.mq.add(uin, "Ошибка " + ex.getMessage());   
             }   
           }

Code
public void commandTir(IcqProtocol proc, String uin, Vector v)   
           {   
             try {   
               int s = ((Integer)v.get(0)).intValue();   
               Users uss = this.srv.us.getUser(uin);   
               int num = (int)(Math.random() * 3.0D);   
               if (uss.room != this.psp.getIntProperty("tiri.room")) {   
                 proc.mq.add(uin, "Играть в тир можно только в комнате: [" + psp.getIntProperty("tiri.room") + "]");   
                 return;   
               }   
               if (s > 3) {   
                 proc.mq.add(uin, "Прохожий: Ей,мужик!!!(женщина!!!) Число должно быть от 0 до 3");   
                 return;   
               }   
               if (uss.ball < this.psp.getIntProperty("tiri.close")) {   
                 proc.mq.add(uin, "Прохожий: Ей,мужик!!!(женщина!!!) У тебя нету денек на первый взнос (<" + psp.getIntProperty("tiri.close") + ")!");   
                 return;   
               }   
               Manager.getInstance().setData("times", Long.valueOf(System.currentTimeMillis() + 100L));   
               this.srv.cq.addMsg("Прохожий: Чел должен был попасть в [" + num + "] , а " + uss.localnick + " попал сюда: [" + s + "]", "", uss.room);   
               if (s == num) {   
                 this.srv.cq.addMsg("Прохожий: Круто,он каким то чудом попал сюда: [" + s + "]. Поздравляем! " + uss.localnick + "!", "", uss.room);   
                 proc.mq.add(uin, "Прохожий: Надо было те попасть сюда: [" + num + "],а ты попал туда же: [" + s + "] правильно!!!");   
                 int uroven = uss.ball + this.psp.getIntProperty("tiri.finish");   
                 uss.ball = uroven;   
                 this.srv.us.updateUser(uss);   
               }   
               if (s != num) {   
                 int h = (int)(Math.random() * 3.0D);   
                 this.srv.cq.addMsg("Прохожий: А " + uss.localnick + " не попал в цель! Надо было сюда: [" + num + "],а " + uss.localnick + " попал сюда: [" + s + "]", "", uss.room);   
                 proc.mq.add(uin, "Прохожий: Цель была вот эта: [" + num + "].\nТы проиграл много руб.\nТвой баланс: " + uss.ball + " руб.");   
                 int uroven = uss.ball - psp.getIntProperty("tiri.close");   
                 uss.ball = uroven;   
                 this.srv.us.updateUser(uss);   
               }   
               proc.mq.add(uin, "Прохожий: Пауза между запросами 5 секунд...");   
             }   
             catch (Exception ex) {   
               ex.printStackTrace();   
               proc.mq.add(uin, "Ошибка " + ex.getMessage());   
             }   
           }

Code
setIntProperty("ochkoo.room", 20);
             setIntProperty("vzlo.room", 10);   
             setIntProperty("vzlo.many", 25);
setIntProperty("tiri.room", 10);   
             setIntProperty("tiri.finish", 10);   
             setIntProperty("tiri.close", 20);
new UserPreference(4, "ochkoo", "Игра ''Очко''"),   
new UserPreference(3, "ochkoo.room", "Комната для игры", Integer.valueOf(getIntProperty("ochkoo.room"))),
new UserPreference(4, "vzlo", "Взлом пользовательских денег"),   
new UserPreference(3, "vzlo.room", "Комната для взлома", Integer.valueOf(getIntProperty("vzlo.room")),true),   
new UserPreference(3, "vzlo.many", "Игра разрешена если у юзера денег более:", Integer.valueOf(getIntProperty("vzlo.many"))),
new UserPreference(4, "tiri", "Игра тир"),   
          new UserPreference(3, "tiri.room", "Комната для игры", Integer.valueOf(getIntProperty("tiri.room"))),   
          new UserPreference(3, "tiri.finish", "При выигрыше давать денег...", Integer.valueOf(getIntProperty("tiri.finish"))),   
          new UserPreference(3, "tiri.close", "При проигрыше давать денег...", Integer.valueOf(getIntProperty("tiri.close"))),


 
1ldarДата: Понедельник, 06.02.2012, 23:05 | Сообщение # 18

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Наехать на пользователя by MasteR
Code
commands.put("!наехать", new Cmd("!наехать", "$n", 175));

Code
case 175:   
                        commandnaexat(proc, uin, tmsg, parser.parseArgs(tmsg));   
                        break;

Code
public void commandnaexat(IcqProtocol proc, String uin, String tmsg, Vector v) {   
             if(!isChat(proc,uin) && !psp.testAdmin(uin)) return;   
             if(!auth(proc,uin, "game")) return;   
             int i = (Integer)v.get(0);   
             Users u = srv.us.getUser(i);   
             Users us = srv.us.getUser(uin);   
                if (uss.room != this.psp.getIntProperty("auto.naezd")) {   
                proc.mq.add(uin, "Наехать вы можете только в " + this.psp.getIntProperty("auto.naezd") + " комнате");   
                return;   
              }   
          if (us.auto == "Пешеход") {   
                proc.mq.add(uin, "На чём наезжать собрался?");   
                return;   
              }   
                if(u.id==0){   
                proc.mq.add(uin,"Пользователь не найден");   
                return;   
                }   
                if (u.state == 1) {   
                proc.mq.add(uin, "Пользователь не в чате");   
                return;   
              }   
                if (us.room != u.room) {   
                proc.mq.add(uin, "Пользователь в другой комнате");   
                return;   
                }   
              int ohran = u.ohran - psp.getIntProperty("uron.ohran.avto");   
              u.ohran = ohran;   
              int gold = u.ball - psp.getIntProperty("money.auto");   
              u.ball = gold;   
              int gold2 = us.ball + psp.getIntProperty("money.auto");   
              us.ball = gold2;   
              srv.us.updateUser(u);   
              proc.mq.add(uin, "Ты наехал на своей машине |"+us.auto+"| на "+u.localnick+"и у он(а) теряет здоровье охраны |"+psp.getIntProperty("uron.ohran.avto")+"| и |"+psp.getIntProperty("money.auto")+"| и тебе начисляется |"+psp.getIntProperty("money.auto")+"|...удачной езды!");   
                    proc.mq.add(u.sn, u.localnick + ", " + "на тебя наехал" + us.localnick + "на своём автомобиле |"+us.auto+"| и ты теряешь |"+psp.getIntProperty("uron.ohran.avto")+"| охраны и |"+psp.getIntProperty("money.auto")+"| денег..в следущий раз смотри по сторонам");   
                    return;
   }

Code
setIntProperty("auto.naezd", 0);         
setIntProperty("uron.ohran.avto", 0);   
setIntProperty("money.auto", 0);
new UserPreference(UserPreference.CATEGORY_TYPE,"naezd", "•••Настройки Наезда•••",""),   
new UserPreference(UserPreference.INTEGER_TYPE, "auto.naezd", "Комната для наезда", Integer.valueOf(getIntProperty("auto.naezd"))),   
new UserPreference(UserPreference.INTEGER_TYPE, "uron.ohran.avto", "Урон охраны при наезде", Integer.valueOf(getIntProperty("uron.ohran.avto"))),   
new UserPreference(UserPreference.INTEGER_TYPE, "money.auto", "Сколько отнимают за наезд", Integer.valueOf(getIntProperty("money.auto"))),


 
1ldarДата: Понедельник, 06.02.2012, 23:11 | Сообщение # 19

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Стена в чат by MasteR
Code
commands.put("!настену", new Cmd("!настену", "$s", 129));   
commands.put("!удстена", new Cmd("!удстена", "", 130));   
commands.put("!стена", new Cmd("!стена", "", 131));

Code
case 129:   
               commandWall(proc, uin, parser.parseArgs(tmsg));   
               break;   
case 130:   
               commandDelWall(proc, uin, parser.parseArgs(tmsg));   
               break;   
        case 131:   
               commandNaWall(proc, uin, parser.parseArgs(tmsg));   
               break;

Code
public void commandNaWall(IcqProtocol proc, String uin, Vector v)   
         {   
           try   
           {   
             String s = this.psp.loadText("./wall.txt");   
             String[] ss = s.split("<br>");   
             for (int i = 0; i < ss.length; i++)   
               proc.mq.add(uin, "Стена:\n\n" + ss[i]);   
           }   
           catch (Exception ex) {   
             ex.printStackTrace();   
             proc.mq.add(uin, "Ошибка " + ex.getMessage());   
           }   
         }   

         public void commandDelWall(IcqProtocol proc, String uin, Vector v)   
         {   
           try   
           {   
             File wall = new File("./wall.txt");   
             if (wall.exists())   
             {   
               wall.delete();   
               OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("./wall.txt", true), "windows-1251");   
               osw.write("");   
               osw.close();   
               proc.mq.add(uin, "Стена очищена !");   
               Log.talk("Стена очищена !");   
             } else {   
               proc.mq.add(uin, "На стене нет сообщений");   
             }   
           } catch (Exception ex) {   
             ex.printStackTrace();   
             Log.talk("Error save msg: " + ex.getMessage());   
             proc.mq.add(uin, "Ошибка удаления");   
           }   
         }   

         public void commandWall(IcqProtocol proc, String uin, Vector v)   
         {   
           try   
           {   
             String post = (String)v.get(0);   
             int len = post.length();   
             int lenlim = 100;   
             if (len == 0) {   
               proc.mq.add(uin, "Ошибка: пустое сообщение.");   
               return;   
             }   
             if (len > lenlim) {   
               proc.mq.add(uin, "Ошибка: слишком длинное сообщение.");   
               return;   
             }   
             int msglim = 10;   
             int glow = 0;   
             File wall = new File("./wall.txt");   
             wall.createNewFile();   
             String stmp = this.psp.loadText("./wall.txt");   
             for (int i = 0; i < stmp.length(); i++)   
               if (stmp.charAt(i) == '\n')   
                 glow++;   
             if (glow >= msglim) {   
               OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./wall.bak", true), "windows-1251");   
               ow.write(stmp.substring(0, stmp.indexOf('\n')) + "\n");   
               ow.close();   
               stmp = stmp.substring(stmp.indexOf('\n') + 1);   
             }   
             Users uss = this.srv.us.getUser(uin);   
             Time T = new Time(new java.util.Date().getTime());   
             java.sql.Date D = new java.sql.Date(new java.util.Date().getTime());   
             this.srv.us.updateUser(uss);   
             stmp = stmp + "[" + D + "; " + T + "]\n" + uss.localnick + ": " + post + "";   
             OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./wall.txt", false), "windows-1251");   
             ow.write(stmp);   
             ow.close();   
             Log.talk("Добавлено сообщение на стену от " + uss.localnick + " [" + D + "; " + T + "]\n");   
             proc.mq.add(uin, "Ваше сообщение успешно добавлено на стену.\nЧто-бы прочитать его наберите !стена");   
           } catch (Exception ex) {   
             ex.printStackTrace();   
             Log.talk("Error save msg: " + ex.getMessage());   
             proc.mq.add(uin, "Ошибка " + ex.getMessage());   
           }   
         }

Если будет подчеркивать Time, сделайте импорт:
Code
import java.sql.Time;


 
1ldarДата: Понедельник, 06.02.2012, 23:13 | Сообщение # 20

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Новая CAPTCHA
Code
/*   
     * автор Дмитрий Пролубников   
     * переделана капча, bezzzdelnick   
     */   
public void commandReg(IcqProtocol proc, String uin, Vector v, String mmsg) {   
        try {   
          boolean twoPart = false;   
          int maxNick = psp.getIntProperty("chat.maxNickLenght");   
          if ((srv.getProps().getBooleanProperty("chat.useCaptcha")) && (comMap.containsKey(uin))) {   
            if (((CommandExtend)comMap.get(uin)).getMsg().equalsIgnoreCase(mmsg)) {   
              twoPart = true;   
              v = ((CommandExtend)comMap.get(uin)).getData();   
              comMap.remove(uin);   
            } else {   
              proc.mq.add(uin, "Система: Вы неправильно ответили на вопрос, попытайтесь зарегистрироваться еще раз.");   
              comMap.remove(uin);   
              return;   
            }   
          }   
          String lnick = (String)v.get(0);   
          Users uss = srv.us.getUser(uin);   
          if ((lnick.equals("")) || (lnick.equals(" "))) {   
            proc.mq.add(uin, "Ошибка: Ошибка регистрации, пустой ник");   
            Log.talk(uin + "Ошибка в коде штоли: " + mmsg);   
            return;   
          }   
          if (lnick.length() > maxNick) {   
            lnick = lnick.substring(0, maxNick);   
            proc.mq.add(uin, "Система: Ваш ник слишком длинный и будет обрезан.");   
          }   
          String newNick = testNick(uin, lnick);   
          if (newNick == null) {   
            proc.mq.add(uin, "Ошибка: Пустой ник.");   
            return;   
          }   
          if (!newNick.equals(lnick)) {   
            lnick = newNick;   
            proc.mq.add(uin, "Система: В вашем нике содержаться запретные символы, они будут удалены.");   
          }   
          lnick = lnick.replace('\n', ' ');   
          lnick = lnick.replace('\r', ' ');   
          if ((psp.getBooleanProperty("chat.isUniqueNick")) && (!qauth(proc, uin, "dblnick")) && (!psp.testAdmin(uin)) &&   
            (srv.us.isUsedNick(lnick))) {   
            proc.mq.add(uin, "Ошибка: Такой ник уже существует.\n"   
                    + "Попробуйте другой ник.");   
            return;   
          }   
          String oldNick = uss.localnick;   
          if (uss.state != 0) {   
            if (!srv.us.auth(proc, uin, "reg")) return;   
            if (uss.state != 2) return;   
            if (srv.us.getCountNickChange(uss.id) > maxNick) {   
              proc.mq.add(uin, "Система: Вы не можете так часто менять ник.");   
              return;   
            }   
            if (oldNick.equals(lnick)) {   
              if (uss.state == 1)   
                proc.mq.add(uin, "Система: Ник не изменен.\n"   
                        + "Для входа в чат используйте команду !чат");   
              else   
                proc.mq.add(uin, "Система: Ник не изменен.");   
              return;   
            }   
            uss.localnick = (lnick + uss.smailik);   
            Log.talk(uin + " сменил ник на " + mmsg);   
            proc.mq.add(uin, "Система: Обновление завершено");   
            srv.cq.addMsg("Система: У пользователя \"" + oldNick + "\" ник изменен на \"" + lnick + uss.smailik + "\"", "''", uss.room);   
            srv.us.db.log(uss.id, uin, "REG", lnick, uss.room);   
            srv.us.db.event(uss.id, uin, "REG", 0, "", lnick);   
            uss.basesn = proc.baseUin;   
            srv.us.updateUser(uss);   
            return;   
          }   
          testNick(uin, lnick);   
          if (newNick == null) {   
            proc.mq.add(uin, "Ошибка: Пустой ник.");   
            return;   
          }   
          if (!newNick.equals(lnick)) {   
            lnick = newNick;   
            proc.mq.add(uin, "Система: В вашем нике содержаться запретные символы, они будут удалены.");   
          }   
          if ((psp.getBooleanProperty("chat.FreeReg")) || (psp.testAdmin(uin))) {   
              //////////   
            if ((srv.getProps().getBooleanProperty("chat.useCaptcha")) && (!twoPart)) {   
                  PreparedStatement pst = srv.us.db.getDb().prepareStatement("SELECT * FROM victorina ORDER BY RAND() LIMIT 1");   
                  ResultSet rs = pst.executeQuery();   
                    while(rs.next()){   
                    Captcha = rs.getString(3);   
                    }   
                    rs.close();   
                    pst.close();   
                    String s = Captcha;   
                int a = srv.us.r.nextInt(s.length()+1);   
                int Answer = a+1;   
                s = s.substring(0,a)+srv.us.getCaptchaSimbol()+s.substring(a);   
                proc.mq.add(uin, "Система: Ответьте пожалуйсто на легкий вопрос.\n"   
                        + "Какои символ лишний в привиденном ниже слове.\n"   
                        + "Время на раздумье 5 минут, перед ответом подождите 20 секунд.\n"   
                        + "Слово: ["+s+"]\n"   
                        + "========\n"   
                        + "ПРИМЕЧАНИЕ: Посчитайте все буквы в слове, и напишите номер(место) "   
                        + "символа, который лишний в слове.");   
              comMap.put(uin, new CommandExtend(uin, mmsg, String.valueOf(Answer), v, 300000));   
              return;   
            }   
            uss.state = 1;   
            uss.basesn = proc.baseUin;   
            uss.localnick = lnick;   
            int id = srv.us.addUser(uss);   
            proc.mq.add(uin, "", 1);   
            Log.talk(uin + " Reg new user: " + mmsg);   
            srv.us.db.log(id, uin, "REG", lnick, uss.room);   
            srv.us.db.event(id, uin, "REG", 0, "", lnick);   
                Set<Integer> rid = new HashSet();   
                Enumeration<String> e = srv.cq.uq.keys();   
                while (e.hasMoreElements()) {   
                    String i = e.nextElement();   
                    Users us = srv.us.getUser(i);   
                    if (us.state == UserWork.STATE_CHAT) {   
                        rid.add(us.room);   
                    }   
                }   
                for (int i : rid) {   
                    srv.cq.addMsg("Система: Зарегистрировался новый пользователь " + uss.localnick + " [ID=" + uss.id + "]", uin, i);   
                }   
            proc.mq.add(uin, "Система: Вы зарегестрировались в лучшем чате, вход в чат по команде !чат.\n"   
                    + "Ваш ID = " + uss.id);   
            return;   
          }   
          String inv = (String)v.get(1);   
          if (inv.equals("")) {   
            Log.talk(uin + "Неправильный пароль: " + mmsg);   
            proc.mq.add(uin, "Система: Не правильный пароль.\n"   
                    + "Вход в чат по приглашениям вызван из-за флуда чата.");   

            return;   
          }   
          if (srv.us.testInvite(inv)) {   
            if (!srv.us.updateInvite(uin, inv)) {   
              proc.mq.add(uin, "Система: Ошибка регистрации.\n"   
                      + "Вход в чат по приглашениям вызван из-за флуда чата.");   

              Log.talk(uin + "Ошибка регистрации: " + mmsg);   
            } else {   
              if ((srv.getProps().getBooleanProperty("chat.useCaptcha")) && (!twoPart)) {   
                  PreparedStatement pst = srv.us.db.getDb().prepareStatement("SELECT * FROM victorina ORDER BY RAND() LIMIT 1");   
                  ResultSet rs = pst.executeQuery();   
                    while(rs.next()){   
                    Captcha = rs.getString(3);   
                    }   
                    rs.close();   
                    pst.close();   
                    String s = Captcha;   
                int a = srv.us.r.nextInt(s.length()+1);   
                int Answer = a+1;   
                s = s.substring(0,a)+srv.us.getCaptchaSimbol()+s.substring(a);   
                proc.mq.add(uin, "Система: Ответьте пожалуйсто на легкий вопрос.\n"   
                        + "Какои символ лишний в привиденном ниже слове.\n"   
                        + "Время на раздумье 5 минут, перед ответом подождите 20 секунд.\n"   
                        + "Слово: ["+s+"]\n"   
                        + "========\n"   
                        + "ПРИМЕЧАНИЕ: Посчитайте все буквы в слове, и напишите номер(место) "   
                        + "символа, который лишний в слове.");   
              comMap.put(uin, new CommandExtend(uin, mmsg, String.valueOf(Answer), v, 300000));   
              return;   
              }   
              uss.state = 1;   
              uss.basesn = proc.baseUin;   
              uss.localnick = lnick;   
              srv.us.updateUser(uss);   
              int id = srv.us.addUser(uss);   
              proc.mq.add(uin, "", 1);   
               Set<Integer> rid = new HashSet();   
                Enumeration<String> e = srv.cq.uq.keys();   
                while (e.hasMoreElements()) {   
                    String i = e.nextElement();   
                    Users us = srv.us.getUser(i);   
                    if (us.state == UserWork.STATE_CHAT) {   
                        rid.add(us.room);   
                    }   
                }   
                for (int i : rid) {   
                    srv.cq.addMsg("Система: Зарегистрировался новый пользователь " + uss.localnick + " [ID=" + uss.id + "]", uin, i);   
                }   
              srv.us.db.log(id, uin, "REG", lnick, uss.room);   
              srv.us.db.event(id, uin, "REG", 0, "", lnick);   
            }   
          } else {   
            Log.talk(uin + " Ошибка регистрации: " + mmsg);   
            proc.mq.add(uin, "Система: Ошибка регистрации, неверный пароль приглашения.\n"   
                    + "Вход в чат по приглашениям вызван из-за флуда чата.");   

            return;   
          }   
        } catch (Exception ex) {   
          ex.printStackTrace();   
          Log.talk(uin + " Ошибка регистрации: " + mmsg);   
          proc.mq.add(uin, "Система: Ошибка регистрации");   
        }   
      }

и еще в UserWork
Code
/**   
     * Капча   
     */   
        public String getCaptchaSimbol(){   
         String s = "!@#$%^&*()!№;:/\\|";   
            Random r = new Random();   
            String v="";   
            for(int i=0;i<1;i++){   
                v += s.charAt(r.nextInt(s.length()));   
            }   
            return v;   
        }


 
1ldarДата: Понедельник, 06.02.2012, 23:14 | Сообщение # 21

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Добавление/Удаление главного уина через команду
В ChatCommandProc
Code
commands.put("!добуин", new Cmd("!добуин","$c",145));
commands.put("!делуин", new Cmd("!делуин","$c",146));

case 146:
if (main.getBooleanProperty("del_admin_uin")) {
if(!isChat(proc,uin) && !psp.testAdmin(uin)) break;
command_delAdmin(proc, uin, parser.parseArgs(tmsg));
} else proc.mq.add(uin, "Эта команда закрыта");
break;

case 145:
if (main.getBooleanProperty("dob_admin_uin")) {
if(!isChat(proc,uin) && !psp.testAdmin(uin)) break;
commandAdmin(proc, uin, parser.parseArgs(tmsg));
} else proc.mq.add(uin, "Эта команда закрыта");
break;


Code
public void commandAdmin(IcqProtocol proc, String uin, Vector v){    
if(!isChat(proc,uin) && !psp.testAdmin(uin)) return;    
if (!auth(proc, uin, "admins")) return;    
try{    
String s = (String)v.get(0);    
if(s.trim().equals(" ")){    
proc.mq.add(uin,"Не верно введен uin! ( "+s+" )");    
return;    
}    
try {    
int i = Integer.parseInt(s);    
} catch(NumberFormatException e) {    
proc.mq.add(uin,"Не верно введен uin! ( "+s+" )\n Пиши цыфрами!");    
return;    
}    
String uin2 = s + ";" + (srv.getProps().getStringProperty("bot.adminUIN"));    
proc.mq.add(uin,"Уин успешно добавлен!");    
ChatProps.getInstance(srv.getName()).setStringProperty("bot.adminUIN", uin2);    
Manager.getInstance().getService(srv.getName()).getProps().save();    
} catch (Exception ex) {    
ex.printStackTrace();    
proc.mq.add(uin,ex.getMessage());    
}    
}
public void command_delAdmin(IcqProtocol proc, String uin, Vector v){    
if(!isChat(proc,uin) && !psp.testAdmin(uin)) return;    
if (!auth(proc, uin, "admins")) return;    
try{    
String s = (String)v.get(0);    
if(s.trim().equals(" ")){    
proc.mq.add(uin,"Не верно введен uin! ( "+s+" )");    
return;    
}    
try {    
int i = Integer.parseInt(s);    
} catch(NumberFormatException e) {    
proc.mq.add(uin,"Не верно введен uin! ( "+s+" )\n Пиши цыфрами!");    
return;    
}    
String uins = "";    
String sn = this.psp.getStringProperty("bot.adminUIN");    
String[] ss = sn.split(";");    
for (int ii = 0; ii < ss.length; ++ii) {    
if (!ss[ii].equals(s))uins =uins+ ss[ii]+";";    
}    
proc.mq.add(uin,"Уин успешно удален!");    
ChatProps.getInstance(srv.getName()).setStringProperty("bot.adminUIN", uins);    
Manager.getInstance().getService(srv.getName()).getProps().save();    
} catch (Exception ex) {    
ex.printStackTrace();    
proc.mq.add(uin,ex.getMessage());    
}    
}

В MainProps
Code
setBooleanProperty("del_admin_uin",false);    
new UserPreference(UserPreference.BOOLEAN_TYPE,"del_admin_uin","Включить команду !делуин",getBooleanProperty("del_admin_uin")),
setBooleanProperty("dob_admin_uin",false);    
new UserPreference(UserPreference.BOOLEAN_TYPE,"dob_admin_uin","Включить команду !добуин",getBooleanProperty("dob_admin_uin")),


 
Sma1LДата: Воскресенье, 19.02.2012, 20:05 | Сообщение # 22

Подполковник
Сообщений: 111
Репутация: 3
Награды: 0
BL:


Тюрьма (ver.1.0)
Автор: scano
Описание: Команда для запирания пользователя на время

Код:

ChatCommandProc:
Code
authObj.put("prison","Отправлять юзера в тюрьму(!тюрьма)");
commands.put("!тюрьма", new Cmd("!тюрьма","$n $n $s",??));
------------------------------------------------------------------------------------------------------

case ??:
commandPrison(proc, uin, parser.parseArgs(tmsg), mmsg);
break;
------------------------------------------------------------------------------------------------------

/**
* !тюрьма
* Оправка пользователя в тюрьму
*/
public void commandPrison(IcqProtocol proc, String uin, Vector v, String mmsg){
if(!isChat(proc, uin) && !psp.testAdmin(uin))
return;
if(!auth(proc, uin, "prison"))
return;
int i1 = (Integer)v.get(0);
int i2 = (Integer)v.get(1);
String r = (String)v.get(2);
Users u = srv.us.getUser(i1);
Users uss = srv.us.getUser(uin);
long t = System.currentTimeMillis() + (long)(i2 * 60000);
if(psp.testAdmin(u.sn)) {
proc.mq.add(uin, "Нельзя отправить пользователя в тюрьму, так как он владеет иммунитетом");
return;
}
if(uin.equals(u.sn)) {
proc.mq.add(uin, "Вы не можете запереть самого себя в тюрьме!");
return;
}
if(testPrison(u.sn)){
proc.mq.add(uin,"Вы не можете изменить время закрытия!");
return;
}
if(u.id == UserWork.STATE_NO_REG) {
proc.mq.add(uin, "Такого пользователя не существует!");
return;
}
if(u.state == UserWork.STATE_NO_CHAT) {
proc.mq.add(uin, "Пользователь не в чате");
return;
}
if(r.equals("") || r.equals(" ")) {
proc.mq.add(uin, "Укажите причину запирания");
return;
}
if(i2 > psp.getIntProperty("pris.pr.time") || i2 <= 0) {
proc.mq.add(uin, "Время заперания не может быть меньше 1 и больше " + psp.getIntProperty("pris.pr.time") + " мин.");
return;
} else {
srv.cq.addMsg("Пользователь [" + u.id + "] " + u.localnick + " был заперт в тюрьме на " + i2 + " мин.\nПо причине: " + r + ", пользователем [" + uss.id + "] " + srv.us.getUser(uin).localnick, u.sn, u.room);
u.room = psp.getIntProperty("pris.prRoom");
u.lastclosed = t;
srv.us.updateUser(u);
srv.cq.changeUserRoom(u.sn, psp.getIntProperty("pris.prRoom"));[/b]
srv.us.db.event(u.id, uin, "BANROOM", uss.id, "", " заперт в комнате |" + psp.getIntProperty("pris.prRoom") + "| - " + srv.us.getRoom(psp.getIntProperty("pris.prRoom")).getName() + " на " + i2 + " мин.\nПо причине: " + r + ", пользователем [" + uss.id + "] " + srv.us.getUser(uin).localnick);
srv.us.db.log(u.id, uin, "BANROOM", "Пользователь [" + u.id + "] " + u.localnick + " заперт в комнате |" + psp.getIntProperty("pris.prRoom") + "| - " + srv.us.getRoom(psp.getIntProperty("pris.prRoom")).getName() + " на " + i2 + " мин.", u.room);
srv.cq.addMsg("Пользователь [" + u.id + "] " + u.localnick + " переведен в тюрьму на " + i2 + " мин.\nПо причине: " + r + ", пользователем [" + uss.id + "] " + srv.us.getUser(uin).localnick, u.sn, u.room);
srv.getIcqProcess(u.basesn).mq.add(u.sn, "Ты был переведен в тюрьму на " + i2 + " мин.\nПо причине " + r + ", пользователем [" + uss.id + "] " + srv.us.getUser(uin).localnick);
proc.mq.add(uin, "Пользователь [" + u.id + "] " + u.localnick + " успешно заперт в комнате |" + psp.getIntProperty("pris.prRoom") + "| - " + srv.us.getRoom(psp.getIntProperty("pris.prRoom")).getName());
return;
}
}
------------------------------------------------------------------------------------------------------

public int testPrison(String sn) {
long tc = srv.us.getUser(sn).lastclosed;
long t = System.currentTimeMillis();
return tc <= t ? 0 : (int)(tc - t) / 60000;
}
------------------------------------------------------------------------------------------------------

if(testPrison(srv.us.getUser(uin).sn) > 0) {
proc.mq.add(uin, "Ты не можешь перейти в другую комнату!\nТебе осталось сидеть в тюрьме: " + testKickR(srv.us.getUser(uin).sn) + " мин.");
return;
}
------------------------------------------------------------------------------------------------------


SQL запрос:
Code
alter table `users` add `lastclosed` timestamp not null default '0000-00-00 00:00:00'


ChatProps:
Code
setIntProperty("pris.prRoom",-1);
setIntProperty("pris.pr.time",3000);
------------------------------------------------------------------------------------------------------

new UserPreference(UserPreference.CATEGORY_TYPE,"pris","Настройки тюрьмы",""),
new UserPreference(UserPreference.INTEGER_TYPE,"pris.prRoom","Комната тюрьмы",getIntProperty("pris.prRoom")),
new UserPreference(UserPreference.INTEGER_TYPE,"pris.pr.time","Максимальное время запирания (мин.)",getIntProperty("pris.pr.time")),


Добавлено (19.02.2012, 20:03)
---------------------------------------------
Зарплата (ver.1.0)
Автор: scano
Характеристика:
1) Вкл/выкл начисления зарплаты через ПУ
2) Автоматическое получение зарплаты после входа в чат
3) Интервал зарплаты можно установить в панеле управления
4) Уведомление о получение зарплаты (вкл/выкл в ПУ)

Код:

ChatCommandProc:
Code
/**
* Начисление зарплаты
*/
private void Salary(IcqProtocol proc, String uin) {
Users uss = srv.us.getUser(uin);
int i = psp.getIntProperty("sal.term.mon");
if(!psp.getBooleanProperty("sal.on.off")) return;
if(srv.us.getSalary(uss.id, i) >= 1) return;
try {
if(uss.group.equals("user") && psp.getBooleanProperty("sal.user.on.off")) {
uss.ball += psp.getIntProperty("sal.user.mon");
srv.us.updateUser(uss);
srv.us.db.event(uss.id, uin, "BALL", 0, "", "Зарплата получена");
if(psp.getBooleanProperty("sal.msg"))
proc.mq.add(uin,"Получена зарплата в размере " + psp.getIntProperty("sal.user.mon") + "ч$!\nВаш баланс: " + uss.ball + "ч$");
}
if(uss.group.equals("mod") && psp.getBooleanProperty("sal.mod.on.off")) {
uss.ball += psp.getIntProperty("sal.mod.mon");
srv.us.updateUser(uss);
srv.us.db.event(uss.id, uin, "BALL", 0, "", "Зарплата получена");
if(psp.getBooleanProperty("sal.msg"))
proc.mq.add(uin,"Получена зарплата в размере " + psp.getIntProperty("sal.mod.mon") + "ч$!\nВаш баланс: " + uss.ball + "ч$");
}
if(uss.group.equals("adm") && psp.getBooleanProperty("sal.adm.on.off")) {
uss.ball += psp.getIntProperty("sal.adm.mon");
srv.us.updateUser(uss);
srv.us.db.event(uss.id, uin, "BALL", 0, "", "Зарплата получена");
if(psp.getBooleanProperty("sal.msg"))
proc.mq.add(uin,"Получена зарплата в размере " + psp.getIntProperty("sal.adm.mon") + "ч$!\nВаш баланс: " + uss.ball + "ч$");
}
} catch(Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка " + ex.getMessage());
}
return;
}


UserWork:
Code
/**
* Зарплата (анализ последнего получения зарплаты)
*/
public int getSalary(int id, int i) {
String q = ("select count(*) from `events` where user_id=" + id + " and type='BALL' and (to_days( now( ) ) - to_days( time )) <"+i);
Vector v = db.getValues(q);
System.out.println(Integer.parseInt(((String[])v.get(0))[0]));
return Integer.parseInt(((String[])v.get(0))[0]);
}


ChatCommandProc (метод goChat):
Code
Salary(proc, uin);


ChatProps:
Code
setBooleanProperty("sal.on.off",true);
setBooleanProperty("sal.msg",false);
setBooleanProperty("sal.adm.on.off",true);
setBooleanProperty("sal.mod.on.off",true);
setBooleanProperty("sal.user.on.off",true);
setIntProperty("sal.term.mon",1);
setIntProperty("sal.adm.mon",5);
setIntProperty("sal.mod.mon",3);
setIntProperty("sal.user.mon",1);          
----------------------------------------------------------

new UserPreference(UserPreference.CATEGORY_TYPE,"sal","Настройки зарплаты",""),
new UserPreference(UserPreference.BOOLEAN_TYPE,"sal.on.off","Использовать зарплату в чате",getBooleanProperty("sal.on.off")),
new UserPreference(UserPreference.BOOLEAN_TYPE,"sal.msg","Уведомлять юзера о получении зарплаты",getBooleanProperty("sal.msg")),
new UserPreference(UserPreference.INTEGER_TYPE,"sal.term.mon","Интервал получения зарплаты (дн.)",getIntProperty("sal.term.mon")),
new UserPreference(UserPreference.BOOLEAN_TYPE,"sal.adm.on.off","Начислять зарплату для adm",getBooleanProperty("sal.adm.on.off")),
new UserPreference(UserPreference.INTEGER_TYPE,"sal.adm.mon","Зарплата adm (ч$)",getIntProperty("sal.adm.mon")),
new UserPreference(UserPreference.BOOLEAN_TYPE,"sal.mod.on.off","Начислять зарплату для mod",getBooleanProperty("sal.mod.on.off")),
new UserPreference(UserPreference.INTEGER_TYPE,"sal.mod.mon","Зарплата mod (ч$)",getIntProperty("sal.mod.mon")),
new UserPreference(UserPreference.BOOLEAN_TYPE,"sal.user.on.off","Начислять зарплату для user",getBooleanProperty("sal.user.on.off")),
new UserPreference(UserPreference.INTEGER_TYPE,"sal.user.mon","Зарплата user (ч$)",getIntProperty("sal.user.mon")),

Добавлено (19.02.2012, 20:05)
---------------------------------------------
Список забаненных (ver. 2.0)
Автор: scano
Характеристика:
1) Устранена ошибка вывода списка забаненных
Описание: Всем наверн известно, что при забанивании юзера и перезапуска чата, то список забаненных показывается пустым, пока не заглянешь в историю бана, вызвана эта ошибка связи с тем, что список забаненных не загружён в память чата. Я устранил данную ошибку и ввёл имитацию запуска истории.
Примечание: может слегка нагружать чат

Код:

ChatCommandProc:

Code
authObj.put("ban","Банить юзера(!бан)");
commands.put("!банлист", new Cmd("!банлист","",??));
==============================================

case ??:
proc.mq.add(uin, srv.us.BanList());
break;
==============================================


UserWork:
Code
/**
* !банлист - список забаненных
*/
public String BanList(){
String s = "Список забаненных:\n" +
"|ид|ник|»|админ|-|причина|\n";
getBanLoad();
Iterator <Users> it = uc.values().iterator();
while(it.hasNext()){
Users u = it.next();
if(u.state==STATE_BANNED) {
s += "[" + u.id + "] " + u.localnick + " » [" + getBanDesc(u.id) + "\n";
}
}
return s;
}
==============================================

public String getBanDesc(int id) {
Vector<String[]> v = db.getValues("SELECT user_id2, msg FROM `events` where type='BAN' and user_id='"+id+"'order by time desc");
if(v.size()==0) return "";
return getUser(Integer.parseInt(v.get(0)[0])).id + "] " + getUser(Integer.parseInt(v.get(0)[0])).localnick + " - " + v.get(0)[1];
}
==============================================

/**
* Загрузка списка забаненных
*/
public void getBanLoad() {
try {
PreparedStatement pst = db.getDb().prepareStatement("select time, user_id, user_id2, msg from events where type='BAN' order by time desc");
ResultSet rs = pst.executeQuery();
for(int i=0;i<20;i++){
if(rs.next()){
Log.getLogger(serviceName).talk(
"["+rs.getInt(2)+"]"+(rs.getInt(2)==0 ? "Admin" : getUser(rs.getInt(2)).localnick)+" "+
"["+rs.getInt(3)+"]"+(rs.getInt(3)==0 ? "Admin" : getUser(rs.getInt(3)).localnick)+" "+
rs.getString(4));
}
}
rs.close();
pst.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
==============================================


С уважением Sma1L

Сообщение отредактировал Andrey™ - Воскресенье, 19.02.2012, 20:04
 
GuTДата: Среда, 22.02.2012, 23:34 | Сообщение # 23

Сообщений: 31
Репутация: 303
Награды: 0
BL:


Очень интересно!:-)всем кто выкладывает спасибо!

 
ElectroteKДата: Четверг, 23.02.2012, 11:48 | Сообщение # 24

Сообщений: 12
Репутация: 0
Награды: 0
BL:


Дать еденицы

передать еденицы
в Users.java напшите public int fuel = 0; и в запросе на бд

Добавлено (23.02.2012, 11:48)
---------------------------------------------
Дать руду

передать руду
в Users.java создайте public int alcohol(на свое замените)

}[/spoiler]





ElectroteK ICQ: 646918614

Сообщение отредактировал ElectroteK - Четверг, 23.02.2012, 11:51
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: