Search the Community
Showing results for tags 'NAPI'.
-
В одно время я не мог решить проблему с NAPI.World.GetTime (работает некорректно, инфу конечно же не найти почти) и решил залить для начинающих небольшой скрипт, который исправляет проблему + бонусом саму систему времени. class server_side : Script { // Переменные, которые будут заменять нам GetTime int serverHour = 6; int serverMin = 0; int serverSec = 0; // Метод, который при обращении к нему будет менять время на сервере private void server_Time(int hour, int minute, int second) { NAPI.World.SetTime(hour, minute, second); serverHour = hour; // ---------------------------------- serverMin = minute; // сохраняем в наши переменные время serverSec = second; // --------------------------------- } // Бонусный код, который создает игровое время (1 игровая минута = 20 секундам) async void time() { while (true) { serverMin++; NAPI.World.SetTime(serverHour, serverMin, 0); if (serverMin == 60) { if (serverHour >= 23) { serverHour = 0; serverMin = 0; NAPI.World.SetTime(serverHour, serverMin, 0); } else { serverHour++; serverMin = 0; NAPI.World.SetTime(serverHour, serverMin, 0); } } await Task.Delay(20000); } } [Command("time")] // команда, чтобы узнать текущее время на сервере public void CMD_time(Client client) { if (serverMin < 10) { NAPI.Chat.SendChatMessageToPlayer(client, $"Текущее время {serverHour.ToString()}:0{serverMin.ToString()}"); } else { NAPI.Chat.SendChatMessageToPlayer(client, $"Текущее время {serverHour.ToString()}:{serverMin.ToString()}"); } } // Смена времени на сервере [Command("settime")] public void CMD_settime(Client client, int hrs, int min) { server_Time(hrs, min, 0); NAPI.Chat.SendChatMessageToPlayer(client, $"Время выставлено на {hrs}:{min}"); } // Евент, чтобы время работало [ServerEvent(Event.ResourceStart)] public void OnResourceStart() { NAPI.World.SetTime(serverHour, serverMin, serverSec); time(); // Запуск цикла времени при старте сервера }
-
Hey there, I am fairly new to rage.mp but neverless a fairly experienced C# developer. Well I am using the PlaceMine example from gtanetwork. Already rewrote the page to fit NAPI instead of API. Still my server.exe crashes once the mine is supposed to explode. No error logs It just stops running, any ideas ? using System; using GTANetworkAPI; namespace minesTest { public class minesTest:Script { public minesTest() { } [ServerEvent(Event.ResourceStart)] public void myResourceStart() { NAPI.Util.ConsoleOutput("TestScript started!"); } [Command("mine")] public void PlaceMine(Client sender) { var pos = NAPI.Entity.GetEntityPosition(sender); var playerDimension = NAPI.Entity.GetEntityDimension(sender); var prop = NAPI.Object.CreateObject(NAPI.Util.GetHashKey("prop_bomb_01"), pos - new Vector3(0, 0, 1f), new Vector3(), 255, playerDimension); var shape = NAPI.ColShape.CreateSphereColShape(pos, 10); shape.Dimension = playerDimension; bool mineArmed = false; shape.OnEntityEnterColShape += (s, ent) => { if (!mineArmed) return; NAPI.Explosion.CreateOwnedExplosion(sender, ExplosionType.ProxMine, pos, 1f, playerDimension); NAPI.Entity.DeleteEntity(prop); NAPI.ColShape.DeleteColShape(shape); }; shape.OnEntityExitColShape += (s, ent) => { if(ent == sender.Handle && !mineArmed) { mineArmed = true; NAPI.Notification.SendNotificationToPlayer(sender, "Mine has been ~r~armed~w~!", true); } }; } } }