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


Привод людей в чат


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

#1 ApiAM

    Специалист

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

Отправлено 19 Март 2010 - 22:57

У меня возникла мыслишка...
Вот все говорят я привел в чат 100 человек... другой я 200 и каждый из них требует за это денег(виртуальных естественно :wink: )
так вот...
Если подправить commandReg
            String refer = (String)v.get(1);
            Users u = srv.us.getUser(refer);
            Users uss = srv.us.getUser(uin);
            int q = psp.getIntProperty("refer.money");
            u.bal += q;
            proc.mq.add(uin, "Вас привёл пользователь " + u.localnick);
            proc.mq.add(refer, "Вы привели нового человека! Получите бонус в размере" + q + " руб." + "\nВ кошельке " + u.bal +" руб.");
            srv.us.updateUser(uss);

Пример:

Цитата

!регистрация Вася 1
чат:
Вас привёл пользователь ГЛАВА

в свою очередь пользователю с ид 1 приходит:
Вы привели нового человека! Получите бонус в размере 10000 руб.
В кошельке теперь 1010000 руб.

Будет ли такое работать?

Сообщение отредактировал ApiAM: 19 Март 2010 - 22:57


#2 HellFaust

    Живодёр

  • Модераторы
  • 1 823 сообщений
  • ГородMidian

Отправлено 19 Март 2010 - 23:06

не будет...
String refer = (String)v.get(1);
вообще то под номером 1 в векторе идет код (если рега по коду)
Делай проверки...

Сообщение отредактировал HellFaust: 19 Март 2010 - 23:06


#3 ApiAM

    Специалист

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

Отправлено 20 Март 2010 - 00:25

кода нету... у мну в реге только 0 вектор используется...

#4 mmaximm

    Эх...

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

Отправлено 20 Март 2010 - 00:35

Почему нет? Будет конечно же. Прибавляешь
u.bal += q;
а обновляешь
srv.us.updateUser(uss);


#5 HellFaust

    Живодёр

  • Модераторы
  • 1 823 сообщений
  • ГородMidian

Отправлено 20 Март 2010 - 00:55

Просмотр сообщенияApiAM (20 Март 2010 - 00:25) писал:

кода нету... у мну в реге только 0 вектор используется...
Если нету приглашений то будет работать (mmaximm написал чего не хватало)... если с приглашением то еще дописать немного надо...

#6 ApiAM

    Специалист

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

Отправлено 20 Март 2010 - 02:31

Ну ё моё)) Там же есть эти строчки))

#7 HellFaust

    Живодёр

  • Модераторы
  • 1 823 сообщений
  • ГородMidian

Отправлено 20 Март 2010 - 02:38

вот именно что эти... а где обновление юзера-реферала?
У тебя только обновление юзера который регистрируется... На это mmaximm тебе и намекнул...

#8 ApiAM

    Специалист

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

Отправлено 20 Март 2010 - 17:09

А ну может быть...
В принципе того кто регается и не надо обновлять...
Просто
srv.us.updateUser(u);
И ещё...
Это команда не только регистрации, но и смены ника...
Поэтому обязательно найдутся умные люди...
Вот полностью доработанно:
            Users uss = srv.us.getUser(uin);
if(uss.state==UserWork.STATE_NO_REG){
            String refer = (String)v.get(1);
            Users u = srv.us.getUser(refer);
            int q = psp.getIntProperty("refer.money");
            u.bal += q;
            proc.mq.add(uin, "Вас привёл пользователь " + u.localnick);
            proc.mq.add(refer, "Вы привели нового человека! Получите бонус в размере" + q + " руб." + "\nВ кошельке " + u.bal +" руб.");
            srv.us.updateUser(u);
}


#9 BlackCat

    Новичок

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

Отправлено 20 Март 2010 - 21:33

Подскажите пожалуйста куда это вставлять? :oops:

#10 397656656

    Новичок

  • Пользователи
  • Pip
  • 42 сообщений
  • ГородЕкатеринбург

Отправлено 20 Март 2010 - 22:27

Просмотр сообщенияBlackCat (20 Март 2010 - 21:33) писал:

Подскажите пожалуйста куда это вставлять? :oops:

если выведен скрипт регистрации отдельным файлом .bsh, то туда... если в исходнике, то в ChatCommandProc.java...

#11 BlackCat

    Новичок

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

Отправлено 20 Март 2010 - 22:34

нее, я понял что в ChatCommandProc.java... в команду Reg как я понимаю...но вот куда именно я незнаю((

#12 ApiAM

    Специалист

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

Отправлено 20 Март 2010 - 23:11

А попробовать никак? Просто несколько раз вставить и посмотреть будет работать или нет...
То, куда ты вставишь код, влияет только на то - на каком этапе выполнения функции зачислятся деньги... То есть это не особо важно...
Но чем раньше тем лучше... Т.К. проверка на регу... то есть этот код должен выполниться раньше, чем пользователь запишется в БД...

#13 BlackCat

    Новичок

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

Отправлено 21 Март 2010 - 00:29

Всё, вкурил, спасибо!

#14 P@TRi()T

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

  • Пользователи
  • PipPipPip
  • 168 сообщений
  • ГородВоронеж

Отправлено 31 Май 2010 - 01:17

Как он работает я чет не въеду, какая команда? Я в мод кинул, а как работает не пойму чет

#15 Ar2r

    Dexsor

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

Отправлено 31 Май 2010 - 11:02

а вопрос субЪективный,
1)например я включил поиск, нашел "хзкакойчат" и просто хочу его посмотреть, делаю регу , а мне надо указать кто меня пригласил, а я не хочу, и че я должен дарить кому-то балл,
2) пример регистрации, !рег Аr2r 49568 = а) если у вас тупой фильтр , то эта команда не проходит, и ж*па
б) а если у вас зарегано 30000 чел не больше, то эта команда вылезет в ошибку(поставь проверку на ид и количество пользователей)

P.S. я решил этот вопрос проще, я "привел чела в чат" дал ему свой ид и он просто отправил " !пригласил 1 ", и мне зачисляется установленная сумма баллов,
+ то что нету замрочек при реге
- не все хотят делать реферальный привод)))

в команду регистрации вставь этот кусок
и при регистрации будет !рег ТВойНик ИДктопригласил

#16 ApiAM

    Специалист

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

Отправлено 01 Июнь 2010 - 11:20

Хм... а что проверку на то, что v.add(1, mmsg) не пустой поставить нельзя??
Че тупим? я скинул пример, а не полностью доделанный код... Всё ограниченно только вашей фантазией...

Сообщение отредактировал ApiAM: 01 Июнь 2010 - 11:20


#17 Человек

    Специалист

  • Пользователи
  • PipPipPipPip
  • 242 сообщений
  • ГородУдмуртия

Отправлено 04 Июнь 2010 - 13:04

Вот пыталсо сделоть команд !пригласил ИД но что то намудил от незнания.
public void commandReferal (IcqProtocol proc, String uin, Vector v) {
        if (!isChat(proc, uin) && !psp.testAdmin(uin)) return;
        if (!auth(proc, uin, "referal")) return;
        try {
int id = (Integer) v.get(0); // id - должно быть число
Users us = srv.us.getUser(id); // на кого направлена команда
Users uss = srv.us.getUser(uin); // набравший команду
if (us.id != id) {
proc.mq.add(uin, "Пользователь не найден");
return;
}
if (id == uss.id) {
proc.mq.add(uin,"Нельзя писать свой Ид");
return;
}
int q = psp.getIntProperty("money.referal");
            us.ball += q;
proc.mq.add(uin, "Вас привёл пользователь - " + us.localnick);
srv.getIcqProcess(us.basesn).mq.add(us.sn,"Вы привели в чат нового пользователя " + uss.localnick + "|" + uss.id + "|\nПолучите бонус в размере "+psp.getIntProperty("money.referal")+" Руб.");
srv.us.revokeUser(uss.id, "referal");
srv.us.updateUser(uss);
} catch (Exception ex){
ex.printStackTrace();
proc.mq.add(uin,"Ошибка " + ex.getMessage());
}
}

Ткните меня где ошибка? Или все ето чистой воды индусский код?

Сообщение отредактировал Человек: 04 Июнь 2010 - 15:46


#18 REDOSS

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 800 сообщений
  • ГородКраснодар

Отправлено 04 Июнь 2010 - 18:40

Скрытый текст
Пробуй так, говорю сразу сам не проверял!!!
Редактировал

Сообщение отредактировал REDOSS: 22 Июнь 2010 - 00:35


#19 Ar2r

    Dexsor

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

Отправлено 05 Июнь 2010 - 00:19

вот код вроде должен у вас робить
юзаю gender для того чтобы сделать запись о том чтоя уже реферала указал
            private void commandPrigl(IcqProtocol proc, String uin, Vector v){
                        if(!isChat(proc,uin)) return;
       try{
        //Набранный пользователь
      int i = (Integer)v.get(0);
      //Пользователь
       Users u = srv.us.getUser(i);
      //Пользователь который набрал команду
      Users us = srv.us.getUser(uin);
      if(u.id==0){
       proc.mq.add(uin,us.localnick+" Такой пользователь ещё не зарегистрировался в чате");
       return;
       }
      if(us.id==i){
       proc.mq.add(uin,us.localnick+" Себя нельзя указать как пригласившего!");
       return;
       }
            if(us.gender > 0)
{
proc.mq.add(uin,"Вы уже указали того кто пригласил вас.");
return;
}
            //Запишем в БД
      srv.us.db.event(us.id, uin, "Prigl", u.id, u.sn, "Рейтинг повышен");

     //Плюсуем
      int reiting = u.ball+psp.getIntProperty("money.prigl");
      u.ball=reiting;
      srv.us.updateUser(u);

      us.gender=1;
      srv.us.updateUser(us);
     //Оповещаем об успешном выполнении команды
     proc.mq.add(uin,"Пользователь |"+u.id +"|"+u.localnick+" получил "+ psp.getIntProperty("money.prigl")+ "$за приглашение пользователя|"+us.id +"|"+us.localnick+"");
     //Оповещаем пользователя
     proc.mq.add(u.sn,u.localnick+" Пользователь |"+us.id +"|"+us.localnick+" подтвердил что вы его пригласили, вам начисленно" +psp.getIntProperty("money.prigl")+ "$");

    } catch (Exception ex) {
    ex.printStackTrace();
      proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
    }


#20 REDOSS

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 800 сообщений
  • ГородКраснодар

Отправлено 05 Июнь 2010 - 00:38

кстати выше кода Ar2r там можно до бесконечности указывать кто пригласил в чат :mrgreen:





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

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