The New Future :: FOnline, Half-life 2 :: Roleplay It!  

Вернуться   The New Future :: FOnline, Half-life 2 :: Roleplay It! > Прочее > FOmod > Учебка

Учебка Обучающие материалы.

Ответ
 
Опции темы Опции просмотра
Старый 22.02.2014, 02:51   #1
tester
Senior Member
 
Аватар для tester
 
Регистрация: 02.02.2012
Сообщений: 152
Вес репутации: 86
tester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of light
По умолчанию Телепортация персонажей

В общем я создал глобальную переменную, создал диалог, на ответ которого это переменная повышается на единицу.
Как она повысится игрока должно телепортнуть, но нечего не происходит.
Код:
void _Pltp(Critter@ npc, Map@ map)
{
int end;
GameVar@ val = GetGlobalVar( GVAR_Base_People_Captured );
end = val.GetValue();
   if( end > 0)
 {
  Critter@[] players;
  if( map.GetCritters( 0, FIND_KO | FIND_LIFE_AND_DEAD | FIND_ONLY_PLAYERS, players ) > 0 )
  {
   for( uint i = 0; i < players.length(); i++ )
   {
    Critter@ player = players[ i ];
    {
     player.TransitToMap(506, 0);
    }
   }
  }
  DeleteLocation(LOC_START);
 }
}
Сервер ошибок не выдает, в чем ошибка?
tester вне форума   Ответить с цитированием
Старый 22.02.2014, 11:36   #2
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

Как происходит вызов функции телеплртации?
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Старый 22.02.2014, 14:04   #3
tester
Senior Member
 
Аватар для tester
 
Регистрация: 02.02.2012
Сообщений: 152
Вес репутации: 86
tester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от PowerMagic Посмотреть сообщение
Как происходит вызов функции телеплртации?
Там условие стоит, если глобальная переменная больше 0.
Через терминал я вызываю диалог, в котором результат ответа это повышения данной переменной.
tester вне форума   Ответить с цитированием
Старый 22.02.2014, 22:11   #4
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

Так что бы код работал, его надо исполнять, значит функция должна быть вызвана. Если она просто описана, то ясно дело ничего не происходит. Можешь добавить ее вызов в петлю Main.fos - > void loop ()
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Старый 23.02.2014, 00:50   #5
tester
Senior Member
 
Аватар для tester
 
Регистрация: 02.02.2012
Сообщений: 152
Вес репутации: 86
tester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of lighttester is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от PowerMagic Посмотреть сообщение
Так что бы код работал, его надо исполнять, значит функция должна быть вызвана. Если она просто описана, то ясно дело ничего не происходит. Можешь добавить ее вызов в петлю Main.fos - > void loop ()
Чет я ее не нашел там.
только это
Код:
// Return next call in milliseconds or zero to disable loop.
uint loop()
{
    return 0;     // Disable
}
tester вне форума   Ответить с цитированием
Старый 23.02.2014, 09:44   #6
ErlKing
Разработчик
 
Аватар для ErlKing
 
Специализация: простые скрипты
Регистрация: 19.08.2010
Сообщений: 848
Вес репутации: 513
ErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond reputeErlKing has a reputation beyond repute
По умолчанию

Цитата:
Так что бы код работал, его надо исполнять, значит функция должна быть вызвана. Если она просто описана, то ясно дело ничего не происходит.
Чтобы было понятнее - функция в произвольном месте просто так не выполняется, например необходимо ее включить в main.fos который является главным скриптом и имеет части выполняющиеся циклически.

Но по-моему в данном случае это не совсем корректно, ведь необходимо просто вызвать функцию от диалога? По-моему гораздо проще вызвать эту функцию прямо из диалога. В диалоге пишется ссылка на файл скрипта и имя функции - смотри dialog.fos как все это реализованно.

Например:
Это в dialog.fos
Код:
// Игрок НЕ в группе? (лидер тоже считаеться)
bool d_NotGroupPresent(Critter& player, Critter@ npc)
{
	return not d_GroupPresent(player, npc);
}
Это в диалоге (точно не помню синтаксис файлов диалога и что оно означает, либо так задано условие появления опции диалога, либо что-то другое):
Код:
0 13010 @
14 14000 None 0 @
50 15000 None 0 #
0 15010 D _script dialog@d_NotGroupPresent 0  #
53 15020 D _script dialog@d_NotGroupPresent 0  #
51 15030 D _script dialog@d_GroupPresent 0  @
D _script - вызов функции
dialog@ - поиск в файле dialog.fos
d_NotGroupPresent 0 - вызов функции с данным именем и параметром 0
__________________
Не разработчик.

Последний раз редактировалось ErlKing; 23.02.2014 в 09:47.
ErlKing вне форума   Ответить с цитированием
Данный человек сказал спасибо ErlKing за этот пост:
PowerMagic (23.02.2014)
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 09:48.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
Для внутреннего пользования