if(strcmp(cmd, "/tp", true) == 0) // Возьмем команду /tp { if(IsPlayerConnected(playerid)) // Проверка на то, находится игрок в сети или нет { ShowPlayerDialog(playerid,14,DIALOG_STYLE_LIST,"Телепорт-меню","Отель Лос Сантоса\nполицейский Департамент\nАэро Сан Фиерро\nЛас-Вентурас\nАвтошкола\nОстров","Выбрать","Отмена"); // Открывает окно с выборами телепорта, можно добавить свои return 1; } } return 1; }
В
Code
public OnDialogResponce
вставляем
Code
else if(dialogid == 14) // Тут ид вашего диалогового окна { if(response) { GetPlayerName(playerid, sendername, sizeof(sendername)); if(listitem == 0) // Если нажал на 1 строку меню { if (GetPlayerState(playerid) == 2) // Телепорт если игрок в машине { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, 2216.0803,-1148.2435,25.7674); // Координаты телепорта TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else // Телепорт если игрок на ногах { SetPlayerPos(playerid, 2216.0803,-1148.2435,25.7674); // Координаты телепорта } SetPlayerInterior(playerid,0); // ид интерьера PlayerInfo[playerid][pInt] = 0; // ид интерьера } if(listitem == 1) // Если нажал на 2 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, 1529.6,-1691.2,13.3); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, 1529.6,-1691.2,13.3); } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 2) // Если нажал на 3 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, -1417.0,-295.8,14.1); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, -1417.0,-295.8,14.1); } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 3) // Если нажал на 4 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, 1699.2, 1435.1, 10.7); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, 1699.2,1435.1, 10.7); } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 4) // Если нажал на 5 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, -2030.8654,-92.3654,35.0156); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, -2030.8654,-92.3654,35.0156); } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 5) // Если нажал на 6 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, -3881.0203,1513.3143,38.6740); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, -3881.0203,1513.3143,38.6740); } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } } }
А как сделать так чтоб телепорт был с рамдомными позициями к примеру нажал на 1 строку и ты появляешься в 1 из 10 мест и ещё чтобы всем игрокам писалось что данный игрок телепортировался в данное место
if(strcmp(cmd, "/tp", true) == 0) // Возьмем команду /tp { if(IsPlayerConnected(playerid)) // Проверка на то, находится игрок в сети или нет {
Замени на:
Code
if(strcmp(cmd, "/tp", true) == 0) // Возьмем команду /tp { switch(random(2)) { case 0: SetPlayerPos(playerid,-1334.12, 2533.56, 87.27); case 1: SetPlayerPos(playerid,-1314.46, 2488.00, 87.11); } if(IsPlayerConnected(playerid)) // Проверка на то, находится игрок в сети или нет {
Вроде так Dimka_71rus,[east_side]_trane,и конечноже Я...
Запомните этих великих флудеров, офтоперов, и просто самых самых :D
C:\Documents and Settings\Admin\Рабочий стол\Наши моды на пабликах\{D}{M}.pwn(1108) : warning 219: local variable "id" shadows a variable at a preceding level C:\Documents and Settings\Admin\Рабочий стол\Наши моды на пабликах\{D}{M}.pwn(6937) : error 017: undefined symbol "sendername" C:\Documents and Settings\Admin\Рабочий стол\Наши моды на пабликах\{D}{M}.pwn(6937) : error 017: undefined symbol "sendername" C:\Documents and Settings\Admin\Рабочий стол\Наши моды на пабликах\{D}{M}.pwn(6937) : error 029: invalid expression, assumed zero C:\Documents and Settings\Admin\Рабочий стол\Наши моды на пабликах\{D}{M}.pwn(6937) : fatal error 107: too many error messages on one line
if(strcmp(cmd, "/tp", true) == 0) // Возьмем команду /tp { switch(random(2)) { case 0: SetPlayerPos(playerid,-1334.12, 2533.56, 87.27); case 1: SetPlayerPos(playerid,-1314.46, 2488.00, 87.11); } if(IsPlayerConnected(playerid)) // Проверка на то, находится игрок в сети или нет {
Кто автор этой ереси???? Если хочешь рандом то вот так
Code
if(listitem == 2) // Если нажал на 3 строку меню { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, -1417.0,-295.8,14.1); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { switch(random(3))//Кол-во случайностей { case 0: SetPlayerPos(playerid,случайная координата 1); case 1: SetPlayerPos(playerid,случайная координата 2); case 2: SetPlayerPos(playerid, -1417.0,-295.8,14.1); } } SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; }
ps так же и с тп в машине Ничто не останавливает полет мысли программиста , как компилятор! + не помешает
Сообщение отредактировал [MTA]MaPeR5518 - Среда, 31.08.2011, 04:39:41