Сразу же создаем глобальную переменную (ко всем new):
new dmzone[MAX_PLAYERS];
Сделаем так, чтобы при каждом подключении переменная была равна 0 (чтобы не спавниться каждый раз на ДМ). В OnPlayerConnect:
dmzone[playerid] = 0;
Создав глобальную переменную мы можем переходить к созданию команды.
В OnCommandText добавим:
if(strcmp(cmd, "/dm", true) == 0) { if(dmzone[playerid] == 1) //Читается как: если переменная dmzone ровна 1 { // то SendClientMessage(playerid,COLOR_GREY,"Вы уже на DM, чтобы выйти используйте </exit>"); // выводим сообщение игроку } else // но если переменная dmzone ровна 0 { //то dmzone[playerid] = 1; // выставляем переменной значение 1 SetPlayerPos(playerid, X, Y, Z); // телепортируем игрока на DM зону (x, y, z поменять на свои координаты) GivePlayerWeapon(playerid,24,1000); // выдаем игроку оружие. В моем случае я выдаю Deagle (24 id) с 1000 пт. Поменяйте на свое. GivePlayerWeapon(playerid,26,1000); // по схеме что и выше, только shotgun GivePlayerWeapon(playerid,31,1000); // по схеме что и выше, только m4 SetPlayerHealth(playerid,100); // выдаем 100 ХП нашему игроку. SendClientMessage(playerid,COLOR_GREY,"Вы вошли на </dm>."); // показываем сообщение игроку } return 1; } if(strcmp(cmd, "/exit", true) == 0) { if(dmzone[playerid] == 0) //Читается как: если переменная dmzone ровна 0 { // то SendClientMessage(playerid,COLOR_GREY,"Вы не на DM."); // выводим сообщение игроку } else // но если переменная dmzone ровна 1 { // то dmzone[playerid] = 0; // аннулируем переменную SetPlayerPos(playerid, X, Y, Z); // телепортируем игрока на спавн (x, y, z поменять на свои координаты) SendClientMessage(playerid,COLOR_GREY,"Вы вышли из </dm>."); // выводим сообщение игроку } return 1; }
Команда есть, но теперь нужно сделать чтобы при смерти наш игрок спавнился снова на ДМ.
в OnPlayerSpawn:
if(dmzone[playerid] == 1) // но если переменная dmzone ровна 1 { //то SetPlayerPos(playerid, X, Y, Z); // телепортируем игрока на DM зону (x, y, z поменять на свои координаты) GivePlayerWeapon(playerid,24,1000); // выдаем игроку оружие. В моем случае я выдаю Deagle (24 id) с 1000 пт. GivePlayerWeapon(playerid,26,1000); // по схеме что и выше, только shotgun GivePlayerWeapon(playerid,31,1000); // по схеме что и выше, только m4 SetPlayerHealth(playerid,100); // выдаем 100 ХП нашему игроку. }
Вот и все, писал прямо с браузера, так что об ошибках сообщайте.
Автор: new.pwn (Я)
Сообщение отредактировал new.pwn: 03 мая 2014 - 17:53