Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
extremist

[РЕЛИЗ] Пользовательская точка спауна через базу данных

Рекомендованные сообщения

проблема решена..
если у кого либо есть такое,то значение INT меняем на BIGINT в обеих таблицах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



проблема решена..

если у кого либо есть такое,то значение INT меняем на BIGINT в обеих таблицах.

Я чесно говоря тебя не пойму)

ID как был, так и остался - 9 знаков.

GUID как был так и остался - 33 знака.

 

А ты скорее всего юзанул какую то опцию в новом эпоче - на предмет запрета смены ID или GUID, собсно она вынесена в новой сборке в конфиг.

Поэтому какие то пляски с бубном у тебя)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

увы. я тут не причём. вилаер. долбанный вилаер. 
вот пляски с бубном начнутся когда свою машину поставлю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, кто решил проблему с добавлением таблицы через навикат или хейди - каким образом решили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попытался сделать через скрипт

if ((getPlayerUID player) in ["76561198007872650","76561198116444935"]) then {
	sleep 120;
player setPos [8041.28,16650.7,0];
};

срабатывает, но через раз и бывает что тпшит не только после смерти, но и после рестарта сервера.

как сделать чтобы телепортировал только при создании нового персонажа?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

MySQL-Front. Вот тоже прога не хуже Навиката

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, кто решил проблему с добавлением таблицы через навикат или хейди - каким образом решили?

в гайде же всё описано..разделитель перед вставкой добавь и всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Хочу предложить Вашему вниманию возможность спауниться определённому игроку в определённом месте на карте.

 

Область применения:

1. Админский спаун на админской базе

2. Донатерский спаун на донатерской базе

3. Наказание для игроков

 

по п.1,2 пояснений давать нет смысла, а вот п.3 объясню.

На своём сервере я построил тюрьму, в которую игроки помещаются за нарушение правил сервера. Задав UID  и координаты местоположения в тюрьме игрок будет всегда спауниться после смерти в тюрьме. При этом свою тюрьму я сделал неприступным островом, сбежать из которой можно лишь при помощи другого игрока на вертолёте )))) После отправок игроков на нары желание нарушать установленные правила резко сокращается - проверено.

 

Теперь инструкция о том как создать кастомную точку спауна:

 

Установка:

------------------------------------------------------------------​

1. Зайдите в  PHPmyAdmin.​

2. Кликните по названию своей базы данных ( обычно dayz_epoch)

3. Кликните на вкладку  SQL (наверху).

4. Теперь в окне SQL вставьте следующий код:​

CREATE TABLE `cust_spawn` (
`PlayerUID` INT(10) NULL DEFAULT NULL,
`worldspace` VARCHAR(50) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

Нажмите OK.​

Этот код создаст новую таблицу с названием "cust_spawn"  в вашей базе данных.​

5. Кликните "clear/очистить"  на странице ввода  SQL кода.​

6. Вставьте следующий код в окно SQL :​

CREATE TRIGGER `custom_spawn`
  BEFORE INSERT ON `character_data`
  FOR EACH ROW
BEGIN
DECLARE x INT;
DECLARE y varchar(50);
SET x = (SELECT `PlayerUID` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
SET y = (SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
IF NEW.PlayerUID = x THEN
SET NEW.worldspace=y;
END IF;
END;$

 

Перед тем как нажать ОК в окошке разделитель(delimiter) вставьте без кавычек " $$ " и лишь затем нажмите ОК.​

Теперь у Вас есть таблица для кастомного спауна с тригером, который будет спаунить игрока из таблицы​ "cust_spawn" по указанным в ней координатам каждый раз когда игрок будет умирать.

Для того чтобы задать игроку точку спауна достаточно указать UID игрока и координаты в таблице "cust_spawn".

 

Пример координат для спауна игрока:​

[268,[8627.69,12631.1,0.002]]

ВНИМАНИЕ!!! Перед тем как осуществлять какие либо манипуляции со своей базой данных создайте резервную копию!!!!

куда писать ID и координаты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

phpMyAdmin в гробу видал. Делаю через NAvicat, вылезает такая ошибка при совершении второго пункта:

 

[Err] 1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
[Err] CREATE TRIGGER `custom_spawn`
 

как это фиксить?

Пофиксил



Делаю через Navicat
Открываю таблицу с базой данных сервера 1.0.4.2а (официалка с оф сайта)
открываю консоль
вбиваю 1-й код, энтер, пишет, что вроде как успешно.
Обновляю, таблица появилась.
Вбиваю 2-й код, энтер, пишет, что всё врое как ок.
Обновляю, таблица на месте.

Захожу в неё - пишет следующее со скриншота. Что делать?
Вопрос 2: фразу


я не понял

Скриншот:
wvdQi.png

как ты это исправил?

 

Все пофиксил сам. Пришлось немного почитать вики по MySQL, потому что код от ТС неверный.

Изменено пользователем kotketa (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

куда писать ID и координаты?

 

И куда же писать ID и координаты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И куда же писать ID и координаты?

в таблицу custom_spawn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос -

А почему через SQL?

Не проще - скриптом по UID задавать player setPOS, при логине?

И сажать можно прямо в игре, без релога...

 

Турьма это интересно)

Как в УО))

Надо еще добавить - вырубку леса) И пока не нарубит ххх леса не выпускать)

 

А не подстажете ли,глубокоуважаемый,как можно это активировать и где?

 

 

sleep 1;

//До 10.12.2099

if ((getPlayerUID player) in ["********","*********","**********","0","0"]) exitWith

{

player setPosATL [7780.54,8038.16,0];

};

//Name Players:

if ((getPlayerUID player) in ["0","0","0"]) exitWith

{

player setPosATL [0,0,0];

};

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде бы допёр с другом как убрать эту ошибку в навикате. Могу заснять на видео, если кому надо.

Спс за гайд, работает ;)

P.S. вопросик: таким же образом можно же и лут индивидуальный назначать, верно понял?

Не поделишься своим знанием?,такая же ошибка ,как у тебя(((

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде бы допёр с другом как убрать эту ошибку в навикате. Могу заснять на видео, если кому надо.

Спс за гайд, работает ;)

P.S. вопросик: таким же образом можно же и лут индивидуальный назначать, верно понял?

Засними видео для навикета! буду благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде бы допёр с другом как убрать эту ошибку в навикате. Могу заснять на видео, если кому надо.

Спс за гайд, работает ;)

P.S. вопросик: таким же образом можно же и лут индивидуальный назначать, верно понял?

Запили на видео, буду благодарен)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Пример координат для спауна игрока:​ [268,[8627.69,12631.1,0.002]]

 

Подскажите как можно получить координаты? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И еще вопрос по PlayerUID, он состоит из 17 цифр.

Здесь в запросе на создание таблицы написано так

CREATE TABLE `cust_spawn` (
`PlayerUID` INT(10) NULL DEFAULT NULL,
`worldspace` VARCHAR(50) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

а должно быть так

CREATE TABLE `cust_spawn` (
`PlayerUID` VARCHAR(20) NULL DEFAULT NULL,
`worldspace` VARCHAR(50) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

или так?

CREATE TABLE `cust_spawn` (
`PlayerUID` INT(20) NULL DEFAULT NULL,
`worldspace` VARCHAR(50) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB; 

 

Если я все правильно понял!?

Изменено пользователем stspartak (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Все пофиксил сам.

Не расскажешь как?) вроде всё работает но вылазит эта же хрень каждый раз при открывании таблицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

SQL запрос в БД на создание триггера

DROP TRIGGER IF EXISTS `custom_spawn`;
DELIMITER ;;
CREATE TRIGGER `custom_spawn`
  BEFORE INSERT ON `character_data`
  FOR EACH ROW
BEGIN
DECLARE x INT;
DECLARE y varchar(50);
SET x = (SELECT `PlayerUID` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
SET y = (SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
IF NEW.PlayerUID = x THEN
SET NEW.worldspace=y;
END IF;
END
;;
DELIMITER ;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

SQL запрос в БД на создание триггера

DROP TRIGGER IF EXISTS `custom_spawn`;
DELIMITER ;;
CREATE TRIGGER `custom_spawn`
  BEFORE INSERT ON `character_data`
  FOR EACH ROW
BEGIN
DECLARE x INT;
DECLARE y varchar(50);
SET x = (SELECT `PlayerUID` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
SET y = (SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID);
IF NEW.PlayerUID = x THEN
SET NEW.worldspace=y;
END IF;
END
;;
DELIMITER ;

То есть чтоб избавиться от этой ошибки мне нужно удалить таблицу с этим триггером, создать ее заново и создать заново триггер этим запросом?

В разделитель ставить $$ уже не нужно?

Я всё правильно понял?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отлично



2



3



Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.