|
|
|
|
Персональный (игрок) Multiboard
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 17:26:53 | Сообщение # 1 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Как зделать персональный (привьязка к игроку) Multiboard? Заранее спасибо!
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
MTT | Дата: Воскресенье, 20 Декабря 2009, 17:27:48 | Сообщение # 2 |
9 уровень
Группа: Пользователи
Сообщений: 941
Награды: 0
Репутация: 81
Блокировки:
| [SOAD]Damager, Ниче не понял
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 17:31:03 | Сообщение # 3 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Quote (MTT) [SOAD]Damager, Ниче не понял Просто когда пишешь пост со скоростью света, теряються данные. Прочьти еще раз внимательно. Хотя тут более чем понятно. Если попытаться каждому из игроков зделать свой мультибоард, то будет ясно, что зделать это через простые триггеры невозможно. Однако существуют карты (например Dark Invasion II), где мультибоард персональный к игроку. Тому, кто поможет - ЖИРНЫЙ ПЛЮСЕГ+!
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 17:34:02 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| MTT, он наверное хочет чтобы был мультибоард который виден только 1 игроку. [SOAD]Damager, ну народ ленивый пошёл. Читай.Добавлено (20-12-2009, 17:34) ---------------------------------------------
Quote (|SOAD|Damager) Тому, кто поможет - ЖИРНЫЙ ПЛЮСЕГ+! Ты не можешь.
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 20:08:27 | Сообщение # 5 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Quote (Сорнемус) MTT, он наверное хочет чтобы был мультибоард который виден только 1 игроку. [SOAD]Damager, ну народ ленивый пошёл. Читай. Спасибо большое! Quote (Сорнемус) Ты не можешь. Могу: ПЛЮСЕГ ТЕБЕ !!! И большое человеческое спасибо!Добавлено (20-12-2009, 20:08) --------------------------------------------- Сорнемус, ем... Тут показано как создавать общий мультибоард. Мне же нужен индивидуальный мультибоард для каждого игрока, где будут показаны статы героя, шмотка и т.д.
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Arius | Дата: Воскресенье, 20 Декабря 2009, 20:58:30 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 2163
Награды: 2
Репутация: 267
Блокировки:
| По моему такой нельзя сделать на триггерах
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 21:29:06 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Да и на джассе так не сделаешь О_о Только изменяя нативки.
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 21:35:48 | Сообщение # 8 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Ага. Ясненько. А как на счёт этого: (?) Я не Жассер. Помогите это вписать вместо триггера ( тоесть как джассом, но вместо тригера ). local integer i = 1 call TriggerSleepAction( 0.01 ) loop exitwhen i > 12 //12 - это количество всех игроков, но как уже говорилось выше (во 2-ом пункте), лучше здесь указать не 12, а переменную udg_player. set udg_MB = CreateMultiboardBJ( ROWS, COLUMNS, "TITLE" ) call MultiboardDisplayBJ( false, udg_MB ) set i = i + 1 endloop //верхний цикл, создавал 12 совершено разных MultiBoard’ов, и записал их в переменную массив MB по порядку set i = 1 loop exitwhen i > 12 if ConvertedPlayer(i) == GetLocalPlayer() then //ConvertedPlayer(i), это то о чем говорилось во 2-ом пункте, но если вы хотите делать также как и там, то тут вместо этого следует указать переменную udg_MBplayer[i]. call MultiboardDisplayBJ( true, udg_MB ) endif set i = i + 1 endloop [I]//этот массив показал для первого игрока MultiBoard который находится в переменой MB[1], для второго - MB[2], и т.д.
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 21:50:05 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| [SOAD]Damager, видели бы это джассеры они бы повесились... Code local integer i = 0 call TriggerSleepAction( 0.01 ) loop exitwhen i > 11 //12 - это количество всех игроков, но как уже говорилось выше (во 2-ом пункте), лучше здесь указать не 12, а переменную udg_player. set udg_MB[i] = CreateMultiboard() call MultiboardSetRowCount( udg_MB[i], *количество строк*) call MultiboardSetColumnCount(udg_MB[i], *количество колонок*) call MultiboardSetTitleText(udg_MB[i], *текст*) set i = i + 1 endloop //верхний цикл, создавал 12 совершено разных MultiBoard’ов, и записал их в переменную массив MB по порядку set i = 0 loop exitwhen i > 11 if ConvertedPlayer(i) == GetLocalPlayer() then //ConvertedPlayer(i), это то о чем говорилось во 2-ом пункте, но если вы хотите делать также как и там, то тут вместо этого следует указать переменную udg_MBplayer[i]. call MultiboardDisplay(udg_MB[i], true ) endif set i = i + 1 endloop [I]//этот массив показал для первого игрока MultiBoard который находится в переменой MB[1], для второго - MB[2], и т.д. Исправленный код. Но толку от него если во 2 цикле мультибоард будет показываться всем игрокам? То что заключено в ** заменяй на нужное (без **).
Сообщение отредактировал Сорнемус - Воскресенье, 20 Декабря 2009, 21:51:00 |
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 22:06:56 | Сообщение # 10 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Сорнемус, О, я вижу ты не равнодушен ко мне. Спасибо за это отдельно. Вот по твоим указаниям зделал всё. Создал триггер с именем "Multiboard" (абсолютно пустой) и, сразу же, конвертировал его в текст. Потом вставил и отредактировал это: Quote local integer i = 0 call TriggerSleepAction( 0.01 ) loop exitwhen i > 11 set udg_MB[i] = CreateMultiboard() call MultiboardSetRowCount( udg_MB[i], 7) call MultiboardSetColumnCount(udg_MB[i], 3) call MultiboardSetTitleText(udg_MB[i], Stats) set i = i + 1 endloop set i = 0 loop exitwhen i > 11 if ConvertedPlayer(i) == GetLocalPlayer() then call MultiboardDisplay(udg_MB[i], true ) endif set i = i + 1 endloop Но при попытке сохранить карту закрывает триггер из-за ряда ошибок. Маленькое дополнение: Условием триггера должна быть инициализация. Сорнемус, помоги Пожалуйста
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 22:18:02 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| [SOAD]Damager, вот: Code function Trig_NewTrigger_Actions takes nothing returns nothing local integer i = 0 call TriggerSleepAction( 0.01 ) loop exitwhen i > 11 set udg_MB[i] = CreateMultiboard() call MultiboardSetRowCount( udg_MB[i], 7) call MultiboardSetColumnCount(udg_MB[i], 3) call MultiboardSetTitleText(udg_MB[i], Stats) set i = i + 1 endloop set i = 0 loop exitwhen i > 11 if ConvertedPlayer(i) == GetLocalPlayer() then call MultiboardDisplay(udg_MB[i], true ) endif set i = i + 1 endloop endfunction
//==== Init Trigger NewTrigger ==== function InitTrig_NewTrigger takes nothing returns nothing local trigger trig = CreateTrigger() call TriggerRegisterTimerEvent( trig, 0.01, false) call TriggerAddAction(trig, function Trig_NewTrigger_Actions) set trig == null endfunction Событие инициализации карты не работает с мультибоардами, по-этому использовал событие "Прошло 0.01 сек".
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 22:35:27 | Сообщение # 12 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Сорнемус, Спасибо. Я попытался это зделать и вот что у меня получилось. http://s51.radikal.ru/i133/0912/aa/7c40bd4f0336.jpg
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 22:40:53 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| [SOAD]Damager, ой. Пара ошибок была. Исправил: Code function Trig_NewTrigger_Actions takes nothing returns nothing local integer i = 0 call TriggerSleepAction( 0.01 ) loop exitwhen i > 11 set udg_MB[i] = CreateMultiboard() call MultiboardSetRowCount( udg_MB[i], 7) call MultiboardSetColumnCount(udg_MB[i], 3) call MultiboardSetTitleText(udg_MB[i], "Stats") set i = i + 1 endloop set i = 0 loop exitwhen i > 11 if (ConvertedPlayer(i) == GetLocalPlayer()) then call MultiboardDisplay(udg_MB[i], true ) endif set i = i + 1 endloop endfunction
//==== Init Trigger NewTrigger ==== function InitTrig_NewTrigger takes nothing returns nothing local trigger trig = CreateTrigger() call TriggerRegisterTimerEvent( trig, 0.01, false) call TriggerAddAction(trig, function Trig_NewTrigger_Actions) set trig = null endfunction
|
|
|
|
Akvarium | Дата: Воскресенье, 20 Декабря 2009, 22:41:34 | Сообщение # 14 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Quote (|SOAD|Damager) ocal integer i = 1 call TriggerSleepAction( 0.01 ) loop exitwhen i > 12 //12 - это количество всех игроков, но как уже говорилось выше (во 2-ом пункте), лучше здесь указать не 12, а переменную udg_player. set udg_MB = CreateMultiboardBJ( ROWS, COLUMNS, "TITLE" ) call MultiboardDisplayBJ( false, udg_MB ) set i = i + 1 endloop //верхний цикл, создавал 12 совершено разных MultiBoard’ов, и записал их в переменную массив MB по порядку set i = 1 loop exitwhen i > 12 if ConvertedPlayer(i) == GetLocalPlayer() then //ConvertedPlayer(i), это то о чем говорилось во 2-ом пункте, но если вы хотите делать также как и там, то тут вместо этого следует указать переменную udg_MBplayer[i]. call MultiboardDisplayBJ( true, udg_MB ) endif set i = i + 1 endloop БЖ атакует! ] Quote (|SOAD|Damager) http://s51.radikal.ru/i133/0912/aa/7c40bd4f0336.jpg Set trig = null
Сообщение отредактировал Akvarium - Воскресенье, 20 Декабря 2009, 22:42:27 |
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 22:43:06 | Сообщение # 15 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Quote (Akvarium) БЖ атакует! Исправлено мной давно О_о Quote (Akvarium) Set trig = null set с маленькой, и там не только эта ошибка была.
|
|
|
|
Akvarium | Дата: Воскресенье, 20 Декабря 2009, 22:43:16 | Сообщение # 16 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Сорнемус, угу. Чет торможу =) Лана. Кончаем оффтопить.
Сообщение отредактировал Akvarium - Воскресенье, 20 Декабря 2009, 22:45:03 |
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 22:52:43 | Сообщение # 17 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Ребята, или у меня компилятор тупит, или вы недогледели. Я проверить правильность только компилятором могу, т.к. нубарь полный. http://i051.radikal.ru/0912/bf/91fc60e41bb4.jpg
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 22:55:10 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| [SOAD]Damager, у тебя переменная MB массив? И на 12 слотов?
|
|
|
|
Akvarium | Дата: Воскресенье, 20 Декабря 2009, 22:56:21 | Сообщение # 19 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| У тя эта глобалка с массивом? Проверь
Сообщение отредактировал Akvarium - Воскресенье, 20 Декабря 2009, 22:57:38 |
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 23:15:24 | Сообщение # 20 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Сорнемус, Akvarium, Я добавил переменную MB типа Меню Паузы с массивом в колличистве 12. Включил триггер и компилятор не матюгнулся. Попробывал затестить карту и вот что выдало: http://i012.radikal.ru/0912/df/868d7ddeb53f.jpg Мне страшно.. )))
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 23:20:10 | Сообщение # 21 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Ненавижу фаталы... Наверное ему не нравится то, что надо сразу 11 мультибоардов показывать...
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 23:24:33 | Сообщение # 22 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Quote (Сорнемус) Ненавижу фаталы... Наверное ему не нравится то, что надо сразу 11 мультибоардов показывать... Сорнемус, Но теоретически зделать это можно, да ? Пример тот же Dark Invasion II. Там, кстате, этих мультибоардов дофига... и каждый меняеться отдельным игроком в произвольном порядке и, при этом, всё работает отлично. Так как же так зделать... ?
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 23:26:36 | Сообщение # 23 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| [SOAD]Damager, там что, прям-таки, у каждого игрока разный мультибоард?
|
|
|
|
[SOAD]Damager | Дата: Воскресенье, 20 Декабря 2009, 23:35:13 | Сообщение # 24 |
5 уровень
Группа: Пользователи
Сообщений: 131
Награды: 0
Репутация: 2
Блокировки:
| Quote (Сорнемус) [SOAD]Damager, там что, прям-таки, у каждого игрока разный мультибоард? Сорнемус, Да. И при всём при этом эта вся система построена в системе Меню. Жестоко :). Сорнемус, я исправил ошибку с фаталом. Тут всё ясно... надо только вспомнить, что только в ЦПП индекс "0" обозначает первый элемент масива. Тут же начиная с "1". Вот и всё. Лови. http://dump.ru/file/3981444 Правда на мультиплеере не тестил. Если есть возможность - потести. Или если играешь на алькаре, то давай договоримся потестить, а?
ICQ: 351676654 Skype: lxoxol Работаю над УГ'о ОРПГ.
|
|
|
|
Сорнемус | Дата: Воскресенье, 20 Декабря 2009, 23:39:44 | Сообщение # 25 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Quote (|SOAD|Damager) Сорнемус, я исправил ошибку с фаталом. Тут всё ясно... надо только вспомнить, что только в ЦПП индекс "0" обозначает первый элемент масива. Тут же начиная с "1". Вот и всё. Лови. Ну вот и всё =) Quote (|SOAD|Damager) Правда на мультиплеере не тестил. Если есть возможность - потести. Или если играешь на алькаре, то давай договоримся потестить, а? Нет, спасибо. Я играть в карты не люблю. Лучше строить карты.
|
|
|
|
|
|
|
|
|
|
|