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


Глобализация социального статуса


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

#1 ApiAM

    Специалист

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

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

Как уже писалось в некоторых темах, те у кого в чате есть соц статус (бомж - миллионер) хотели бы не каждый раз в функции писать всю эту структуру, а вывести её в глобалку...
Так вот... я долго думал и придумал вот, что:

в UserWork

Цитата

public int getStatus(int id) {
String w = "";
int e =0;
Users uss = new Users();
uss.bal= getUserBal(id);
if (uss.bal < 0) {
w = "Бомж";
e = 1; }
if (uss.bal >= 0) {
w = "Нищий";
e = 1; }
if (uss.bal >= 500) {
w = "Состоятельный";
e = 1; }
if (uss.bal >= 30000) {
w = "Уважаемый";
e = 2; }
if (uss.bal >= 50000) {
w = "Влиятельный";
e = 5; }
if (uss.bal >= 100000) {
w = "Богатый";
e = 10; }
if (uss.bal >= 500000) {
w = "Буржуй";
e = 20; }
if (uss.bal >= 1000000) {
w = "Миллионер";
e = 50; }
if (uss.bal >= 10000000) {
w = "Магнат";
e = 100; }
if (uss.bal >= 1000000000) {
w = "Олигарх";
e = 500; }
}
и

Цитата

/**
* Определение наличности пользователя
*/
public String getUserBal(int user_id){
if(db.existUserProps(user_id)){
String s = getUserPropsValue(user_id,"bal");
} return "";
}
Что не удивительно, у меня ничего не вышло...
Выделенная строка... не знаю вообще что с ней делать...
Т.К. яву не особо знаю возможно напортачил глупых ошибок...
Помогите плз... что исправить?

Сообщение отредактировал ApiAM: 11 Март 2010 - 23:47


#2 Юрий

    Профи

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

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

Бред какой-то, вынеси в глобальные и все.

#3 HellFaust

    Живодёр

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

Отправлено 12 Март 2010 - 00:04

uss.bal= getUserBal(id);
Вообще она не нужна)))
проверка в дальнейшем все равно идет через uss.ball
Если уж хочется эту строку то
int ball = uss.ball;
и в проверках тогда
if (ball >= значение) w= "Статус"
Переменная е тут явно не нужна...
плюс добавить вконце return w;
и в командах запросом
srv.us.getStatus(id));


на мой взгляд лучше так: в ChatCommandProc
public String getBallStatus(int id) {
String w = "";
Users uss = srv.us.getUser(id);
if (uss.bal >= 1000000000) w = "Олигарх";
if (uss.bal >= 10000000) w = "Магнат";
if (uss.bal >= 1000000) w = "Миллионер";
if (uss.bal >= 500000) w = "Буржуй";
if (uss.bal >= 100000) w = "Богатый";
if (uss.bal >= 50000) w = "Влиятельный";
if (uss.bal >= 30000) w = "Уважаемый";
if (uss.bal >= 500) w = "Состоятельный";
if (uss.bal >= 0) w = "Нищий";
if (uss.bal < 0) w = "Бомж";
return w;
}
после чего в любой команде запрос будет вида
getBallStatus(id)
напримере анкеты
s += ......
s += ......
s += "Состоятельность " + getBallStatus(id);
s += ......
s += ......

Сообщение отредактировал HellFaust: 12 Март 2010 - 00:44


#4 Юрий

    Профи

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

Отправлено 12 Март 2010 - 00:09

int id = id; - лишнее
И не так даже. потому что проверка будет выполняться несколько раз и будет статус: НищийСостоятельный

Сообщение отредактировал Юрий: 12 Март 2010 - 00:11


#5 HellFaust

    Живодёр

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

Отправлено 12 Март 2010 - 00:11

Спасибо))) убрал)))

#6 VOLKODAV

    Специалист

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

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

/*
 * Глобал.Статус 
 * HellFaust    
 */    
public int getratingStatus(int id) {
String w = "";
Users uss = srv.us.getUser(id);
if (uss.rating >= 1000000000) w = "Олигарх";
if (uss.rating >= 10000000) w = "Магнат";
if (uss.rating >= 1000000) w = "Миллионер";
if (uss.rating >= 500000) w = "Буржуй";
if (uss.rating >= 100000) w = "Богатый";
if (uss.rating >= 50000) w = "Влиятельный";
if (uss.rating >= 30000) w = "Уважаемый";
if (uss.rating >= 500) w = "Состоятельный";
if (uss.rating >= 0) w = "Нищий";
if (uss.rating < 0) w = "Бомж";
return w;
}
У меня подчеркнула это:
return w;

#7 ApiAM

    Специалист

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

Отправлено 12 Март 2010 - 00:27

Спасибо за разъяснение, но
Return w;
подчеркивает...

Вот вот VOLKODAV у мну тоже...

Сообщение отредактировал ApiAM: 12 Март 2010 - 00:27


#8 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 00:38

При компиляции вывело это:
C:\Documents and Settings\Лёха\Рабочий стол\Новая папка (2)\Тест\леха\src\ru\jimbot\modules\chat\ChatCommandProc.java:838: incompatible types
found   : java.lang.String
required: int
return w;


#9 HellFaust

    Живодёр

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

Отправлено 12 Март 2010 - 00:43

Сразу не посмотрел... Шапку скопировал из первого топа... )))
Ошибка тут
public int String getBallStatus(int id) {

Топик выше исправил)))

Сообщение отредактировал HellFaust: 12 Март 2010 - 00:45


#10 ApiAM

    Специалист

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

Отправлено 12 Март 2010 - 00:45

Теперь ясно всё! спс...

#11 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 00:49

HellFaust всё работает...
Спосибо тебе!!!

#12 ApiAM

    Специалист

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

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

Немного непонятно как делать запрос в других функциях...
Просто
getBallStatus(id)
Не катит...

#13 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 00:58

Одно проблемой стало меньше но и больше я как в ява не силён
Хотел сделать это при входе и вписал так:
Социальный статус = [" + getBallStatus(id) + "]
Но подчеркнула ето [" + getBallStatus(id) + "]
HellFaust подскажи что и как надо правильно вписать...

#14 HellFaust

    Живодёр

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

Отправлено 12 Март 2010 - 01:00

тебе надо определить того, у кого проверять... то есть его ид... например команлой !просмотреть ид
сражу определить того юзера
int i = (Integer)v.get(0);
User us = srv.us.getUser(i);
и вызов будет
getBallStatus(uss.id)

VOLKODAV, на примере моей анкеты это будет
s += "Социальный статус = [" + getBallStatus(uss1.id)+ "]"
В остальные команды аналогично

Сообщение отредактировал HellFaust: 12 Март 2010 - 01:03


#15 ApiAM

    Специалист

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

Отправлено 12 Март 2010 - 01:02

Почему если
User us
вызов будет
getBallStatus(uss.id)
??

#16 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 01:03

Вот всё катит нормально
Социальный статус = [" + getBallStatus(uss.id) + "]


#17 ApiAM

    Специалист

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

Отправлено 12 Март 2010 - 01:06

От ошибок никто не застрахован...
У меня ещё вопрос...
int e =0;
в первом посте не случайность... это число в зависсимости от значения bal мне тоже нужно...
Вопрос...
как вывести в getBall 2 значения? или аналогичную функцию просто создать?

#18 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 01:07

Просмотр сообщенияHellFaust (12 Март 2010 - 01:00) писал:

VOLKODAV, на примере моей анкеты это будет
s += "Социальный статус = [" + getBallStatus(uss1.id)+ "]"
В остальные команды аналогично
А для чего тут:
[" + getBallStatus(uss1.id)+ "]

#19 HellFaust

    Живодёр

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

Отправлено 12 Март 2010 - 01:10

Просмотр сообщенияVOLKODAV (12 Март 2010 - 01:07) писал:

А для чего тут:
[" + getBallStatus(uss1.id)+ "]
В моей анкете тот кто отправил команду определен как uss а тот чье инфо смотреть как uss1, потому в запросе uss1.id

#20 VOLKODAV

    Специалист

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

Отправлено 12 Март 2010 - 01:13

HellFaust спосибо буду знать...





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

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