PDA

Просмотр полной версии : [Вопрос] Как сделать сохранение позиции после /reoff



Stexit
23.07.2014, 04:33
Здравствуйте. Пробывал по всякому, не получается.

Как сделать сохранение позиции после /reoff , то есть... После выхода из режима слежения, ADM становится на то же место, где и начинал следить. Сама система /re уже есть.

Помогите пожалуйста, желательно объяснять тщательно.

A N D R E Y
23.07.2014, 08:09
Здравствуйте. Пробывал по всякому, не получается.

Как сделать сохранение позиции после /reoff , то есть... После выхода из режима слежения, ADM становится на то же место, где и начинал следить. Сама система /re уже есть.

Помогите пожалуйста, желательно объяснять тщательно.
Думаю незачем объяснять, код вам расскажет гораздо больше:
В комманду слежения:

new Float: Recon_PosX, Float: Recon_PosY, Float: Recon_PosZ; // Переменная в которую запишется позиция игрока который следит
GetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); // Узнаем позицию игрока который следит и запишем ее в переменную.

Это в комманду отключения того самого слежения:

SetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); // Устанавливаем позицию админу который следил, и теперь он встанет там где и начал слежение
Вроде как так.... Если кого-то не устраивают названия переменных то извиняйте, это все для примера.

Stexit
23.07.2014, 13:10
Думаю незачем объяснять, код вам расскажет гораздо больше:
В комманду слежения:

new Float: Recon_PosX, Float: Recon_PosY, Float: Recon_PosZ; // Переменная в которую запишется позиция игрока который следит
GetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); // Узнаем позицию игрока который следит и запишем ее в переменную.

Это в комманду отключения того самого слежения:

SetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); // Устанавливаем позицию админу который следил, и теперь он встанет там где и начал слежение
Вроде как так.... Если кого-то не устраивают названия переменных то извиняйте, это все для примера.

А это что? C:\Users\1\Desktop\MRP\gamemodes\samp-mr.pwn(55524) : error 017: undefined symbol "Recon_PosX"

wAx
23.07.2014, 13:24
А это что? C:\Users\1\Desktop\MRP\gamemodes\samp-mr.pwn(55524) : error 017: undefined symbol "Recon_PosX"

В начало мода.


new Float:Recon_PosX, Float:Recon_PosY, Float:Recon_PosZ;

Но я бы поступил так:


new Float:_r_pos_x[MAX_PLAYERS], Float:_r_pos_y[MAX_PLAYERS], Float:_r_pos_z[MAX_PLAYERS], _r_int[MAX_PLAYERS], _r_vw[MAX_PLAYERS char];


Далее


GetPlayerPos(playerid, _r_pos_x[playerid], _r_pos_y[playerid], _r_pos_z[playerid]);
_r_int[playerid] = GetPlayerInterior(playerid);
_r_vw{playerid} = GetPlayerVirtualWorld(playerid);

И далее после /reoff


SetPlayerPos(playerid, _r_pos_x[playerid], _r_pos_y[playerid], _r_pos_z[playerid]);
SetPlayerVirtualWorld(playerid, _r_vw{playerid});
SetPlayerInterior(playerid, _r_int[playerid]);

Stexit
23.07.2014, 13:26
В начало мода.


new Float:Recon_PosX, Float:Recon_PosY, Float:Recon_PosZ;
Да я уже понял, но что то не работает.
Он мне сказал в Команду отключения, у меня "Панелька", я через неё выхожу..

Сюда вставлять SetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); - stock StopSpectate(playerid) ?

wAx
23.07.2014, 13:28
Да я уже понял, но что то не работает.
Он мне сказал в Команду отключения, у меня "Панелька", я через неё выхожу..

Сюда вставлять SetPlayerPos(playerid, Recon_PosX, Recon_PosY, Recon_PosZ); - stock StopSpectate(playerid) ?

В твоей "панельке" отключает через "/reoff", если нет, то ищи в OnPlayerSelectedMenuRow или в OnPlayerClickedTextDraw

Stexit
23.07.2014, 14:46
В твоей "панельке" отключает через "/reoff", если нет, то ищи в OnPlayerSelectedMenuRow или в OnPlayerClickedTextDraw
Можно подробнее куда и что вставлять? PHP код и т.д :help:

underwoker
23.07.2014, 19:06
Можно подробнее куда и что вставлять? PHP код и т.д :help:
Ты сказал что у тебя есть команда /reoff и просто в конец ее перед return добавь Функцию SetPos которую тебе дали выше.

Stexit
23.07.2014, 20:52
Ты сказал что у тебя есть команда /reoff и просто в конец ее перед return добавь Функцию SetPos которую тебе дали выше.
А если через панельку я выхожу, то что добавить?

underwoker
23.07.2014, 21:09
А если через панельку я выхожу, то что добавить?
И через панельку тоже самое добавить. А панель на текстдравах или меню которое слева и переключаешься стрелочками?

Stexit
23.07.2014, 22:37
И через панельку тоже самое добавить. А панель на текстдравах или меню которое слева и переключаешься стрелочками?
Слева

underwoker
23.07.2014, 22:52
Значит ищи паблик

public OnPlayerSelectedMenuRow
В нем ищи выход из наблюдения, и туда вставь код телепорта на старые коор-ты.

wAx
24.07.2014, 09:24
Значит ищи паблик

public OnPlayerSelectedMenuRow
В нем ищи выход из наблюдения, и туда вставь код телепорта на старые коор-ты.

Да там полюбэ у него в OnPlayerSelectedMenuRow стоит следующий код:


OnPlayerCommandText(playerid, "/reoff");

underwoker
24.07.2014, 13:38
Да там полюбэ у него в OnPlayerSelectedMenuRow стоит следующий код:


OnPlayerCommandText(playerid, "/reoff");
Вот тоже самое думаю.

Stexit
30.07.2014, 19:34
Да там полюбэ у него в OnPlayerSelectedMenuRow стоит следующий код:


OnPlayerCommandText(playerid, "/reoff");
Нет такого вообще

case 6: // specoff
{
StopSpectate(playerid);
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}

- - - Добавлено - - -


Вот тоже самое думаю.
/reoff отдельная команда, в панельке тоже всё отдельно

underwoker
30.07.2014, 20:25
Нет такого вообще

case 6: // specoff
{
StopSpectate(playerid);
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}

- - - Добавлено - - -


/reoff отдельная команда, в панельке тоже всё отдельно
Ну так просто добавь после PlayerPlaySound Функцию SetPos которую тебе дали выше.