Перейти к содержимому


Загс в чате !


Сообщений в теме: 124

#1 Arkadik007

    Специалист

  • Пользователи
  • PipPipPipPip
  • 372 сообщений
  • ГородКраснодар

Отправлено 07 Июнь 2009 - 13:49

Ребята хочу спросить кт осмодет или у кого есть скрипт такой чтобы в чате можно было замуж выходить пользователям как в галактике в чате! например !замуж ид 777 и чтобы всем оповешала и чтобы когда в чате они у них группа стояла замужем! :D

#2 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 14:41

/**
* Скрипт женить пользователя!
*/

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!женить", new Cmd("!женить","$n",39,name));
   cmd.addAuth("женить","Женить юзера");
   out="Ok";
   return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "женить")) return;

try{
   Vector v = cmd.getParser().parseArgs(msg);
int i1 = (Integer)v.get(0);
int i2 = (Integer)v.get(1);
Users u = cmd.srv.us.getUser(i1);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;

} else {
// Оповещаем чат
cmd.srv.cq.addMsg("Пользователь" + "[" + u.id + "]" + u.localnick + " женился*DRINK*!", u.sn, u.room);
u.room=i2;
cmd.srv.us.updateUser(u);
cmd.srv.cq.changeUserRoom(u.sn, i2);
// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"[" + u.id + "]" + u.localnick + " поздравляю:), ты женат!!!");

// Переводим в группу
cmd.srv.us.getUser(i1).group = "женат";
boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "женат") &&
cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
cmd.srv.us.clearCashAuth(u.id);

// Меняем ник     
String nick = u.localnick + "(женат)";
String oldNick = u.localnick;
u.localnick=nick;
cmd.srv.us.updateUser(u);
cmd.srv.us.db.event(u.id, uin, "REG", 0, "", nick);         

}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователь" + "[" + u.id + "]" + u.localnick + " поженился!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}

Ошибка:
[ERROR] - java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1


#3 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 07 Июнь 2009 - 14:50

Может по этому

Цитата

cmd.addCommand("!женить", new Cmd("!женить","$n",39,name));
А парсим два аргумента :)
int i1 = (Integer)v.get(0);
int i2 = (Integer)v.get(1);
P.S. Вроде как названия групп должны быть по английски :)

#4 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 14:53

мля точно... Ступил :roll:

#5 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 07 Июнь 2009 - 14:55

И вот это скорее всего ненужно, это же перевод в комнату i2 :)
u.room=i2;
cmd.srv.us.updateUser(u);
cmd.srv.cq.changeUserRoom(u.sn, i2);


#6 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:08

mmaximm спасибо.
Во рабочий!
/**
 * Скрипт женить пользователя!
 */



import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
	cmd.addCommand("!женить", new Cmd("!женить","$n",39,name));
	cmd.addAuth("женить","Запереть юзера в комнате");
	out="Ok";
	return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "женить")) return;

try{
	Vector v = cmd.getParser().parseArgs(msg);
int i1 = (Integer)v.get(0);
Users u = cmd.srv.us.getUser(i1);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;

} else {
// Оповещаем чат
cmd.srv.cq.addMsg("Пользователь" + "[" + u.id + "]" + u.localnick + " женился*DRINK*!", u.sn, u.room);

// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"[" + u.id + "]" + u.localnick + " поздравляю:), ты женат!!!");

// Переводим в группу 
cmd.srv.us.getUser(i1).group = "jenat";
boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "jenat") &&
cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
cmd.srv.us.clearCashAuth(u.id);

// Меняем ник      
String nick = u.localnick + "(jenat)";
String oldNick = u.localnick;
u.localnick=nick;
cmd.srv.us.updateUser(u);
cmd.srv.us.db.event(u.id, uin, "REG", 0, "", nick);         

}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователь" + "[" + u.id + "]" + u.localnick + " поженился!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
	


#7 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:13

/**
 * Скрипт  замужем!
 */



import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
	cmd.addCommand("!замуж", new Cmd("!зумуж","$n",39,name));
	cmd.addAuth("замуж","Запереть юзера в комнате");
	out="Ok";
	return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "зумуж")) return;

try{
	Vector v = cmd.getParser().parseArgs(msg);
int i1 = (Integer)v.get(0);
Users u = cmd.srv.us.getUser(i1);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;

} else {
// Оповещаем чат
cmd.srv.cq.addMsg("Пользователь" + "[" + u.id + "]" + u.localnick + " вышла замуж*DRINK*!", u.sn, u.room);

// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"[" + u.id + "]" + u.localnick + " поздравляю:), ты замужем!!!");

// Переводим в группу 
cmd.srv.us.getUser(i1).group = "zamujem";
boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "zamujem") &&
cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
cmd.srv.us.clearCashAuth(u.id);

// Меняем ник      
String nick = u.localnick + "(zamujem)";
String oldNick = u.localnick;
u.localnick=nick;
cmd.srv.us.updateUser(u);
cmd.srv.us.db.event(u.id, uin, "REG", 0, "", nick);         

}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователь" + "[" + u.id + "]" + u.localnick + " вышла замуж!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}


#8 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:24

/**
 * Скрипт развода!
 */


import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!развести", new Cmd("!развести","$n",39,name));
   cmd.addAuth("развод","Развод в чате");
   out="Ok";
   return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "развод")) return;

try{
   //Парсим строку аргументов
   Vector v = cmd.getParser().parseArgs(msg);
   //Согласно шаблону, аргумент должн быть числом
   int i1 = (Integer)v.get(0);
   // Находим юзера
   Users u = cmd.srv.us.getUser(i1);
   // Проверяем есть ли такой юзер ваще?
   if(u.id==0){
      proc.mq.add(uin,"Пользователь не найден");
      return;
   }
   // Возвращаем права
   if (cmd.qauth(proc,u.sn, "OpChat")) { cmd.srv.us.grantUser(i1, "achat");}
   // Переводим в группу усер
   cmd.srv.us.getUser(i1).group = "user";
   boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "user") &&
   cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
   cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
   cmd.srv.us.clearCashAuth(u.id);
   // Меняем ник если не надо стереть.
   String nick = u.localnick.replace("(jenat)","");
   String nick = u.localnick.replace("(zamujem)","");
String oldNick = u.localnick;
   u.localnick=nick;
   cmd.srv.us.updateUser(u);
   cmd.srv.us.db.event(u.id, uin, "REG", 0, "", nick);   
///////////////////////////////////
   if(u.state==UserWork.STATE_CHAT){
       cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Ты свободен.");
   }
   // Сообщаем об успешном выполнении команды
   cmd.srv.cq.addMsg("[" + u.id + "]" + u.localnick + " развелся(развелась)", u.sn, u.room);
   proc.mq.add(uin,"Пользователю " + "[" + u.id + "]" + u.localnick + " развелся(развелась).");
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}


#9 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:25

Скрипты написаны на основе скрипта banroom и ubanroom . :)

#10 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 07 Июнь 2009 - 15:25

ппц :D

#11 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:29

nek сказал:

ппц :D
:lol:

#12 mobinext2009

    Продвинутый пользователь

  • Специалисты
  • PipPipPip
  • 118 сообщений
  • ГородСатка

Отправлено 07 Июнь 2009 - 15:33

Когда меняеш ник можно и на русском делать.(женат)(замужем) Группу нельзя.
Только я не понял зачем вы в группу переводите? А если муж или жена админ или мод?

#13 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 15:34

Я так набросок сделал! Кому надо под себя сделает!

Цитата

Только я не понял зачем вы в группу переводите? А если муж или жена админ или мод?
Надо всеволишь убрать:
// Переводим в группу
cmd.srv.us.getUser(i1).group = "jenat";
boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "jenat") &&
cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
cmd.srv.us.clearCashAuth(u.id);


#14 Юрий

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 196 сообщений

Отправлено 07 Июнь 2009 - 16:11

Я вот так его передал, выкладываю жениху, другие по этому принципу:

Цитата

/**
* Скрипт женить пользователя!
*/

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!женить", new Cmd("!женить","$n",39,name));
out="Ok";
return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;

try{
Vector v = cmd.getParser().parseArgs(msg);
int i1 = (Integer)v.get(0);
Users uss = cmd.srv.us.getUser(uin);
Users u = cmd.srv.us.getUser(i1);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;

} else {
// Оповещаем чат
cmd.srv.cq.addMsg("Пользователь " + uss.localnick + "|" + uss.id + "|" + " женился на " + u.localnick + "|" + u.id + "| *DRINK*!", u.sn, u.room);

// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Поздравляю ты поженилась с " + uss.localnick + "|" + uss.id + "|");

}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Ты успешно женился на " + u.localnick + "|" + u.id + "|");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}


#15 Sushka

    Профи

  • Модераторы
  • 741 сообщений
  • ГородСмоленск

Отправлено 07 Июнь 2009 - 16:25

что-то нигде не спрашивается согласия невесты/жениха на свадьбу

#16 Bublee

    Пользователь

  • Пользователи
  • PipPip
  • 94 сообщений

Отправлено 07 Июнь 2009 - 16:33

идея прикольная, мне понравилась))) по счет согласия я тоже хотел написать. и заметил, что скрипт у fraer72 вроде, там надо давать права на все. он захожу в админку ставлю у всех галочки не сохраняет почему то, а вот скрипт Юрия очень даже ни чего. не надо давать права( про права что можно убрать
// Переводим в группу
cmd.srv.us.getUser(i1).group = "jenat";
boolean f = cmd.srv.us.setUserPropsValue(u.id, "group", "jenat") &&
cmd.srv.us.setUserPropsValue(u.id, "grant", "") &&
cmd.srv.us.setUserPropsValue(u.id, "revoke", "");
cmd.srv.us.clearCashAuth(u.id);
я понял). и еще заметил что нельзя поменять ник после этого((
 sd (17:25:06 7/06/2009)
Поздравляю ты поженилась с Артур|1|
(17:25:25 7/06/2009)
+аа
 sd (17:25:26 7/06/2009)
Список пользователей в чате
0 - Админ
2 - Патра(женат) [22]
1 - Артур [0]
 (17:26:02 7/06/2009)
!рег Матра
 sd (17:26:03 7/06/2009)
Вы не имеете доступа к данной команде.
подскажете может я чего не то делаю(( да и как можно узнать кто на ком женат\замужем тоже нету(((

#17 Юрий

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 196 сообщений

Отправлено 07 Июнь 2009 - 17:14

Bublee сказал:

и еще заметил что нельзя поменять ник после этого((
 sd (17:25:06 7/06/2009)
Поздравляю ты поженилась с Артур|1|
(17:25:25 7/06/2009)
+аа
 sd (17:25:26 7/06/2009)
Список пользователей в чате
0 - Админ
2 - Патра(женат) [22]
1 - Артур [0]
 (17:26:02 7/06/2009)
!рег Матра
 sd (17:26:03 7/06/2009)
Вы не имеете доступа к данной команде.
подскажете может я чего не то делаю(( да и как можно узнать кто на ком женат\замужем тоже нету(((
Нужно ставить полномочия в этой группе, кому что дано. Если у тебя этой группы не было изначально, то и любой командой ты не можешь воспользоваться. Я у себя перевод в группу вообще убрал, так как она не нужна.

#18 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 17:24

Вот еще один набросок пока без смены ника!
!свадьба id(невесты) id(жениха)
/**
* Скрипт свадьба пользователя!
*/


import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!свадьба", new Cmd("!свадьба","$n $n",39,name));
   out="Ok";
   return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;


try{
   Vector v = cmd.getParser().parseArgs(msg);
//невеста
int i1 = (Integer)v.get(0);
//жених
int i2 = (Integer)v.get(1);
Users uss = cmd.srv.us.getUser(i2);
Users u = cmd.srv.us.getUser(i1);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;

} else {
// Оповещаем чат
cmd.srv.cq.addMsg("У пользователей " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + "свадьба*DRINK*!", u.sn, u.room);
cmd.srv.cq.addMsg("У пользователей " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + "свадьба*DRINK*!", uss.sn, uss.room);
// Оповещаем юзера
cmd.srv.getIcqProcess(uss.basesn).mq.add(uss.sn,"Поздравляю у тебя свадьба, твоя невеста " + u.localnick + "[" + u.id + "]");
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Поздравляю у тебя свадьба, твой жених  " + uss.localnick + "[" + uss.id + "]");

  
}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователи " + uss.localnick + "[" + uss.id + "] " + " и "  + u.localnick + "[" + u.id + "] " +  " обвенчались!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
   


#19 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 17:48

Цитата

да и как можно узнать кто на ком женат\замужем тоже нету(((
String nick = uss.localnick + "(замужем)" + " за " + u.localnick;
String nick = u.localnick + "(женат)" + " на " + uss.localnick;

#20 fraer72

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 1 429 сообщений

Отправлено 07 Июнь 2009 - 18:08

Не могу разобраться со сменной ника!
// Меняем ник у жениха     
String nick = u.localnick + "(женат)" + " на " + uss.localnick;
String oldNick = u.localnick;
u.localnick=nick;
cmd.srv.us.updateUser(u);
cmd.srv.us.db.event(u.id, uin , "REG", 0, "", nick);  
  // Меняем ник у невесты
String nick1 = uss.localnick + "(замужем)" + " за " + u.localnick;
String oldNick1 = uss.localnick;
u.localnick=nick1;
cmd.srv.us.updateUser(uss);
cmd.srv.us.db.event(uss.id, uin , "REG", 1, "", nick1); 
}
И в чате херь какая то...

Цитата

ПРОБНЫЙ (17:07:15 7/06/2009)
Комната: 0 -
Тема:
Список пользователей
0 - Админище
1 - НЕВЕСТА(замужем) за Саня(женат) на НЕВЕСТА [0]
2 - НЕВЕСТА [0]
:(





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей