/// <summary> /// Завершение рабочего дня /// </summary> public void JobGryzYval(Client player) { PlayerInfo pInfo = API.getEntityData(player.handle, Constants.PlayerAccount); if (pInfo.Job == (int)Jobs.JOB_JOBGRYZ_ONE) { var myBox = GryzBoxes.Where(i => i.Player == player).FirstOrDefault(); if (myBox != null) { API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Сначала отнесите ящик на склад."); return; } API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_OUT, 200); API.delay(200, true, () => { pInfo.Job = (int)Jobs.NULL; API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы закончили рабочий день."); API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы pInfo.UpdateDress(); // меняем одежду на пользовательскую pInfo.money = pInfo.money + pInfo.jobMoney; pInfo.jobMoney = 0; pInfo.UpdateBD(); var Markers = pInfo.playerEntity.Where(x => x.Key == Constants.Marker); // Удаляем все пользовательские маркеры связанные с работой foreach (var Marker in Markers.ToArray()) { MarkerInfo bi = Marker.Value; if (bi.Job == Jobs.JOB_JOBGRYZ_ONE) { bi.DeleteMarker(); } } var Blips = pInfo.playerEntity.Where(x => x.Key == Constants.Blip); // Удаляем все пользовательские блипы связанные с работой foreach (var Blip in Blips.ToArray()) { BlipInfo bi = Blip.Value; if (bi.Job == Jobs.JOB_JOBGRYZ_ONE) { bi.DeleteBlip(); } } API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_IN, 750); }); } else { API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы здесь не работаете."); } }
/// <summary> /// Выход из маркера /// </summary> private void onMarkerExit(ColShape colshape, NetHandle entity) { if (colshape.hasData(Constants.MarkerClass)) { MarkerInfo mInfo = colshape.getData(Constants.MarkerClass); Client player; int type = (int)API.getEntityType(entity); if (type == 6) { player = API.getPlayerFromHandle(entity); } else { return; } if (mInfo.local && mInfo.player != player) { return; } if (mInfo.Job == Jobs.JOB_JOBGRYZ_ONE) { if (mInfo.HasData("JobGryzAction")) { switch ((int)mInfo.GetData("JobGryzAction")) { case 0: mInfo.DeleteMarker(); break; case 1: mInfo.DeleteMarker(); break; } } else if (mInfo.HasData("JobGryzZone")) // Работник пытается украсть ящик. { PlayerInfo pInfo = API.getEntityData(player.handle, Constants.PlayerAccount); if (pInfo.Job == (int)Jobs.JOB_JOBGRYZ_ONE) { pInfo.Job = (int)Jobs.NULL; API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_OUT, 200); API.delay(200, true, () => { var myBox = GryzBoxes.Where(i => i.Player == player).FirstOrDefault(); if (myBox != null) { //Удаляем украденный ящик API.detachEntity(myBox.Object); API.setEntityPosition(myBox.Object, new Vector3(55.31, -1259.78, -10.0)); API.deleteEntity(myBox.Object); GryzBoxes.Remove(myBox); API.stopPlayerAnimation(player); API.sendChatMessageToPlayer(player, "~y~[Server] ~r~Вы пытались украсть груз."); API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Ваш рабочий день окончен."); API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы ни чего не получите за работу."); API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы pInfo.UpdateDress(); // меняем одежду на пользовательскую pInfo.jobMoney = 0; } else { API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы покинули зону. Ваш рабочий день окончен."); API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы pInfo.UpdateDress(); // меняем одежду на пользовательскую pInfo.money = pInfo.money + pInfo.jobMoney; pInfo.jobMoney = 0; pInfo.UpdateBD(); } var Markers = pInfo.playerEntity.Where(x => x.Key == Constants.Marker); // Удаляем все пользовательские маркеры связанные с работой foreach (var Marker in Markers.ToArray()) { MarkerInfo bi = Marker.Value; if (bi.Job == Jobs.JOB_JOBGRYZ_ONE) { bi.DeleteMarker(); } } var Blips = pInfo.playerEntity.Where(x => x.Key == Constants.Blip); // Удаляем все пользовательские блипы связанные с работой foreach (var Blip in Blips.ToArray()) { BlipInfo bi = Blip.Value; if (bi.Job == Jobs.JOB_JOBGRYZ_ONE) { bi.DeleteBlip(); } } API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_IN, 750); }); } } else { API.triggerClientEvent(player, "JobGryzOff"); } } } else { API.deleteColShape(colshape); } }