Call of Duty 2

Call of Duty 2

Not enough ratings
Функции: notify(), endon(), waittill()
By Paho
Описание сложные движковых функций notify(), endon(), waittill() с примерами.
   
Award
Favorite
Favorited
Unfavorite
Функции: notify(), endon(), waittill()
Notify отправляет параметр для завершения выполнения любой функции(где есть endon(); с этим же аргументом) или же отправляет право перехода к выполнению следующего фрагмента функции после waittill();, или выполняет действие с помощью 3-х аргументов("menuresponse",level или game["массив"](прекеш меню),scriptMenuResponse(в меню).
  • notify("что-то"); прописываем в любую функцию и потом, игрок обратившись к этой функции, в которой находится notify("что-то"); - прервет все функции где находится такой же endon("что-то");
  • notify(); и waittill(); могут принимать 3 аргумента, например:
    self notify("menuresponse", game["menu_weapon_axis"], "greasegun_mp");//возродит игрока за немцев, дав ему британское оружие
  • notify - отправляет, waittill и endon - принимают.
    waittill ждет какого-то действия, типа как continue(при каком-то условии).
    Например self waittill("joined_team"); весь ниже код в пределах данной ф-и обработается только после присоединения игрока в команду.
Пример:
self thread waitRespawnButton(); self waittill("respawn");//ждем переход к следующей функции, пока не выполнится предыдущая self thread spawnPlayer(); waitRespawnButton() { while(self useButtonPressed() != true)//находимся в цикле, пока не будет нажата кнопка F wait .05; self notify("respawn");//если нажата F отправляем параметр "respawn", там где он используется waittill или endon примет его. }
Пример завершения любой функции с помощью endon(); notify(); и waittill();
textik() { self endon("textok");//завершится выполнение функции, когда клиент обратится к функции где есть notify("textok"); while(1) { wait 10; iprintlnbold("GO SPAWN xD");//пишем текст каждые 10 секунд } } Callback_PlayerConnect() { self thread textik(); self waittill("joined_team");//пока клиент, обратившийся к ф-и Callback_PlayerConnect() не присоединится к команде не переходим к нижней части кода. А это в свою очередь ф-я движка и вызывается при подключении клиента к серверу. P.S: Смотрите где по дефолту в стандартных скриптах находится self notify("joined_team"); self notify("textok");//отправляем параметр. Если клиент обращался к ф-и и она не завершена(циклична в данный момент) с self endon("textok"); - то notify отправит а endon примет и завершит. }
P.S level - все клиенты self - один клиент level thread - вызовет функцию всем игрокам, при любом обращении к данной функции level notify/endon/waittill - выполнится если все клиенты/игроки обратятся к ф-и(и у всех у них будет не завершенное цикличное состояние нахождения в этой ф-и).
1 Comments
󠀡󠀡󠀡Fjozek 31 Oct, 2016 @ 6:15am 
n1²