Нужно сделать так. В игре есть 8 игроков и 1 из них должен стать (рандомно) в первую ночь (19:00) вампиром (нужно сделать анимацию кровавого взрыва и появление на этом месте вампира ,вампир - герой игрока 12 (бота,которым может руководить игрок) Цель вампира - съесть всех других 7-ми игроков. На месте любого убитого человека должна произойти та же анимация - кровавый взрыв и появление на его месте вампира,который командует не бот,а сам игрок уже,которого убили. И нужно сделать победы такими . Люди победят,если убьют всех вампиров (включая зараженных). Вампиры победят,если убьют всех людей. Так же нужно,чтобы вампиры горели с 6:00 и им днем с этого времени наносился урон в размере 15 ед. в сек,но если вампир прячется в дом (способность как на корабле погрузить,только с замком) ,то он спокойно живет днем,как и все зараженные. Надеюсь вы поняли ,прошу хелп.

Принятый ответ

через переменную случайное число
0
28
7 лет назад
Отредактирован PT153
0
Делаешь глобальный массив логических PlayerInGame и на инициализации пишешь в него true, если игрок есть.
Номера игроков начинаются с нуля.
local integer a=0
loop
exitwhen a>7
set p=Player(a)
if GetPlayerSlotState(p)==PLAYER_SLOT_STATE_PLAYING then
set PlayerInGame[a]=true
endif
set a=a+1
endloop
После этого создаёшь массив целых числел и записываешь туда действующих игроков.
local integer array players
local integer a=0
local integer n=-1
local integer vampireplayer=0
loop
exitwhen a>7
if PlayerInGame[a] then
set n=n+1
set players[n]=a
endif
set a=a+1
endloop
После выбираешь рандомного.
set vampire=players[GetRandomInt(0,n)]
Как распространить форматирование на несколько строк?
0
11
7 лет назад
0
PT153:
Делаешь глобальный массив логических PlayerInGame и на инициализации пишешь в него true, если игрок есть.
Номера игроков начинаются с нуля.
local integer a=0
loop
exitwhen a>7
set p=Player(a)
if GetPlayerSlotState(p)==PLAYER_SLOT_STATE_PLAYING then
set PlayerInGame[a]=true
endif
set a=a+1
endloop
После этого создаёшь массив целых числел и записываешь туда действующих игроков.
local integer array players
local integer a=0
local integer n=-1
local integer vampireplayer=0
loop
exitwhen a>7
if PlayerInGame[a] then
set n=n+1
set players[n]=a
endif
set a=a+1
endloop
После выбираешь рандомного.
set vampire=players[GetRandomInt(0,n)]
Как распространить форматирование на несколько строк?
Забыл написать,что на на ДЖАСС коде,я пока не на языке
0
10
7 лет назад
0
Daniil33:
Забыл написать,что на на ДЖАСС коде,я пока не на языке
"Забыл написать, что не на jass коде, я пока не знаю его"?
1
11
7 лет назад
1
Morkoffka:
Daniil33:
Забыл написать,что на на ДЖАСС коде,я пока не на языке
"Забыл написать, что не на jass коде, я пока не знаю его"?
Опечатка,да,я его не знаю
0
10
7 лет назад
0
А что именно не понятно? Вы не можете подобрать игрока или создать анимацию кровавого взрыва? Ваша задумка оригинальная и состоит из нескольких частей. Подбор игрока и нанесение вампиру урона в 6:00 - это разные задачи. Спрашивайте отдельные моменты. Делать перечисленную вами систему никто не возьмётся, вам лишь помогут понять как реализовать какой-то момент, но не всю карту
0
23
7 лет назад
0
Daniil33, кроме рандома системма примитивна дальше некуда.
Вот нашел тему по рандов одну из старейших где просто размышляли над этим понятием, прочитай поможет понять как делать рандомно действия: xgm.guru/p/wc3/142909
2
2
7 лет назад
2
через переменную случайное число
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.