Сохраняем координаты в файл как в SAMP (/save)

NozmaD

Администратор
Команда форума
Администратор
Сообщения
164
Баллы
208
quelfgvr.jpg

Команда сохранения позиции игрока, с возможностью добавления комментария.

Установка:

1. Скачиваете файл attached.zip
2. Распаковываете в в папку "resources"
3. В файл settings.xml вашего ресурса добавляйте следующее:
XML:
<resource src="savedPositions" />

Использование:
1. Введите команду /save (Или /save Моя точка сохранения) и сохранится следующее:

- Если вы не в машине (on foot): Ваша позиция + Комментарий (если указан).​
- Если вы в машине (in a car): Модель авто, Позиция, Угол поворота, Цвет 1 и 2, Виртуальный мир и комментарий (если указан).​

2. В вашей папке сервера теперь должен быть текстовый файл: savedpositions.txt

Для on foot:
(281,7975, -1571,29, 30,30342, 0, 0, 36,0954) //
(281,7756, -1571,25, 30,30211, 0, 0, 83,33504) // Тест

Для in a car:
API.createVehicle ((VehicleHash) 9414944, новый Vector3 (267.95, -1558.62, 28.75), новый Vector3 (-0.12, -3.08, 121.12), 34, 88, 0); //
API.createVehicle ((VehicleHash) 941494461, новый Vector3 (265.27, -1559.01, 28.81), новый Vector3 (0.83, -2.88, 101.81), 34, 88, 0); // Тест авто (Отформатирован правильно и готов к использованию в вашем скрипте)​

C#:
using System;
using GrandTheftMultiplayer.Server.API;
using GrandTheftMultiplayer.Server.Elements;
using GrandTheftMultiplayer.Server.Managers;
using System.Globalization;
using System.IO;
public class savedPositions : Script
{
   
    public savedPositions()
    {
        API.onResourceStart += MyResouceStart;
    }
    public void MyResouceStart()
    {
        API.consoleOutput("Starting \"savedPositions\" Script!");
    }
    [Command("save", GreedyArg = true)]
    public void SavePosition_Command(Client sender, string name = "")
    {
        var pos = API.getEntityPosition(sender.handle);
        var angle = API.getEntityRotation(sender.handle);
        if (sender.isInVehicle)
        {
            var dim = API.getEntityDimension(sender.handle);
            var playerVehicleHash = API.getEntityModel(API.getPlayerVehicle(sender));
            var playerVehicleColor1 = API.getVehiclePrimaryColor(API.getPlayerVehicle(sender));
            var playerVehicleColor2 = API.getVehicleSecondaryColor(API.getPlayerVehicle(sender));
            File.AppendAllText(@"savedpositions.txt", string.Format("API.createVehicle((VehicleHash){0}, new Vector3({1}, {2}, {3}), new Vector3({4}, {5}, {6}), {7}, {8}, {9}); // {10}\n", playerVehicleHash, pos.X.cc(), pos.Y.cc(), pos.Z.cc(), angle.X.cc(), angle.Y.cc(), angle.Z.cc(), playerVehicleColor1, playerVehicleColor2, dim, name));
            API.sendChatMessageToPlayer(sender, "~#92a079~", "-> InCar position saved (" + name + ")");
        }
        else
        {
            File.AppendAllText(@"savedpositions.txt", string.Format("({0}, {1}, {2}, {3}, {4}, {5}) // {6}\n", pos.X.cc(), pos.Y.cc(), pos.Z.cc(), angle.X, angle.Y, angle.Z.cc(), name));
            API.sendChatMessageToPlayer(sender, "~#92a079~", "-> OnFoot position saved (" + name + ")");
        }
    }
}
public static class CultChange
{
    public static string cc(this float value)
    {
        return value.ToString(CultureInfo.InvariantCulture);
    }
}

Автор: Stiff_Meister
 

Вложения

  • savedPositions .zip
    1.3 КБ · Просмотры: 3
Верх