Нужна помощь
|
|
HSP | Дата: Понедельник, 19 Августа 2013, 17:05:07 | Сообщение # 1 |
1 уровень
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Блокировки:
| Доброго времени суток, уважаемые форумчане. Работая над своим проектом я столкнулся с небольшой проблемкой, я ее пытаюсь решить уже две недели, делая при этом новые, но не правильные попытки. Суть в том, чтобы создать Multiboard, в котором будут отображаться имя игрока и количество войск на его территории, все очень просто сделать, если все слоты заняты по очереди(красный, синий, голубой, фиолетовый). Проблема моя заключается в том, что люди непредсказуемые и могут занять слоты как пожелают, и, если людей будет меньше, чем территорий, о которых я говорил выше, могут возникнуть баги. Уверен, я рассказал не очень понятно, но, надеюсь вы поймете, когда посмотрите карту и увидите код. Ниже я напишу код, который я использовал и прикреплю карту-пример
Код //создаю новую функцию, которую буду вызывать при инициализации function initialization takes nothing returns nothing //в этой функции создаю две переменные типа integer local integer a // всего игроков local integer b // количество играюих игроков //Присваиваю переменным-областям области, которые я предварительно создал в панеле областей set udg_zones_a[0] = gg_rct_Red set udg_zones_a[1] = gg_rct_Blue set udg_zones_a[2] = gg_rct_Cyan set udg_zones_a[3] = gg_rct_Purple //обнуляю переменные set a = 0 loop exitwhen a == 3 set udg_zones_b[a] = null set a = a + 1 endloop //присваиваю области-переменные другим областям-переменным set a = 0 set b = 0 loop exitwhen a == 3 // выход если a = 3 (так как игроков 4, а отсчитываем с нуля) loop exitwhen b == udg_players_int //выход если b = количеству игроков, которые играют if(udg_zones_b[b]==null) then //если область-переменная равна Null, то set udg_zones_b[b] = udg_zones_a[a] //присваиваем set b = b + 1 // и увеличиваем b на 1 endif endloop set a = a + 1 //увеличиваем a на 1 endloop endfunction
вот карта http://rghost.ru/48226283
|
|
|
|
abidin | Дата: Понедельник, 19 Августа 2013, 17:24:01 | Сообщение # 2 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| я плохо разбираюсь в jsss и не уверен в правильности кода,Но суть ты должен уловить Код local integer z = 0 //целоисцислительная переменная local bolean array con //переменная условие,массив loop exitwhen z == 4 //на 4 игроков if ( not ( GetPlayerSlotState(Player(2)) == PLAYER_SLOT_STATE_PLAYING ) ) then set con[z] == true endif set z = z+1 endloop ну и если con[z] == true то запускаешь условия
Сообщение отредактировал abidin - Понедельник, 19 Августа 2013, 18:07:05 |
|
|
|
HSP | Дата: Понедельник, 19 Августа 2013, 17:55:34 | Сообщение # 3 |
1 уровень
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Блокировки:
| Я попытаюсь обьяснить, у меня есть четыре области и 4 игрока, нужно занести в мультиборд их имя и количество войск на их территории, имя игроков я вытащил вот так:
Pick every player in (all players) and do (actions) // я выбрал всех игроков на карте If (All conditions are True) then do (Then Actions) else do (Else actions) // если все окей, то делаем ... иначе ... If ((Picked player) slot status = играет // если выбранный игрок играет Then // то Set players_int = players _int + 1 // прибавляем переменной, в котрой я сохраняю количество игроков, которые играют Set player[players_int] = picked player // переменная player это игрок, который играет, тоесть если слот 2 занят, но слот 1 пустует, то игрок 2 станет игроком 1 else do nothingДобавлено (19 Августа 2013, 17:55:34) --------------------------------------------- Позже я имя игрока (player) заношу в таблицу
|
|
|
|
[SeKtOR] | Дата: Вторник, 20 Августа 2013, 14:25:19 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Вроде как получилось.
|
|
|
|
HSP | Дата: Вторник, 20 Августа 2013, 22:16:21 | Сообщение # 5 |
1 уровень
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Блокировки:
| Если добавить игроков то появляется куча ошибок
|
|
|
|
SirNikolas | Дата: Среда, 21 Августа 2013, 08:53:37 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (abidin) //целоисцислительная переменная Целочисленная же.
HSP, тебе нужен целочисленный массив, в котором под индексом i будет записан номер территории, которую занял Player(i).
|
|
|
|