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


Бутылочка


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

#1 alikanpelikan

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

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

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

Еще одна игра. Наверно помините игру бутылочка. Седят в кругу мальчики и девочки крутят буьылку на кого покажет того целует. если паца с пацаном то руку пожимают

Предлагаю следующее
Юзер набирает !бутылка. Затем скрипт выбирает случайного пользователя и пишет готовые тексты из файла. Типа ударить ловатой, подцеловать, просить руки.

Типа : User1 тепрь вы должны отсасать у user2. или типа пригласить на чашечку кофе. Главное чтобы словарь был большим

#2 fraer72

    Профи

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

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

Вот те пример, доделай оповешение в чат.
/**
* Скрипт бутылочка
*
*/


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

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

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


try {
   //Считываем текст
Users uss = cmd.srv.us.getUser(uin);
String s = cmd.psp.loadText("./text/butilochka.txt");
   //Разбиваем текст на куски, в качестве разделителя будем использовать 
   String[] ss = s.split("");
   int R = (int) ((Math.random()*ss.length));



   proc.mq.add(uin,uss.localnick + "[" + uss.id + "] " + "должен >> "+ss[R]);
} catch (Exception ex) {
   ex.printStackTrace();
   Log.talk("Error save msg: " + ex.getMessage());
   proc.mq.add(uin,"Обшибка " + ex.getMessage());
}
Не забудь добавить фаил в /text/butilochka.txt , который прекряплен снизу.

Прикрепленные файлы

  • Прикрепленный файл  butilochka.rar   175байт   304 Количество загрузок:


#3 HubMasster

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

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • ГородКумертау

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

А можно сделать так чтобы играть можно было бы в одной только комнате?

#4 mobinext2009

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

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

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

HubMasster сказал:

А можно сделать так чтобы играть можно было бы в одной только комнате?
if(uss.room!=10)
{
proc.mq.add(uin,"играть можно только в 10 комнате");
return;
}

#5 fraer72

    Профи

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

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

Вот доработынный скрипт! ТЕСТИМ.
/**
* Скрипт игры в бутылочку.
*/



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{
String s = cmd.psp.loadText("./text/butilochka.txt");
String[] ss = s.split("");
int R = (int) ((Math.random()*ss.length));
Vector v = cmd.getParser().parseArgs(msg);
int i1 = (Integer)v.get(0);
Users u = cmd.srv.us.getUser(i1);
Users uss = cmd.srv.us.getUser(uin);
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;
}
// Оповещаем чат
if(uss.room!=10)
{
proc.mq.add(uin,"Играть можно только в 10 комнате");
return;
}
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "] " + " должен >> " +ss[R]+ " пользователя "  + u.localnick + "[" + u.id + "]", u.sn, u.room);
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "] " + " должен >> " +ss[R]+ " пользователя "  + u.localnick + "[" + u.id + "]", uss.sn, uss.room);
// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Пользователь  " + uss.localnick + "[" + uss.id + "]" + " должен "+ss[R]+ "тебя(тебе)");

proc.mq.add(uin,"Ты  должен >> "+ss[R]+  " пользователя " + u.localnick  + "[" + u.id + "]");
  
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
} 
Добавил фразы в butilochka.txt

Прикрепленные файлы

  • Прикрепленный файл  butilochka.rar   225байт   354 Количество загрузок:


#6 mobinext2009

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

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

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

Ностальгия по irc?:-D
Еще бы сделать чтоб из тех кто сейчас в комнате выбирался случайный юзер.
Посмотреть из скрипта +тут

#7 mmaximm

    Эх...

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

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

gg[k] - это ID случайого пользователя в комнате
String g="";
	Enumeration e = cmd.srv.cq.uq.keys();
	while(e.hasMoreElements()){
		String i = e.nextElement();
		Users us = cmd.srv.us.getUser(i);
		if(us.state==UserWork.STATE_CHAT){
			if(us.room==uss.room) {
				g +=us.id + ";";
			}
		} 
	}
	String[] gg = g.split(";");
	int k = (int) ((Math.random()*gg.length));


#8 fraer72

    Профи

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

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

/**
* Скрипт игры в бутылочку.
*/



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("!бутылочка","",39,name));
   out="Ok";
   return;
}

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


try{
String g="";
   Users uss = cmd.srv.us.getUser(uin);
Users u = cmd.srv.us.getUser(uin);
Enumeration e = cmd.srv.cq.uq.keys();
   while(e.hasMoreElements()){
String i = e.nextElement();
Users us = cmd.srv.us.getUser(i);
if(us.state==UserWork.STATE_CHAT){
         if(us.room==uss.room) {
            g += us.id +  ";";
         }
      }
   }
   String[] gg = g.split(";");
   int k = (int) ((Math.random()*gg.length));
String s = cmd.psp.loadText("./text/butilochka.txt");
String[] ss = s.split("");
int R = (int) ((Math.random()*ss.length));
Users uss = cmd.srv.us.getUser(uin);
if(uss.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(uss.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;
}
// Оповещаем чат
if(uss.room!=10)
{
proc.mq.add(uin,"Играть можно только в 10 комнате");
return;
}
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "] " + " должен >> " +ss[R]+ " пользователя(ю) "  +gg[k], uss.sn, uss.room);



proc.mq.add(uin,"Ты  должен >> "+ss[R]+  " пользователя(ю) " +gg[k]);
  
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}

Цитата

sania (20:30:45 8/06/2009)
!бутылочка
ПРОБНЫЙ
Ты должен >>
Чмокнуть пользователя(ю) 2
ПРОБНЫЙ
БУТЫЛОЧКА>> Пользователь тест[1] должен >>
Чмокнуть пользователя(ю) 2
Как сделать что бы с случайным идом шел его ник?

#9 mmaximm

    Эх...

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

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

Users u = cmd.srv.us.getUser(gg[k]);
Ну а дальше как обычно :) u.localnick или что там надо уже :)

#10 HubMasster

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

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • ГородКумертау

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

Вот я сижу в 10 комнате, а второй пользователь сидит в 0 комнате, я даю команду !бутылочка ид он присылает всей 0 комнате, а как сделать чтоб только в 10 сообщения были?

#11 fraer72

    Профи

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

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

// Оповещаем чат
if(uss.room!=999)
{
proc.mq.add(uin,"Играть можно только в 999 комнате");
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " + u.localnick, uss.sn, uss.room);
return;
}
Попробуй так!

#12 fraer72

    Профи

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

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

mmaximm спасибо! Вот готовый на 100% скрипт.
/**
* Скрипт игры в бутылочку.
*/



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("!бутылочка","",39,name));
   out="Ok";
   return;
}

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


try{
String g="";
   Users uss = cmd.srv.us.getUser(uin);
Enumeration e = cmd.srv.cq.uq.keys();
   while(e.hasMoreElements()){
String i = e.nextElement();
Users us = cmd.srv.us.getUser(i);
if(us.state==UserWork.STATE_CHAT){
         if(us.room==uss.room) {
            g += us.id +  ";";
         }
      }
   }
   String[] gg = g.split(";");
   int k = (int) ((Math.random()*gg.length));
String s = cmd.psp.loadText("./text/butilochka.txt");
String[] ss = s.split("");
int R = (int) ((Math.random()*ss.length));
Users u = cmd.srv.us.getUser(Integer.parseInt(gg[k]));
Users uss = cmd.srv.us.getUser(uin);
if(uss.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(uss.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;
}
// Оповещаем чат
if(uss.room!=999)
{
proc.mq.add(uin,"Играть можно только в 999 комнате");
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " +gg[k] + u.localnick, uss.sn, uss.room);
return;
}



proc.mq.add(uin,"Ты  должен >> "+ss[R]+  " пользователя(ю) " +gg[k] + u.localnick);
 
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
Незабываем про butilochka.txt :!:

#13 alikanpelikan

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

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

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

дайте плиз готовыфй скрипт

#14 dxdr

    Специалист

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

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

ты чуть вверх посмотри :o

#15 fraer72

    Профи

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

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

Меняю
g += us.id +  ";";
на
g += "(" + us.id + ")" +  ";";
Ошибка:
[ERROR] - java.lang.NumberFormatException: For input string: "(2)"
Как исправить :?:

#16 mmaximm

    Эх...

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

Отправлено 09 Июнь 2009 - 00:21

Конечно ошибка будет так как " (2) " это не число, а строка, там менять не надо. Если правильно понял, то ты хочешь чтоб ид выводилось в скобках, так это надо делать в месте где идет вывод сообщения:)

#17 fraer72

    Профи

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

Отправлено 09 Июнь 2009 - 00:22

mmaximm сказал:

Конечно ошибка будет так как " (2) " это не число, а строка, там менять не надо. Если правильно понял, то ты хочешь чтоб ид выводилось в скобках, так это надо делать в месте где идет вывод сообщения:)
Ггг точно...

#18 alexsiti

    Новичок

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

Отправлено 09 Июнь 2009 - 02:20

fraer72 сказал:

mmaximm спасибо! Вот готовый на 100% скрипт.
/**
* Скрипт игры в бутылочку.
*/



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("!бутылочка","",39,name));
   out="Ok";
   return;
}

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


try{
String g="";
   Users uss = cmd.srv.us.getUser(uin);
Enumeration e = cmd.srv.cq.uq.keys();
   while(e.hasMoreElements()){
String i = e.nextElement();
Users us = cmd.srv.us.getUser(i);
if(us.state==UserWork.STATE_CHAT){
         if(us.room==uss.room) {
            g += us.id +  ";";
         }
      }
   }
   String[] gg = g.split(";");
   int k = (int) ((Math.random()*gg.length));
String s = cmd.psp.loadText("./text/butilochka.txt");
String[] ss = s.split("");
int R = (int) ((Math.random()*ss.length));
Users u = cmd.srv.us.getUser(Integer.parseInt(gg[k]));
Users uss = cmd.srv.us.getUser(uin);
if(uss.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(uss.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;
}
// Оповещаем чат
if(uss.room!=999)
{
proc.mq.add(uin,"Играть можно только в 999 комнате");
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " +gg[k] + u.localnick, uss.sn, uss.room);
return;
}



proc.mq.add(uin,"Ты  должен >> "+ss[R]+  " пользователя(ю) " +gg[k] + u.localnick);
 
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
Незабываем про butilochka.txt :!:

почему то не выдает
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " +gg[k] + u.localnick, uss.sn, uss.room);
в чат

#19 Xteam

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

  • Пользователи
  • PipPipPip
  • 123 сообщений
  • ГородБрянск

Отправлено 09 Июнь 2009 - 02:38

alexsitiЗамени
// Оповещаем чат
if(uss.room!=999)
{
proc.mq.add(uin,"Играть можно только в 999 комнате");
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " +gg[k] + u.localnick, uss.sn, uss.room);
return;
}
на

Цитата

if(uss.room!=999)
{
proc.mq.add(uin,"Играть можно только в 999 комнате");
return;
}
// Оповещаем чат
cmd.srv.cq.addMsg("БУТЫЛОЧКА>> Пользователь " + uss.localnick + "[" + uss.id + "]" + " должен " +ss[R]+ " пользователя(ю) " +gg[k] + u.localnick, uss.sn, uss.room);


#20 Xteam

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

  • Пользователи
  • PipPipPip
  • 123 сообщений
  • ГородБрянск

Отправлено 09 Июнь 2009 - 03:20

Да и ещё..не могу разобратся как сделать что бы самому себе ничего не должен был делать....





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

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