Сейчас 18:44:56 Вторник, 7 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Изменение триггера
Изменение триггера
fixbagДата: Воскресенье, 02 Августа 2009, 00:54:43 | Сообщение # 1
3 уровень
Группа: Пользователи
Сообщений: 54
Награды: 0
Репутация: 4
Блокировки:
Как нужно изменить триггер, чтобы он работал для всех 12 игроков, а не только для 1?
Что нужно сделать я знаю, но не знаю как записать.
В событии надо сделать цикл, в других функциях брать из цикла переменную и заменять ей индексы...

Quote
function Trig_UUU_Conditions takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I022') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I009') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I008') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I006') == true ) ) then
return false
endif
return true
endfunction

function Trig_UUU_Func002C takes nothing returns boolean
if ( not ( GetRandomReal(1.00, 100.00) <= ( 10.00 * udg_Random_P0) ) ) ) then
return false
endif
return true
endfunction

function Trig_UUU_Actions takes nothing returns nothing

if ( Trig_UUU_Func002C() ) then
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I022') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I009') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I008') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I006') )
call UnitAddItemByIdSwapped( 'I023', GetTriggerUnit() )
call AddSpecialEffectTargetUnitBJ( "overhead", GetTriggerUnit(), "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" )
set udg_Random_P0 = ( udg_Random_P0 - 1.00 )
call DisplayTimedTextToForce( bj_FORCE_PLAYER[0], 30, "TRIGSTR_1910" )
else
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I022') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I009') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I008') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I006') )
call AddSpecialEffectTargetUnitBJ( "overhead", GetTriggerUnit(), "Abilities\\Spells\\Other\\Transmute\\PileofGold.mdl" )
set udg_Random_P0 = ( udg_Random_P0 + 1.00 )
call DisplayTimedTextToForce( bj_FORCE_PLAYER[0], 30, "TRIGSTR_1909" )
endif
endfunction

//===========================================================================
function InitTrig_UUU takes nothing returns nothing
set gg_trg_UUU = CreateTrigger( )
call TriggerRegisterPlayerUnitEventSimple( gg_trg_UUU, Player(0), EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_UUU, Condition( function Trig_UUU_Conditions ) )
call TriggerAddAction( gg_trg_UUU, function Trig_UUU_Actions )
endfunction

 

ЭллесарДата: Воскресенье, 02 Августа 2009, 03:50:56 | Сообщение # 2
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
Quote
function Trig_UUU_Conditions takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I022') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I009') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I008') == true ) ) then
return false
endif
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'I006') == true ) ) then
return false
endif
return true
endfunction
function Trig_UUU_Func002C takes nothing returns boolean
if ( not ( GetRandomReal(1.00, 100.00) <= ( 10.00 * udg_Random_P0) ) ) ) then
return false
endif
return true
endfunction

function Trig_UUU_Actions takes nothing returns nothing

if ( Trig_UUU_Func002C() ) then
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I022') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I009') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I008') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I006') )
call UnitAddItemByIdSwapped( 'I023', GetTriggerUnit() )
call AddSpecialEffectTargetUnitBJ( "overhead", GetTriggerUnit(), "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" )
set udg_Random_P0 = ( udg_Random_P0 - 1.00 )
call DisplayTimedTextToForce( bj_FORCE_PLAYER[0], 30, "TRIGSTR_1910" )
else
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I022') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I009') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I008') )
call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'I006') )
call AddSpecialEffectTargetUnitBJ( "overhead", GetTriggerUnit(), "Abilities\\Spells\\Other\\Transmute\\PileofGold.mdl" )
set udg_Random_P0 = ( udg_Random_P0 + 1.00 )
call DisplayTimedTextToPlayer ( GetOwningPlayer(GetManipulatingUnit()) , 0, 0, 20, "TRIGSTR_1909" )
endif
endfunction

//===========================================================================
function InitTrig_UUU takes nothing returns nothing
set gg_trg_UUU = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_UUU, EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_UUU, Condition( function Trig_UUU_Conditions ) )
call TriggerAddAction( gg_trg_UUU, function Trig_UUU_Actions

Добавлено (02-08-2009, 03:50)
---------------------------------------------
А если честно, код бредовый.


база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE


Сообщение отредактировал Эллесар - Воскресенье, 02 Августа 2009, 03:50:11
 

fixbagДата: Понедельник, 03 Августа 2009, 07:11:49 | Сообщение # 3
3 уровень
Группа: Пользователи
Сообщений: 54
Награды: 0
Репутация: 4
Блокировки:
Эллесар, это все изменения? )

Шас спрошу проще - в одной функции есть локальная переменная i, что нужно написать, чтобы её использовать в другой функции? takes ?

Как записать другую переменную как Ai ? (Есть несколько глобальных переменных А0, А1, А2 и т д... , i - Локальная переменная)

 

ЭллесарДата: Среда, 05 Августа 2009, 13:48:58 | Сообщение # 4
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
function MyFunc1 takes nothing returns nothing
local integer i = 0
// твои действия
call MyFunc2(i)
endfunction

function MyFunc2 takes integer ai returns nothing
// твои действия с локальной переменной ai
endfunction


база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Изменение триггера
  • Страница 1 из 1
  • 1
Поиск:

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