СОюз
Dreii Дата: Среда, 08 Декабря 2010, 22:23:22 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды:
0
Репутация:
603
Блокировки:
Как можно всех игроков сделать друг другу противниками. при этом не делая ооооооооооооооооооооооооооочень длинный триггер?
‡Flash‡ Дата: Среда, 08 Декабря 2010, 22:30:59 | Сообщение # 2
3 уровень
Группа: Проверенные
Сообщений: 62
Награды:
0
Репутация:
79
Блокировки:
Сценарий-Свойство Клана и ставь для каждого игрока свой клан.. P.S. Не ооооооооочень длинно???
Ты должен сделать добро из зла,потому что его больше не из чего сделать. Р.П.Уоррен
EdiTTORR Дата: Среда, 08 Декабря 2010, 22:55:46 | Сообщение # 3
8 уровень
Группа: Проверенные
Сообщений: 585
Награды:
0
Репутация:
147
Блокировки:
Dreii ,
function AllVsAll takes nothing returns nothing
local integer i=0
local integer a=0
loop
exitwhen i>11
set a=0
loop
exitwhen a>11
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(0),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(1),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(2),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(3),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(4),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(5),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(6),false)
call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(7),false)
set a=a+1
endloop
set i=i+1
endloop
endfunction
Вставь в код карты и вызывай если надо : call AllVsAll()
Местами здесь.
Сообщение отредактировал EdiTTORR - Среда, 08 Декабря 2010, 22:56:37
Kartoha Дата: Среда, 08 Декабря 2010, 23:18:44 | Сообщение # 4
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды:
1
Блокировки:
Dreii , все игроки стандартно друг другу противники, если не ставить галочку в Сценарий --> Свойства кланов --> Союзник
BinGO Дата: Четверг, 09 Декабря 2010, 04:59:58 | Сообщение # 5
Группа: Модераторы
Сообщений: 2906
Награды:
8
Блокировки:
Лучше собственную БЖ на основе нэйтивок написать.
Dreii Дата: Четверг, 09 Декабря 2010, 11:16:11 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды:
0
Репутация:
603
Блокировки:
Quote (EdiTTORR )
function AllVsAll takes nothing returns nothing local integer i=0 local integer a=0 loop exitwhen i>11 set a=0 loop exitwhen a>11 call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(0),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(1),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(2),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(3),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(4),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(5),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(6),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(7),false) set a=a+1 endloop set i=i+1 endloop endfunction
Это на всех 12 игроков?
SirNikolas Дата: Четверг, 09 Декабря 2010, 15:35:02 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Dreii , да. EdiTTORR , лучше использовать константы, чем вызывать (12 * 12 * 7) = 1008 раз конвертирование альянса. Или, хотя бы, запихнуть это в цикл.
Сообщение отредактировал SirNikolas - Четверг, 09 Декабря 2010, 15:35:51
Dreii Дата: Четверг, 09 Декабря 2010, 17:03:34 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды:
0
Репутация:
603
Блокировки:
Code
function Trig_AllVsAll_Actions takes nothing returns nothing local integer i=0 local integer a=0 loop exitwhen i>11 set a=0 loop exitwhen a>11 call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(0),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(1),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(2),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(3),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(4),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(5),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(6),false) call SetPlayerAlliance(Player(i),Player(a),ConvertAllianceType(7),false) set a=a+1 endloop set i=i+1 endloop endfunction //=========================================================================== function InitTrig_AllVsAll takes nothing returns nothing set gg_trg_AllVsAll = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_AllVsAll, Player(0), "-ffa", true ) call TriggerAddAction( gg_trg_AllVsAll, function Trig_AllVsAll_Actions ) endfunction
Так будет работать?
Добавлено (09-12-2010, 17:03) --------------------------------------------- Так, вроде работает, но когда я включаю триггер, то я не могу управлять своей армией)
EdiTTORR Дата: Четверг, 09 Декабря 2010, 18:42:05 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 585
Награды:
0
Репутация:
147
Блокировки:
SirNikolas , ты прав. Dreii , модифицировал, теперь не будет этого бага. Code
function TrigAllVsAllAct takes nothing returns nothing local integer i=0 local integer a=0 loop exitwhen i>11 set a=0 loop exitwhen a>11 if i!=a then call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_PASSIVE,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_HELP_REQUEST,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_HELP_RESPONSE,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_SHARED_XP,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_SHARED_SPELLS,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_SHARED_VISION,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_SHARED_CONTROL ,false) call SetPlayerAlliance(Player(i),Player(a),ALLIANCE_SHARED_ADVANCED_CONTROL,false) endif set a=a+1 endloop endif set i=i+1 endloop endfunction function InitTrig_AllVsAll takes nothing returns nothing set gg_trg_AllVsAll=CreateTrigger() call TriggerRegisterPlayerChatEvent( gg_trg_AllVsAll,Player(0),"-ffa",true) call TriggerAddAction(gg_trg_AllVsAll,function TrgAllVsAllAct) endfunction
Местами здесь.
Сообщение отредактировал EdiTTORR - Четверг, 09 Декабря 2010, 18:53:42
Dreii Дата: Четверг, 09 Декабря 2010, 21:03:59 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды:
0
Репутация:
603
Блокировки:
EdiTTORR , спасибо уже который раз выручаешь))