Думаю может кому пригодится как создать ворота на одной команде В начало к forward [pwn] forward LSPDGateClose(playerid); [/pwn] тоже в начало только к new [pwn] new gateLSPD; new LSPDGateTimer; [/pwn] в public OnGameModeInit() [pwn] gateLSPD = CreateObject(980,1588.374,-1638.071,15.025,0.0,0.0,0.0);//Мои ворота на подвал lspd [/pwn] в public OnPlayerCommandText(playerid, cmdtext[]) [pwn] if(!strcmp(cmdtext, "/openg", true)) // { if(PlayerInfo[playerid][pLeader] == 1 | | PlayerInfo[playerid][pMember] == 1)// 1 это номер фракции { if (PlayerToPoint(15, playerid,1588.374,-1638.071,15.025))//Координаты откуда будут открыватся ворота { MoveObject(gateLSPD,1598.053,-1638.075,15.008, 0.8);//Координаты открытых ворот SetTimer("LSPDGateClose", 10000, 0); LSPDGateTimer = SetTimer("LSPDGateClose", 10000, 0);//Таймер открытия через сколько ворота закроются SendClientMessage(playerid, COLOR_BLUE," Гараж открылся. Он будет закрыт через 7 секунд.");
} else { SendClientMessage(playerid, COLOR_GREY," Ты слишком далеко."); } } else return SendClientMessage(playerid, COLOR_GREY," У тебя нет доступа."); return 1; } [/pwn] В конец мода [pwn] public LSPDGateClose(playerid) { MoveObject(gateLSPD,1588.374,-1638.071,15.025,2.5);//Координаты закрытых ворот KillTimer(LSPDGateTimer); return 1; } [/pwn]
Сообщение отредактировал MaZiRaT - Суббота, 07.11.2009, 20:51
MaZiRaT, какбе молодец, но зачем делать два таймера сразу ? типо один для точного закрытия?, а другой для проверки ( что точно ворота закрылись или же нет)?
"Life is hard... life is harder if you're stupid." - John Wayne
MaZiRaT, можно сделать чуть по другому и прощи =) ну покрани мери для меня.... [pwn]forward Close(); new Lsgate;[/pwn]
затем найдите вот этот public OnPlayerDeath(playerid, killerid, reason) и выше него вставти [pwn]public Close() { MoveObject(Lsgate,1588.547,-1638.192,13.091, 2.5);//Ментовки в LS } [/pwn]
[pwn] if (strcmp(cmdtext, "/g", true)==0) { if(gTeam[playerid] == 2 || IsACop(playerid)) { MoveObject(gate3,1596.547,-1638.192,13.091, 4);//1588.547,-1638.192,13.091 SetTimer("Close", 5000, 0); SendClientMessage(playerid, COLOR_YELLOW," Ворота открылись и закроются через 5 сек"); } else { SendClientMessage(playerid, COLOR_GRAD1, " Вы не коп !"); return 1; } return 1; }[/pwn] Чем удобнее я вам скажу вот допустим вы ещё раз захотите создать ворота проста создаёти new FBRgate; допустим и делаете так : [pwn]public Close() { MoveObject(Lsgate,1588.547,-1638.192,13.091, 2.5);//Ментовки в LS MoveObject(FBRgate,2234.257,-2215.662,14.845, 2.5);//ФБР } [/pwn]
public Close() { MoveObject(Lsgate,1588.547,-1638.192,13.091, 2.5);//Ментовки в LS MoveObject(FBRgate,2234.257,-2215.662,14.845, 2.5);//ФБР }
тупость...... постоянно закрывать то что уже закрыто ? или если например, я открою в одном месте ворота, а через 2.5сек(ну или какое там время) в другом месте откроет ктонить другой, то что мне заново прописывать команду чтобы проехать ?
"Life is hard... life is harder if you're stupid." - John Wayne
Сообщение отредактировал Awm - Воскресенье, 08.11.2009, 02:58