Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Сохранение позиции при выходе [MxINI]

Статус
В этой теме нельзя размещать новые ответы.

Tokio-Drift

Ученик
Всем привет вот решил выложить сохранение позиции при выходе из игры и Spawn на том месте где вы вышли из игры.

Ну так что приступим.

Сис-ма сохранения позиции на MxINI сразу предупредил.
Сылка для скачки include:

Для начала найдём в моде:
PHP:
enum pInfo
Далее в неё вставим:
PHP:
Float:pPos_x,
Float:pPos_y,
Float:pPos_z,
pInt,
pWorld,
В моде ищем
PHP:
public OnPlayerConnect(playerid)
В него вставим:
PHP:
PlayerInfo[playerid][pPos_x] = -275.9215;
PlayerInfo[playerid][pPos_y] = 1527.2606;
PlayerInfo[playerid][pPos_z] = 75.1405;
PlayerInfo[playerid][pInt] = 0;
PlayerInfo[playerid][pWorld] = 0;

//Это координаты: Drift-1 То есть Ухо.
Далее находим в вашем моде :Регистрацию
И вставляем в неё данное:
PHP:
ini_setFloat(iniFile, "Pos_x", -275.9215); 
ini_setFloat(iniFile, "Pos_y", 1527.2606); 
ini_setFloat(iniFile, "Pos_z", 75.1405);
ini_setInteger(iniFile, "Int", 0);
ini_setInteger(iniFile, "World", 0);
Далее находим в вашем моде :Авторизацию
И вставляем в неё данное:
PHP:
ini_getFloat(iniFile, "Pos_x", PlayerInfo[playerid][pPos_x]);
ini_getFloat(iniFile, "Pos_y", PlayerInfo[playerid][pPos_y]); 
ini_getFloat(iniFile, "Pos_z", PlayerInfo[playerid][pPos_z]);
ini_getInteger(iniFile, "Int", PlayerInfo[playerid][pInt]);
ini_getInteger(iniFile, "World", PlayerInfo[playerid][pWorld]);
Теперь добавим функцию сохранения позиции
В конец мода или куда вам удобно вставим:
PHP:
stock UpdatePlayerPosition(playerid)
{
    new Float:x, Float:y, Float:z;
	GetPlayerPos(playerid,x,y,z);
	PlayerInfo[playerid][pPos_x] = x;
	PlayerInfo[playerid][pPos_y] = y;
	PlayerInfo[playerid][pPos_z] = z;
        PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid);
        PlayerInfo[playerid][pWorld] = GetPlayerVirtualWorld(playerid);
	return 1;
}
Теперь сделаем чтоб позиция сохранялась при Disconne'кте
В моде находим:
PHP:
public OnPlayerDisconnect(playerid,reason)
В него вставляем функцию сохранения позиции:
PHP:
UpdatePlayerPosition(playerid);
Теперь сделаем чтоб игрок делал Spawn на сохранённой позиции.
В моде находим:
PHP:
public OnPlayerSpawn(playerid)
В него вставляем:
PHP:
	new Float:x,Float:y,Float:z;
	x = PlayerInfo[playerid][pPos_x];
	y = PlayerInfo[playerid][pPos_y];
	z = PlayerInfo[playerid][pPos_z];
	SetPlayerPos(playerid,x,y,z+5);
        SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]);
        SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pWorld]);
Забыл дописать:D

Сделаем чтоб позиция сохранялась в файле игрока.
В моде ищем функцию сохранения игрока и в неё вставляем:
PHP:
ini_setFloat(iniFile, "Pos_x", PlayerInfo[playerid][pPos_x]);
ini_setFloat(iniFile, "Pos_y", PlayerInfo[playerid][pPos_y]);
ini_setFloat(iniFile, "Pos_z", PlayerInfo[playerid][pPos_z]);
ini_setInteger(iniFile, "Int", PlayerInfo[playerid][pInt]);
ini_setInteger(iniFile, "World", PlayerInfo[playerid][pWorld]);
Ну вроде все , и не говорите что не работает проверенно 5 людьми.
P.S. Это мой 2 Мануал так что не кидайтесь тапочками:D


 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу