Сейчас 12:39:32 Суббота, 15 июня, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Персональный (игрок) 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)
Правда на мультиплеере не тестил. Если есть возможность - потести. Или если играешь на алькаре, то давай договоримся потестить, а?

Нет, спасибо. Я играть в карты не люблю. Лучше строить карты.
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz