Скиньте скрипт чтобы жених делал предложение невесте и у неё варианты да/нет )))Пожалуйста)) :!:


Загс в чате !
Автор Arkadik007, 07 Июн 2009 13:49
Сообщений в теме: 124
#122 Zloff
Отправлено 30 Сентябрь 2010 - 19:31
на тебе класс
Скрытый текст
package ru.jimbot.modules.chat; /** * public Wedding wed; * wed = new Wedding(this); * authObj.put("wedding","свадьба и развод"); * if ( wed.Parse(proc, uin, tmsg)) return; * * setIntProperty("mon.svadba",1000); * setBooleanProperty("svadba.sex",false); * * new UserPreference(UserPreference.CATEGORY_TYPE,"wedding", "Настройки Свадьбы"), * new UserPreference(UserPreference.BOOLEAN_TYPE,"svadba.sex","Разрешить однополые браки:",getBooleanProperty("svadba.sex"),true), * new UserPreference(UserPreference.INTEGER_TYPE,"mon.svadba","Стоимость проведения свадьбы:",getIntProperty("mon.svadba"),true), * * * @author Zloff */ import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; import ru.jimbot.modules.Cmd; import ru.jimbot.modules.CommandParser; import ru.jimbot.protocol.IcqProtocol; public class Wedding { private HashMap<String, Cmd> commands = new HashMap<String, Cmd>(); private CommandParser parser; private ChatCommandProc cmd; private HashMap<String, InfoMap> InfoMap; private long TIME = 5*60000; private ConcurrentHashMap <String,String> InterCom_CMD; private ConcurrentHashMap <String,Integer> InterCom; private ConcurrentHashMap <String,Integer> User_ID; public Wedding(ChatCommandProc c){ parser = new CommandParser(commands); cmd = c; InfoMap = new HashMap<String, InfoMap>(); InterCom_CMD = new ConcurrentHashMap<String, String>(); InterCom = new ConcurrentHashMap<String, Integer>(); User_ID = new ConcurrentHashMap<String, Integer>(); init(); } public class InfoMap { private String uin; private long vremia; private String msg; private String cmd; public InfoMap(String _uin, String _cmd, String _msg, long expire) { vremia = System.currentTimeMillis() + expire; uin = _uin; cmd = _cmd; msg = _msg; } public String getMsg(){return msg;} public String getUin() {return uin;} public String getCmd() {return cmd;} public boolean isExpire() {return System.currentTimeMillis()>vremia;} } private void init() { commands.put("!замуж", new Cmd("!замуж", "", 1)); commands.put("!развод",new Cmd("!развод","",2)); } public boolean Parse(IcqProtocol proc, String uin, String mmsg) { String tmsg = mmsg.trim(); int tp = 0; if(InfoMap.containsKey(uin)){ if(!InfoMap.get(uin).isExpire()){ tp = parser.parseCommand(InfoMap.get(uin).getCmd()); }else { tp = parser.parseCommand(tmsg); InterCom.remove(uin); InterCom_CMD.remove(uin); InfoMap.remove(uin); } }else tp = parser.parseCommand(tmsg); int tst=0; if(tp<0) tst=0; else tst = tp; boolean f = true; switch (tst){ case 1: wedding(proc, uin, mmsg); break; case 2: commandDivorce(proc, uin, mmsg); break; default: f = false; } return f; } private void wedding(IcqProtocol proc, String uin, String mmsg){ if(!cmd.isChat(proc,uin)) return; if(!cmd.auth(proc,uin, "wedding")) return; try{ if(InterCom.get(uin)==null){ InterCom.put(uin, 1); } if(InterCom.get(uin) == 1){ WEDID(proc, uin, mmsg); } if(InterCom.get(uin) == 2){ WEDTEST(proc, uin, mmsg); } if(InterCom.get(uin) == 3){ WEDTESTG(proc, uin, mmsg); } if(InterCom.get(uin) == 0){ InterCom.remove(uin); InfoMap.remove(uin); InterCom_CMD.remove(uin); } }catch (Exception ex){ ex.printStackTrace(); proc.mq.add(uin,"При выполнении возникла ошибка: " + ex.getMessage()); InterCom.remove(uin); InterCom_CMD.remove(uin); } } private void WEDID(IcqProtocol proc, String uin, String mmsg){ Users uss = cmd.srv.us.getUser(uin); int nn = cmd.srv.us.count() -1; int list = 0; boolean WEDID = false; if(InfoMap.containsKey(uin)){ try{ list = Integer.parseInt(mmsg); } catch(NumberFormatException e){ proc.mq.add(uin,"Укажите id пользователя.Для выхода наберите 0(ноль)"); return; } Users us = cmd.srv.us.getUser(list); if(list !=0){ if(list<1 || list>nn){ proc.mq.add(uin, "Пользователь несуществует"); return; } if(uss.rs != 0){ proc.mq.add(uin,"Ты уже состоишь в браке!"); return; } if(us.id == uss.id){ proc.mq.add(uin,"На себе нельзя жениться или выйти замуж"); return; } if(cmd.isBan(us.sn)){ proc.mq.add(uin, "Пользователь забанен"); return; } if(us.rs !=0){ proc.mq.add(uin,"Пользователь уже состоит в браке"); return; } if (us.state!=UserWork.STATE_CHAT){ proc.mq.add(uin,"Пользователя нет в чате!"); return; } if (us.room !=uss.room){ proc.mq.add(uin,"Вы должны быть в одной комнате"); return; } if(uss.gender.equalsIgnoreCase("")){ proc.mq.add(uin,"У вас незаполнена анкета"); return; } if(us.gender.equalsIgnoreCase("")){ proc.mq.add(uin,"У пользоавтеля незаполнена анкета"); return; } if (!cmd.psp.getBooleanProperty("svadba.sex") && us.gender.equalsIgnoreCase(uss.gender)){ proc.mq.add(uin,"Однополые браки запрещены"); return; } if(cmd.psp.getIntProperty("mon.svadba")>(us.money + uss.money)){ proc.mq.add(uin,"У вас нехватает денег на свадьбу. Необходимо " + cmd.psp.getIntProperty("mon.svadba") + " " + cmd.psp.getStringProperty("chat.valuta")); return; } } WEDID = true; InfoMap.remove(uin); } if(!WEDID){ InterCom_CMD.put(uin, "!замуж"); proc.mq.add(uin, "Укажите id пользователя.Для выхода наберите 0(ноль)"); InfoMap.put(uin, new InfoMap(uin, InterCom_CMD.get(uin), mmsg, TIME)); return; } if(list==0){ proc.mq.add(uin, "Попробуйте позже"); }else{ Users us = cmd.srv.us.getUser(list); User_ID.put(us.sn, uss.id); if (us.gender.equalsIgnoreCase(uss.gender)){ InterCom.put(us.sn, 3); proc.mq.add(uin,"Вы точно уверены что хотите заключить однополый брак? Но уже позно, предложение отправлено..."); WEDTESTG(cmd.srv.getIcqProcess(us.basesn), us.sn, mmsg); }else{ InterCom.put(us.sn, 2); proc.mq.add(uin, "Предложение отправлено..."); WEDTEST(cmd.srv.getIcqProcess(us.basesn), us.sn, mmsg); } } InterCom.put(uin, 0); } private void WEDTEST(IcqProtocol proc, String uin, String mmsg){ Users uss = cmd.srv.us.getUser(uin); int i = User_ID.get(uin); Users us = cmd.srv.us.getUser(i); String msg = ""; boolean WEDTEST = false; if(InfoMap.containsKey(uin)){ try{ msg = mmsg; } catch(NumberFormatException e){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } if(!TestOtvet(msg)){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } WEDTEST = true; InfoMap.remove(uin); } if(!WEDTEST){ InterCom_CMD.put(uin, "!замуж"); if(uss.gender.equalsIgnoreCase("женский")){ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложил вам руку и сердце в обмен на груди и бедра." + "\nОтвет должен быть: Да или Нет"); }else{ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложила вам груди и бедра в обмен на кошелек" + "\nОтвет должен быть: Да или Нет"); } InfoMap.put(uin, new InfoMap(uin, InterCom_CMD.get(uin), mmsg, TIME)); return; } if(msg.equalsIgnoreCase("нет")){ cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Вам отказали в браке"); }else{ if(uss.gender.equalsIgnoreCase("женский")){ us.rs = 1; us.rsid = uss.id; us.rsnick = uss.localnick; uss.rs = 2; uss.rsid = us.id; uss.rsnick = us.localnick; }else{ uss.rs = 1; uss.rsid = us.id; uss.rsnick = us.localnick; us.rs = 2; us.rsid = uss.id; us.rsnick = uss.localnick; } int k = cmd.psp.getIntProperty("mon.svadba"); if(us.money < k){ int g = us.money; int m = us.money-g; us.money = m; int r = k - g; int ms = uss.money - r; uss.money = ms; }else{ int z = us.money - k; us.money = z; } cmd.srv.us.updateUser(us); cmd.srv.us.updateUser(uss); cmd.srv.cq.addMsg("Пользователи " + us.localnick + " и " + uss.localnick + " обвенчались. Бухаем*DRINK*", "", uss.room); } InterCom.put(uin, 0); } private void WEDTESTG(IcqProtocol proc, String uin, String mmsg){ Users uss = cmd.srv.us.getUser(uin); int i = User_ID.get(uin); Users us = cmd.srv.us.getUser(i); String msg = ""; boolean WEDTEST = false; if(InfoMap.containsKey(uin)){ try{ msg = mmsg; } catch(NumberFormatException e){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } if(!TestOtvet(msg)){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } WEDTEST = true; InfoMap.remove(uin); } if(!WEDTEST){ InterCom_CMD.put(uin, "!замуж"); if(uss.gender.equalsIgnoreCase("женский")){ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложива вам заключить лезбийский брак" + "\nОтвет должен быть: Да или Нет"); }else{ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложил вам заключить гей брак" + "\nОтвет должен быть: Да или Нет"); } InfoMap.put(uin, new InfoMap(uin, InterCom_CMD.get(uin), mmsg, TIME)); return; } if(msg.equalsIgnoreCase("нет")){ cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Вам отказали в браке"); }else{ if(uss.gender.equalsIgnoreCase("женский")){ us.rs = 3; us.rsid = uss.id; us.rsnick = uss.localnick; uss.rs = 3; uss.rsid = us.id; uss.rsnick = us.localnick; }else{ uss.rs = 4; uss.rsid = us.id; uss.rsnick = us.localnick; us.rs = 4; us.rsid = uss.id; us.rsnick = uss.localnick; } int k = cmd.psp.getIntProperty("mon.svadba"); if(us.money < k){ int g = us.money; int m = us.money-g; us.money = m; int r = k - g; int ms = uss.money - r; uss.money = ms; }else{ int z = us.money - k; us.money = z; } cmd.srv.us.updateUser(us); cmd.srv.us.updateUser(uss); cmd.srv.cq.addMsg("Куда катиться мир!Пользователи " + us.localnick + " и " + uss.localnick + " заключили однополый брак. Бухаем*DRINK*", "", uss.room); } InterCom.put(uin, 0); } public void commandDivorce(IcqProtocol proc, String uin, String mmsg){ if(!cmd.isChat(proc,uin)) return; if(!cmd.auth(proc,uin, "wedding")) return; try{ if(InterCom.get(uin)==null){ InterCom.put(uin, 1); } if(InterCom.get(uin) == 1){ DIVIRSE(proc, uin, mmsg); } if(InterCom.get(uin) == 2){ DEWTEST(proc, uin, mmsg); } if(InterCom.get(uin) == 0){ InterCom.remove(uin); InfoMap.remove(uin); InterCom_CMD.remove(uin); } }catch (Exception ex){ ex.printStackTrace(); proc.mq.add(uin,"При выполнении возникла ошибка"); InterCom.remove(uin); InterCom_CMD.remove(uin); } } public void DIVIRSE(IcqProtocol proc, String uin, String mmsg){ Users uss = cmd.srv.us.getUser(uin); int rs = uss.rsid; Users us = cmd.srv.us.getUser(rs); if(uss.rs == 0){ proc.mq.add(uin,"Вы не состоите в браке"); }else{ if(us.state!=UserWork.STATE_CHAT){ proc.mq.add(uin,"Ваша вторая половинка сейчас не в чате"); }else{ if(uss.room != us.room){ proc.mq.add(uin,"Вы должны быть в одной комнате"); }else{ User_ID.put(us.sn, uss.id); InterCom.put(us.sn, 2); proc.mq.add(uin,"Развод в процессе..."); DEWTEST(cmd.srv.getIcqProcess(us.basesn), us.sn, mmsg); } } } InterCom.put(uin, 0); } private void DEWTEST(IcqProtocol proc, String uin, String mmsg){ Users uss = cmd.srv.us.getUser(uin); int i = User_ID.get(uin); Users us = cmd.srv.us.getUser(i); String msg = ""; boolean DEWTEST = false; if(InfoMap.containsKey(uin)){ try{ msg = mmsg; } catch(NumberFormatException e){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } if(!TestOtvet(msg)){ proc.mq.add(uin,"Ответ должен быть ДА или НЕТ"); return; } DEWTEST = true; InfoMap.remove(uin); } if(!DEWTEST){ InterCom_CMD.put(uin, "!развод"); proc.mq.add(uin, us.localnick + "|" + us.id + "| хочет развестись с вами." + "\nОтвет должен быть: Да или Нет"); InfoMap.put(uin, new InfoMap(uin, InterCom_CMD.get(uin), mmsg, TIME)); return; } if(msg.equalsIgnoreCase("нет")){ us.rs = 0; us.rsid = 0; us.rsnick = ""; uss.rs = 0; uss.rsid = 0; uss.rsnick = ""; }else{ us.rs = 0; us.rsid = 0; us.rsnick = ""; uss.rs = 0; uss.rsid = 0; uss.rsnick = ""; int sm = (us.money+uss.money)/2; us.money = sm; uss.money = sm; } cmd.srv.us.updateUser(us); cmd.srv.us.updateUser(uss); if (us.gender.equalsIgnoreCase(uss.gender)){ cmd.srv.cq.addMsg("Бухаем *DRINK* однополый брак пользователей " + us.localnick + " и " + uss.localnick + " распался", "", uss.room); }else{ cmd.srv.cq.addMsg("Пользователи " + us.localnick + " и " + uss.localnick + " развелись", "", uss.room); } InterCom.put(uin, 0); } public boolean TestOtvet( String msg ) { if(msg.equalsIgnoreCase( "да" ) || msg.equalsIgnoreCase( "нет" )){ return true; }else{ return false; } } }
#123 REDOSS
Отправлено 30 Сентябрь 2010 - 20:49
if(uss.gender.equalsIgnoreCase("женский")){ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложива вам заключить лезбийский брак" + "\nОтвет должен быть: Да или Нет"); }else{ proc.mq.add(uin, us.localnick + "|" + us.id + "| предложил вам заключить гей брак" + "\nОтвет должен быть: Да или Нет"); }



Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых пользователей
Ответить цитируемым сообщениям Очистить