описываю кратко:
есть станция. У неё 2 переменных:кол - во захватчиков людей и лейрансов(это 2 расы типо)
захватчики - всмысле корабли подплывают и высаживают экипаж для захвата в теч.нескольких минут.
так вот! полностью сначала:
сервер создаёт игру - и станция эта спавнится на нем, с network view и т.п, вообщем клиенты её потом тоже видят, тут всё ок.
но! когда игрок высаживает экипаж - на его экране показываются переменные этого экипажа(высаженного на станцию). Мне нужно чтобы показывалось общее кол-во, а показывается только то, что игрок сам высадил. То есть даже если один высадил 100 человек, второй подлетит - и у него высветится что на базе 0 человек.
То есть мне нужно вот что: чтобы каждые допустим 10-15 секунд база отправляла всем игрокам информацию о этих 2х переменных. Как это сделать, ткните носом пожалуйста. в справке есть что - то, но там нечто другое..
хотя бы принцип, откуда копать, почему не работает. вот скрипт, если поможет..
Синтаксис:
Используется javascript
var zahv = false;//эта переменная работает когда мы в триггере. то есть захват идёт только когда она врублена
var zahvatcikL:int;//захватчики лейрансов
var zahvatcikP:int;//захватчики людей
var pl : Transform;//игрок который высаживает в данный момент(см.ниже)
function Start () {
}
function Update () {
}
function OnTriggerStay(obj: Collider){//если иобьект в триггере станции..
if(obj.gameObject.tag =="Player")if(obj.networkView.isMine){//если это игрок, если он принадлежит моему компу
zahv = true;//захват возможен
prs = obj.gameObject.GetComponent("Proch");//ищем скрипт на игроке, в котором экипаж..то есть переменная-число экипажа..
if(Input.GetKeyUp(KeyCode.E)){//если тыкаем кнопку
pl = obj.transform;//переменная становится наш игрок, и далее..
if(prs.stor == 2){//если мы люди
networkView.RPC("ONp", RPCMode.All, new Vector3());//пользуем метод добавления числа человеков)
}
if(prs.stor == 1){//аналогично и с этими
networkView.RPC("ONl", RPCMode.All, new Vector3());
}
}
}
}
function OnTriggerExit(obje : Collider){//если выходим из триггера
if(obje.gameObject.tag =="Player")if(obje.networkView.isMine){//вообщем вы поняли
zahv = false;
}
}
function OnGUI(){//отображение GUI
if(zahv){
GUI.Box(new Rect(Screen.width/3,Screen.height/3,Screen.width/3,Screen.height/25),"Захват базы(E-высадить экипаж");
GUI.Box(new Rect(Screen.width/3,Screen.height/2.7f,Screen.width/6,Screen.height/25),"Люди:"+zahvatcikP);
GUI.Box(new Rect(Screen.width/2f,Screen.height/2.7f,Screen.width/6,Screen.height/15),"Экипаж Станции:"+Ekipaj);
GUI.Box(new Rect(Screen.width/3,Screen.height/2.5f,Screen.width/6,Screen.height/25),"Лейрансы:"+zahvatcikL);
//вообщем на экране появляется инфа - сколько каких захватчиков уже есть на станции.
}
}
@RPC
function ONp(location : Vector3){//сами функции
pr = pl.gameObject.GetComponent("Proch");//ищем у захватчика тот же скрипт
zahvatcikP += (pr.ekipaj);//прибавляем нашу переменную к переменной игрока
pr.ekipaj = 0;//обнуляем переменную игрока(высадили ведь)
}
@RPC
function ONl(location : Vector3){//ну и тут аналог
pre = pl.gameObject.GetComponent("Proch");
zahvatcikL +=(pre.ekipaj);
pre.ekipaj = 0;
}
@RPC
function inf(location : Vector3){//вот тут пусто, хочу вызывать то, что будет тут(инфу которая отправляется всем) через опр.период
//ПОМОГИТЕ ПОЖАЛУЙСТА! <img src="./images/smilies/1.gif" alt=":)" title="Happy" />
}