Команда блок
#7
Avaroscient, ваше сообщение чрезвычайно трудно понять из-за плохого перевода, но я все же постараюсь ответить.
1) Как я понял, вам требуется применить на всех игроков, находящихся в зоне 25, некоторое заклинание.
Для того, чтобы получше объяснить вам, как нужно это сделать, приведу пример скрипта с комментариями.
Скрипт написан целиком, поэтому, если будете его использовать, то будьте аккуратны, перенося его к себе.
Код:
GlobalVars(
//Все игроки, которые играют на сервере, автоматически попадают в группу Heroes.
 Heroes : group,
 i : object // переменная-счетчик. Нужна для цикла ForIf и Any. Смотри ниже.
)
// #CastSpellOnAllPlayersInArea - длинное название для наглядности.
DeclareScript #CastSpellOnAllPlayersInArea()
Script #CastSpellOnAllPlayersInArea
(
 if
 (
// Any(объект-счетчик, группа, условие) : float
// функция Any возвращает значение ИСТИНА,
// если хотя бы для одного существа из группы выполнено условие.
// Иначе, она возвращает ЛОЖЬ.
// Таким образом, тело скрипта выполнится, тогда и только тогда,
// когда хотя бы один из игроков будет находиться в зоне 25.
   Any(i, Heroes, IsInArea(25, GetX(i), GetY(i)))
 )
 then
 (
   KillScript()
   Sleep(2)
   // Цикл ForIf(объект-счетчик, группа, условие) ( ТЕЛО ЦИКЛА )
   // Цикл переберет всех существ из группы Heroes(то есть всех игроков),
   // для которых выполнено условие IsInArea(25, GetX(i), GetY(i)), то есть существо из группы игроков находящиеся в зоне 25.
   ForIf(i, Heroes, IsInArea(25, GetX(i), GetY(i)))
   (
     CastSpellUnit("slow{d2}", 310,146, i) // Применяем заклинание для этого существа
   )
   
   #CastSpellOnAllPlayersInArea() // Запускаем проверку по-новой.
 )
)

WorldScript
(
 // Вызываем функцию. Просто для примера. Вы не обязаны вызывать ее именно здесь.
 #CastSpellOnAllPlayersInArea()
)
Не могу гарантировать, что скрипт на 100% корректен - я мог где-то опечататься.

2)
"bz10k" - это ключевое название карты. Оно указывается в map.txt(для компании) и в map-lmp.txt(для сетевой игры).
Должен предупредить, что команда LeaveToZone в сетевой игре работает не корректно - она перенесет на другую карту лишь того игрока, кто создал сервер, все остальные игроки на сервере потеряют соединение(у них случиться ошибка, как если бы сервер выключился).
Что насчет map.txt и map-lmp.txt, нужно в любой из них(в сетевой игре, корректно сработают оба варианта. Надежнее всего, конечно же map.txt. Проведите эксперимент. Smile ) добавить запись о "новой локации". Например в таком стиле:
Код:
#zone gz13k_mp ingos game
#res
zone13 zone13-lmp
#maps
14 10
zone13map zone13quest
#figure
ingm313
#position
0 0 0
#weather
snow
#sky
normal
Описание формата файла map.txt можно найти в оригинальном map.txt.
Код:
## format:
##
## #zone zone_name allod_name type // types can be: game, brief, edge
## #res
## MprFile MobFile                 // files to load
## #maps
## Xsize Ysize                     // size in sectors
## MinimapTexture ObjTexture       // textures to load: for minimap and objectives screen
## #figure
## FigureName                      // for single player only: figure to load
## #position
## x y z                           // for single player only: position on global map
## #weather
## none | rain | snow              // weather type in this zone. default: rain
## #sky
## normal | cave                   // sky type in this zone. default: normal
## #exit 1
## neighbour_zone_name NExit       // neighbour zone for this exit and corresponding exit there
## #deploy
## x1 y1 x2 y2                     // deploy rectangle for this exit
## #remove
## x1 y1 x2 y2                     // remove rectangle for this exit
## #passtime
## PassTime                        // for single player only: default pass time
## #view
## Angle                           // camera rotate angle of this entrance
## #exit 2
## ...
##
## #quest quest_name
## x y z                           // for single player only: position on global map
##
################################################
Вот оно.
Надеюсь это вам хоть как-то поможет. Smile
3) К сожалению, я не совсем понял, о чем идет речь. Постарайтесь описать подробнее. (Перевод google может сработать лучше, если оригинальный текст не будет содержать ошибок Smile )
Удачи!
Ответ


Сообщения в этой теме
Команда блок - от Avaroscient - 15.10.2012, 18:56
Команда блок - от Jet - 15.10.2012, 20:27
Команда блок - от Demoth - 15.10.2012, 20:27
Команда блок - от Jet - 15.10.2012, 20:34
Команда блок - от Avaroscient - 15.10.2012, 22:20
Команда блок - от Demoth - 16.10.2012, 00:07
Команда блок - от Demoth - 18.10.2012, 22:51
Команда блок - от Joogi - 19.10.2012, 04:36
Команда блок - от Demoth - 19.10.2012, 08:56
Команда блок - от Avaroscient - 21.10.2012, 21:34
Команда блок - от Joogi - 26.10.2012, 06:21

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)