XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NECros88

offline
Опыт: 16,351
Активность:
ShaggyBear нажми на иконку карты...
Старый 18.02.2007, 11:26
BarracuDa
aka ShaggyBear
offline
Опыт: 4,708
Активность:
Все разобрался! Кстати это баг или глюк я когда хочу сменить иконку овцы на другую, то при сохранении вылетает WE и все!!! Why!!!
Старый 19.02.2007, 15:57
dk

offline
Опыт: 60,293
Активность:
matrix поюзай поиск, варден как-то вылаживал мультиборд, копию дотовского)
А вот линк http://xgm.guru/forum/showpost.php?p=119138&postcount=1
Старый 20.02.2007, 10:59
BarracuDa
aka ShaggyBear
offline
Опыт: 4,708
Активность:
Але ответьте на мой вопрос!!!!
Цитата:
когда хочу сменить иконку овцы на другую, то при сохранении вылетает WE и все!!!
Старый 22.02.2007, 12:08
dk

offline
Опыт: 60,293
Активность:
Значит ты делаешь что-то неправильно, иконка того же размера и путь к ней как у овцы?
Старый 22.02.2007, 12:11
BarracuDa
aka ShaggyBear
offline
Опыт: 4,708
Активность:
Ну да все нормально, вроде иконка, совы-разведчицы, т.е.овцу я хочу заменить на сову - разведчидцу!!!(иконка простая, путь вроде норм. ввожу)
Старый 22.02.2007, 15:48
Кет

offline
Опыт: 111,109
Активность:
оба мультиборда залиты, опыт добавлен.
Старый 22.02.2007, 17:27
senatus
тихий и скромный...
offline
Опыт: 7,423
Активность:
не меня.тся иконки у второй команды. Очки даются и з а убийство своих .+ ничего нового
Старый 24.02.2007, 19:50
Lord of Death
Потерянный надолго
offline
Опыт: 3,008
Активность:
Цитата:
не меня.тся иконки у второй команды. Очки даются и з а убийство своих .+ ничего нового
Та же фигня. Warden, я тебе уже писал про этот баг, но ты чё-то не исправил....
Старый 24.02.2007, 20:33
Mp5KOT
Вам меня не жалко?
offline
Опыт: 1,273
Активность:
Мультиборд - поставил, всё пашет, создателю респект, (хоть я еще ламак в картостроениях) но хо спросить, что за.... когда поставил Мультиборд у меня все мобы начали на месте бегать туда сюда, а не туда куда задал им, что там вызывает ошыбку такую??????? За ранее спс
Старый 25.02.2007, 22:22
JesteR

offline
Опыт: 10
Активность:
Блин, люди, а конкретно WARDEN
помогите плиз!
мне нужен такой же МультиБоард, тока на Три Команды!
помогите, а то я в картостроении недавно, ну с ДЖАЗЗОМ я ваще не в ладах :)
Вардену все равно респект
Старый 05.03.2007, 16:10
Tofsla

offline
Опыт: 6,018
Активность:
Да удобная штука мне очень понравилось. Только я не понял идею про крипов может кто обьяснит?:):...
Старый 29.03.2007, 17:48
Serious
Kicked by ZlaYa1000
offline
Опыт: 5,404
Активность:
Слушайте у меня проблема с ареновским мультибордам не знаю что делать тригеры блокирует и всё переменные всё нармально мкопировал
Старый 13.04.2007, 22:08
Warden
:::...
offline
Опыт: 26,106
Активность:
Опиши, свою проблему подробно...
Старый 15.04.2007, 09:02
Serious
Kicked by ZlaYa1000
offline
Опыт: 5,404
Активность:
Warden
все там решилось я не скопировал нестандартный код
Старый 15.04.2007, 16:30
Warden
:::...
offline
Опыт: 26,106
Активность:
Вот вам новый, качественный, но простейнький мультибод :
  1. Создайте в вашей карте глобальные переменные : mb (Мультиборд) и mb_cache (буфер игры)
  2. Создайте триггер с названием "MultiBoard" и скопируйте в него нижепреведенный код.
  3. Настройте мультиборд (MultiBoard Variables)
  4. Enjoy
***************************************************************************
*
* MultiBoard API
*
***************************************************************************
Created by : Warden
version : 1.00
constant function mb_h2i takes handle h returns integer
return h
return 0
endfunction
constant function mb_i2u takes integer i returns unit
return i
return null
endfunction
constant function mb_i2p takes integer i returns player
return i
return null
endfunction
function mb_cache takes nothing returns gamecache
if udg_mb_cache == null then
call FlushGameCache( udg_mb_cache )
set udg_mb_cache = InitGameCache( "mb_vars.w3v" )
endif
return udg_mb_cache
endfunction
function mb_get_handle_int takes handle obj, string name returns integer
return GetStoredInteger(mb_cache(), I2S(mb_h2i(obj)), name)
endfunction
function mb_set_handle_int takes handle obj, string name, integer val returns nothing
call StoreInteger(mb_cache(), I2S(mb_h2i(obj)), name, val)
endfunction
function mb_get_handle_srt takes handle obj, string name returns string
return GetStoredString(mb_cache(), I2S(mb_h2i(obj)), name)
endfunction
function mb_set_handle_srt takes handle obj, string name, string val returns nothing
call StoreString(mb_cache(), I2S(mb_h2i(obj)), name, val)
endfunction
function mb_flush_obj takes handle obj returns nothing
call FlushStoredMission(mb_cache(), I2S(mb_h2i(obj)))
endfunction
function mb_get_player_name_color takes player p, string s returns string
local playercolor col=GetPlayerColor(p)
local string k = s
if col == PLAYER_COLOR_RED then
set k ="|cffff0000"s"|r"
elseif col == PLAYER_COLOR_BLUE then
set k ="|cff0000ff"s"|r"
elseif col == PLAYER_COLOR_CYAN then
set k = "|cff00f5ff"s"|r"
elseif col == PLAYER_COLOR_PURPLE then
set k ="|cff551A8B"s"|r"
elseif col == PLAYER_COLOR_YELLOW then
set k ="|cffffff00"s"|r"
elseif col == PLAYER_COLOR_ORANGE then
set k ="|cffEE9A00"s"|r"
elseif col == PLAYER_COLOR_GREEN then
set k ="|cff00CD00"s"|r"
elseif col == PLAYER_COLOR_PINK then
set k = "|cffFF69B4"s"|r"
elseif col == PLAYER_COLOR_LIGHT_GRAY then
set k ="|cffC0C0C0"s"|r"
elseif col == PLAYER_COLOR_LIGHT_BLUE then
set k ="|cffB0E2FF"s"|r"
elseif col == PLAYER_COLOR_AQUA then
set k ="|cff006400"s"|r"
elseif col == PLAYER_COLOR_BROWN then
set k ="|cff8B4513"s"|r"
else
set k ="|cff000000"s"|r"
endif
set col=null
return k
endfunction
***************************************************************************
*
* MultiBoard Variables
*
***************************************************************************
function mb_name takes nothing returns string
return " |cffffffffMultiBoard|r "
endfunction
function mb_players takes nothing returns string
return " |cffffffff Игроки|r "
endfunction
function mb_kills takes nothing returns string
return " |cffffffffУбийств|r "
endfunction
function mb_deaths takes nothing returns string
return " |cffffffffСмертей|r "
endfunction
function mb_mp1 takes nothing returns player
return Player(5) Крипер первой команды (Номер игрока - 1)
endfunction
function mb_mp2 takes nothing returns player
return Player(6) Крипер второй команды (Номер игрока - 1)
endfunction
function mb_show_ai_players takes nothing returns boolean
return true показывать игроков-компьютеров? "true" - да, "false" - нет
endfunction
***************************************************************************
*
* MultiBoard System
*
***************************************************************************
function mb_int takes integer i returns string
if i == 0 then
return "|cff999999-|r"
else
return I2S(i)
endif
endfunction
function mb_dt takes integer i returns string
if i == 0 then
return " "
else
return " (" + I2S(i) + ")"
endif
endfunction
function mb_show_ai_player takes player p returns boolean
if mb_show_ai_players() and GetPlayerController(p) == MAP_CONTROL_COMPUTER then
return true
elseif not mb_show_ai_players() and GetPlayerController(p) == MAP_CONTROL_COMPUTER then
return false
endif
return true
endfunction
function mb_update takes nothing returns nothing
local integer i = 0
local player mp1 = mb_mp1()
local player mp2 = mb_mp2()
local integer mbi = 1
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(mp1, GetPlayerName(mp1)))
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(mp1, "mb_kills")))
loop
exitwhen i > 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsPlayerAlly(Player(i), mp1) and Player(i) != mp1 and Player(i) != mp2 and mb_show_ai_player(Player(i)) then
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(Player(i), GetPlayerName(Player(i))) + mb_dt(mb_get_handle_int(Player(i), "mb_dt")))
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_kills")))
call MultiboardSetItemValueBJ( udg_mb, 3, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_deaths")))
endif
set i = i + 1
endloop
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(mp2, GetPlayerName(mp2)) )
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(mp2, "mb_kills")))
set i = 1
loop
exitwhen i > 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsPlayerAlly(Player(i), mp2) and Player(i) != mp1 and Player(i) != mp2 and mb_show_ai_player(Player(i)) then
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(Player(i), GetPlayerName(Player(i))) + mb_dt(mb_get_handle_int(Player(i), "mb_dt")))
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_kills")))
call MultiboardSetItemValueBJ( udg_mb, 3, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_deaths")))
endif
set i = i + 1
endloop
call MultiboardSetRowCount( udg_mb, mbi )
call MultiboardSetTitleText( udg_mb, mb_name() + mb_get_handle_srt (null, "time") )
set mp1 = null
set mp2 = null
endfunction
function mb_init takes nothing returns nothing
local integer i = 0
local player mp1 = mb_mp1()
local player mp2 = mb_mp2()
local integer mbi = 1
set udg_mb = CreateMultiboardBJ( 3, 13, mb_name() + " 0:00" )
call MultiboardMinimize(udg_mb, true)
call MultiboardSetItemWidthBJ( udg_mb, 1, 0, 13. )
call MultiboardSetItemWidthBJ( udg_mb, 2, 0, 5. )
call MultiboardSetItemWidthBJ( udg_mb, 3, 0, 5. )
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, mb_players() )
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, mb_kills() )
call MultiboardSetItemValueBJ( udg_mb, 3, mbi, mb_deaths() )
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(mp1, GetPlayerName(mp1)) )
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(mp1, "mb_kills")))
loop
exitwhen i > 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsPlayerAlly(Player(i), mp1) and Player(i) != mp1 and Player(i) != mp2 and mb_show_ai_player(Player(i)) then
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(Player(i), GetPlayerName(Player(i))) + mb_dt(mb_get_handle_int(Player(i), "mb_dt")))
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_kills")))
call MultiboardSetItemValueBJ( udg_mb, 3, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_deaths")))
endif
set i = i + 1
endloop
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(mp2, GetPlayerName(mp2)) )
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(mp2, "mb_kills")))
set i = 1
loop
exitwhen i > 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsPlayerAlly(Player(i), mp2) and Player(i) != mp1 and Player(i) != mp2 and mb_show_ai_player(Player(i)) then
set mbi = mbi + 1
call MultiboardSetItemValueBJ( udg_mb, 1, mbi, " " + mb_get_player_name_color(Player(i), GetPlayerName(Player(i))) + mb_dt(mb_get_handle_int(Player(i), "mb_dt")))
call MultiboardSetItemValueBJ( udg_mb, 2, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_kills")))
call MultiboardSetItemValueBJ( udg_mb, 3, mbi, " " + mb_int(mb_get_handle_int(Player(i), "mb_deaths")))
endif
set i = i + 1
endloop
call MultiboardSetRowCount( udg_mb, mbi )
call MultiboardSetItemStyleBJ( udg_mb, 0, 0, true, false )
call DestroyTimer(GetExpiredTimer())
set mp1 = null
set mp2 = null
endfunction
function mb_dt_update takes nothing returns nothing
local timer t = GetExpiredTimer()
local player p = mb_i2p(mb_get_handle_int(t, "dt_player"))
local unit u = mb_i2u(mb_get_handle_int(t, "dt_hero"))
local integer time = mb_get_handle_int(p, "mb_dt")
set time = time - 1
call mb_set_handle_int(p, "mb_dt", time)
if time < 1 then
call ReviveHeroLoc( u, GetPlayerStartLocationLoc(p), true )
call PanCameraToTimedLocForPlayer(p, GetUnitLoc(u), 0.10 )
call DestroyTimer(t)
call mb_flush_obj(t)
call mb_update()
return
endif
call TimerStart(t, 1., false, function mb_dt_update)
call mb_update()
endfunction
function mb_points_c takes nothing returns boolean
return IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true
endfunction
function mb_points takes nothing returns nothing
local integer i = 0
local timer t = CreateTimer()
local player killer = GetOwningPlayer(GetKillingUnitBJ())
local player victim = GetOwningPlayer(GetDyingUnit())
call mb_set_handle_int (killer, "mb_kills", mb_get_handle_int(killer, "mb_kills") + 1)
call mb_set_handle_int (victim, "mb_deaths", mb_get_handle_int(victim, "mb_deaths") + 1)
call mb_set_handle_int (victim, "mb_dt", GetHeroLevel(GetDyingUnit()) * 10)
call DisplayTextToForce( GetPlayersAll(), "Игрок " + mb_get_player_name_color(victim, GetPlayerName(victim)) + " был убит игроком " + mb_get_player_name_color(killer, GetPlayerName(killer)) + " и будет возражден через " + "|cffffcc00" + I2S(GetHeroLevel(GetDyingUnit()) * 10) + "|r секунд.")
call mb_update()
call TimerStart(t, 1., false, function mb_dt_update)
call mb_set_handle_int (t, "dt_player", mb_h2i(victim))
call mb_set_handle_int (t, "dt_hero", mb_h2i(GetDyingUnit()))
set killer = null
set victim = null
endfunction
function mb_timer takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer sec = mb_get_handle_int (null, "sec")
local integer min = mb_get_handle_int (null, "min")
local string ssec
local string time
call TimerStart(t, 1., false, function mb_timer)
set sec = sec + 1
if sec == 60 then
set sec = 0
set min = min + 1
endif
if sec < 10 then
set ssec = "0" + I2S(sec)
else
set ssec = I2S(sec)
endif
call mb_set_handle_int (null, "sec", sec)
call mb_set_handle_int (null, "min", min)
call mb_set_handle_srt (null, "time", I2S(min) + ":" + ssec)
call MultiboardSetTitleText( udg_mb, mb_name() + mb_get_handle_srt (null, "time") )
endfunction
===========================================================================
function InitTrig_MultiBoard takes nothing returns nothing
local trigger t
local timer tm
set t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( t, Condition( function mb_points_c ) )
call TriggerAddAction( t, function mb_points )
set tm = CreateTimer()
call TimerStart(tm, 0., false, function mb_init)
set tm = CreateTimer()
call TimerStart(tm, 1., false, function mb_timer)
endfunction
Старый 16.04.2007, 15:13
DioD

offline
Опыт: 45,134
Активность:
Твоя же карта с "правильной" работой с кешем.
Старый 18.04.2007, 16:50
Luelen

offline
Опыт: 10
Активность:
Я пока еще нуб в этом...
Подскажите что такое CustomScriptCode, и где он находится =)
з.ы. Спасиб!
Старый 12.05.2007, 17:02
BarracuDa
aka ShaggyBear
offline
Опыт: 4,708
Активность:
В триггерах, нажми на иконку карты, и туда копируй Custom Script Code, потом МультиБорд, и все!
Старый 12.05.2007, 17:10
Slimius

offline
Опыт: 95
Активность:
Как поставить 4 команды место 2
Старый 15.06.2007, 00:02
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:02.