[Мануал] Сохранение позиции при выходе MxIni

  • Автор темы Pawno.INC
  • 244
  • Обновлено
  • 25, Aug 2014
  • #1
Всем привет вот решил выложить сохранение позиции при выходе из игры и Spawn на том месте где вы вышли из игры. Ну так что приступим. Сис-ма сохранения позиции на MxINI сразу предупредил. Для начала найдём в моде enum pInfo Далее в неё вставим:
 Float:pPos_x, 
Float:pPos_y, 
Float:pPos_z, 
pInt, // если такой есть уже, то не надо его вставлять !
pWorld, 

в public OnPlayerConnect(playerid)
  	
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; 

Далее находим в вашем моде OnplayerRegister И вставляем в неё данное:
 
ini_setFloat(File, "Pos_x", -275.9215); 
ini_setFloat(File, "Pos_y", 1527.2606); 
ini_setFloat(File, "Pos_z", 75.1405); 
ini_setInteger(File, "Int", 0); 
ini_setInteger(File, "World", 0); 

Далее находим в вашем моде Onplayerlogin И вставляем в неё данное:
  ini_getFloat(File, "Pos_x", PlayerInfo[playerid][pPos_x]); 

ini_getFloat(File, "Pos_y", PlayerInfo[playerid][pPos_y]);

ini_getFloat(File, "Pos_z", PlayerInfo[playerid][pPos_z]);

ini_getInteger(File, "Int", PlayerInfo[playerid][pInt]);

ini_getInteger(File, "World", PlayerInfo[playerid][pWorld]);

Теперь добавим функцию сохранения позиции В конец мода или куда вам удобно вставим:
  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'кте В моде находим public OnPlayerDisconnect(playerid,reason) В него вставляем функцию сохранения позиции:
 UpdatePlayerPosition(playerid); 


Теперь сделаем чтоб игрок делал Spawn на сохранённой позиции. В моде находим public OnPlayerSpawn(playerid)
 

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]);

Не забываем и про того что Сделаем чтоб позиция сохранялась в файле игрока. В моде ищем функцию сохранения игрока и в неё вставляем:SavessAkk
 

ini_setFloat(File, "Pos_x", PlayerInfo[playerid][pPos_x]);

ini_setFloat(File, "Pos_y", PlayerInfo[playerid][pPos_y]);

ini_setFloat(File, "Pos_z", PlayerInfo[playerid][pPos_z]);

ini_setInteger(File, "Int", PlayerInfo[playerid][pInt]);

ini_setInteger(File, "World", PlayerInfo[playerid][pWorld]);

Сохраняет позицию и миры Автор: неизвестно Доработал я

Pawno.INC


Рег
24 Aug, 2014

Тем
5

Постов
5

Баллов
55
Похожие темы Дата
Тем
49554
Комментарии
57426
Опыт
552966

Интересно