[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
Помогите с редактированием скрипта
Дата: 09.07.2010, Пятница, 18:33:49 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 53
Репутация: 5+
ну вобщем нашел скрипт Camera Tracking. Ну в нем можно как бы раставлять камеры по городу и из них смотреть что происходит.
Я решил немного подредактировать его, чтобы его можно было использовать только из 1 точки (комната в ЛСПД)
Ну вобщем все удалось, но когда смотришь в камеру прогружаются лишь некоторые объекты.
Вот что я поменял.

Добавил
Code
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);

public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
n[b]ew Float:oldposx, Float:oldposy, Float:oldposz;
n[/b]e[/b]w Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}

И изменил вот это:

Code
if (strcmp("/cctv", cmdtext, true) == 0)
  {
   if(Spawned[playerid] == 1)
   {
       PlayerMenu[playerid] = 0;
       TogglePlayerControllable(playerid, 0);
    ShowMenuForPlayer(CCTVMenu[0], playerid);
   }
   else
   {
       SendClientMessage(playerid, 0xFF0000AA, " Сначало спавнитесь !");
   }
   return 1;
  }

На это:
Code
if (strcmp("/cctv", cmdtext, true) == 0)
  {
     
         if(PlayerToPoint(15.0,playerid,217.2754,78.5188,1005.0391))
      {
       PlayerMenu[playerid] = 0;
       TogglePlayerControllable(playerid, 0);
    ShowMenuForPlayer(CCTVMenu[0], playerid);

   }
   else
   {
       SendClientMessage(playerid, 0xFF0000AA, "Вы не в комнате слижения !");
   }
   return 1;
      }


Что не так? )
Дата: 10.07.2010, Суббота, 13:10:16 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 53
Репутация: 5+
не, в том то и дело что до моих изменений все было норм.
И когда входишь в режим камеры, и из него сразу пытаться просмотреть другую камеру (не выходя из этой) пишет по скрипту: "Вы не в комнате слижения".

Добавлено (10.07.2010, 13.10)
---------------------------------------------
Я думаю оно просто не хочет грузить объекты потому что думает что уже не в Комнате Слижения.
Может можно сделать как то, чтобы проверяло в комнате ты слижения или нет через 10 секунд после запуска камеры?

Дата: 10.07.2010, Суббота, 13:42:57 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 53
Репутация: 5+
Думаю это:
Code
    if(CCTV >= TotalCCTVS)
  {
      SendClientMessage(playerid, 0xFF0000AA, " Неверный CCTV");
      return 1;
  }
  if(CurrentCCTV[playerid] == -1)
     {
      GetPlayerPos(playerid, LastPos[playerid][LX], LastPos[playerid][LY], LastPos[playerid][LZ]);
   GetPlayerFacingAngle(playerid, LastPos[playerid][LA]);
         LastPos[playerid][LInterior] = GetPlayerInterior(playerid);
  }
  else
  {
   KillTimer(KeyTimer[playerid]);
  }
  CurrentCCTV[playerid] = CCTV;
     TogglePlayerControllable(playerid, 0);
  //SetPlayerPos(playerid, CCTVCP[CCTV][0], CCTVCP[CCTV][1], (CCTVCP[CCTV][2]-50));
  SetPlayerPos(playerid, CCTVCP[CCTV][0], CCTVCP[CCTV][1], -100.0);
  SetPlayerCameraPos(playerid, CCTVCP[CCTV][0], CCTVCP[CCTV][1], CCTVCP[CCTV][2]);
  SetPlayerCameraLookAt(playerid, CCTVLAO[CCTV][0], (CCTVLAO[CCTV][1]+0.2), CCTVLAO[CCTV][2]);
  CCTVLA[playerid][0] = CCTVLAO[CCTV][0];
  CCTVLA[playerid][1] = CCTVLAO[CCTV][1]+0.2;
  CCTVLA[playerid][2] = CCTVLAO[CCTV][2];
  CCTVRadius[playerid] = 12.5;
  CCTVDegree[playerid] = CCTVCP[CCTV][3];
  MovePlayerCCTV(playerid);
     KeyTimer[playerid] = SetTimerEx("CheckKeyPress", 75, 1, "i", playerid);
     TextDrawShowForPlayer(playerid, TD);
  return 1;
}
Дата: 10.07.2010, Суббота, 15:16:20 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 53
Репутация: 5+
Хм...попробую, спасибо =)
Ну выбор камеры с камеры работает, но мира все равно не грузит.
Я уже попробовал сделать PlayerToPoint в OnSpawn - тоже ничего.
Хотя это очень странно...от чего ей не работать...может в public PlayerToPoint что то не так?
  • Страница 1 из 1
  • 1
Поиск: