*Gnom_Nike
Изучающий
- Регистрация
- 29 Окт 2013
- Сообщения
- 577
- Лучшие ответы
- 0
- Репутация
- 84
В информацию ( это типа enum pinfo ), заносим это
Идем дальше:
создаем загрузку/сохранения информации
в паблик или сток сохранения информации о персонаже
А теперь загрузку:
Создаем сток SetPos(playerid);
1 строка - изменяем интерьер для игрока который записан в табличке [pInt]
2 строка - изменяем виртуальный мир для игрока который записан в табличке [pWorld]
3 строка - изменяем позицию игрока которые записаны в табличках [PosX],[PosY],[PosZ].
Дальше создаем сток сохранения координат:
Что бы например при спавне вас сразу спавнило на те координаты при которых вы оффнулись то в паблик OnPlayerSpawn вставьте в самый конец вот это
Автор: dimazhelek
[HR][/HR]
PHP:
Float:PosX,
Float:PosY,
Float:PosZ,
pInt,
pWorld,
Float:PosX - переменная для сохранения позиции по X
Float:PosY - переменная для сохранения позиции по Y
Float:PosZ - переменная для сохранения позиции по Z
pInt, - переменная для сохранения интерьера
pWorld - переменная для сохранения виртуального мира
создаем загрузку/сохранения информации
в паблик или сток сохранения информации о персонаже
PHP:
new str[128];
format(str, sizeof(str), "UPDATE `название вашей БД` SET `pInt` = '%d' WHERE `Name` = '%s'", PLI[playerid][pInt] ,Name(playerid));
mysql_query(str, -1, 0, connectionHandle);
format(str, sizeof(str), "UPDATE `название вашей БД` SET `pWorld` = '%d' WHERE `Name` = '%s'", PLI[playerid][pWorld] ,Name(playerid));
mysql_query(str, -1, 0, connectionHandle);
format(str, sizeof(str), "UPDATE `название вашей БД` SET `PosZ` = '%f' WHERE `Name` = '%s'", PLI[playerid][PosZ] ,Name(playerid));
mysql_query(str, -1, 0, connectionHandle);
format(str, sizeof(str), "UPDATE `название вашей БД` SET `PosX` = '%f' WHERE `Name` = '%s'", PLI[playerid][PosX] ,Name(playerid));
mysql_query(str, -1, 0, connectionHandle);
format(str, sizeof(str), "UPDATE `название вашей БД` SET `PosY` = '%f' WHERE `Name` = '%s'", PLI[playerid][PosY] ,Name(playerid));
mysql_query(str, -1, 0, connectionHandle);
PHP:
new posx[3];
new posy[3];
new posz[3];
new pint[3];
new pworld[3];
cache_get_field_content(0, "pInt", pint), PLI[i][pInt] = strval(pint);
cache_get_field_content(0, "pWorld", pworld), PLI[i][pWorld] = strval(pworld);
cache_get_field_content(0,"PosX",posx), PLI[i][PosX] = floatstr(posx);
cache_get_field_content(0,"PosY",posy), PLI[i][PosY] = floatstr(posy);
cache_get_field_content(0,"PosZ",posz), PLI[i][PosZ] = floatstr(posz);
PHP:
stock SetPos(playerid)
{
SetPlayerInterior(playerid, PLI[playerid][pInt]);
SetPlayerVirtualWorld(playerid, PLI[playerid][pWorld]);
SetPlayerPos(playerid, PLI[playerid][PosX],PLI[playerid][PosY],PLI[playerid][PosZ]);
return true;
}
2 строка - изменяем виртуальный мир для игрока который записан в табличке [pWorld]
3 строка - изменяем позицию игрока которые записаны в табличках [PosX],[PosY],[PosZ].
Дальше создаем сток сохранения координат:
PHP:
stock SavePos(playerid)
{
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid,X,Y,Z);
PLI[playerid][PosX] = X;
PLI[playerid][PosY] = Y;
PLI[playerid][PosZ] = Z;
PLI[playerid][pInt] = GetPlayerInterior(playerid);
PLI[playerid][pWorld] = GetPlayerVirtualWorld(playerid);
SavePlayer(playerid);
return true;
}
Код:
Первые 3 строчки это переменные ( Float потому-что нам нужно записывать координаты, а они с точкой )
Дальше GetPlayerPos(playerid,X,Y,Z); берем координаты по X,Y,Z
Дальше изменяем ячейку [pInt] на ид того интерьера в котором сейчас находится игрок
Дальше изменяем ячейку [pWorld] на ид виртаульного мира в котором сейчас находится игрок
И наконец в паблик OnPlayerUpdate вставляем такую строчку, хотите в начало, хотите в конец но лучше конечно в начало
PHP:
SavePos(playerid);
PHP:
SetPos(playerid);
[HR][/HR]