Сохранение позиции и возврат в сохраненную позицию, сохранить позицию можно с помощью функции get_user_origin, а вот телепортироваться обратно поможет функция set_user_origin
Инфо из fun.inc
/* Move player to origin. */
native set_user_origin(index, const origin[3]);
Синтаксис:
set_user_origin ( index, origin[3] )
- index - id перемещаемого игрока
- origin[3] - Массив с координатами
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Get user orign and set"
#define VERSION "1.0"
#define AUTHOR "Admin"
new g_origin[3]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /save","save")
register_clcmd("say /load","load")
}
public save(id){
get_user_origin(id,g_origin,0)
client_print(id,print_chat,"Save:X %d, Y %d, Z %d",g_origin[0],g_origin[1],g_origin[2])
}
public load(id){
if(g_origin[0] != 0 ){
set_user_origin(id,g_origin)
client_print(id,print_chat,"Load:X %d, Y %d, Z %d",g_origin[0],g_origin[1],g_origin[2])
}
}
Описание:
У нас в распоряжении 2 команды:
- say /save - В вызываемой функции мы получаем массив с координатами и записываем его
- say /load - Перемещаем игрока в сохраненный массив.
Обратите внимание, что массив один, и если на сервере будет кроме вас кто то, перемещаться будут все в одно и то же место. Которое было сохранено последним. Что бы массив был для каждого игрока разным, нужно создавать двухмерный массив g_origin[id][3], где для каждого игрока будут храниться свои координаты. И во всех местах где есть обращение к массиву, будет необходимо указывать индекс.