public void CMD_gethere(Player client, int playerid) { if (playerid < 0 || playerid >= NAPI.Server.GetMaxPlayers()) { client.SendChatMessage("Неверный ID"); return; } Player player = NAPI.Pools.GetAllPlayers().Where(p => p.Value == playerid).FirstOrDefault(); if (player == null) { client.SendChatMessage($"Игрок с {playerid} ID не найден!"); return; } else if (NAPI.Player.IsPlayerDead(player)) { client.SendChatMessage("Игрок не заспавнен!"); return; } player.Position = UtilityFuncs.GetPosFrontOfPlayer(client, 1.0); player.Dimension = client.Dimension; client.SendChatMessage($"Вы успешно телепортировались к себе игрока {new Data.PlayerInfo(player).GetName()}[{playerid}]"); }
public void CMD_givemoney(Player client, double money) { Data.PlayerInfo playerInfo = new Data.PlayerInfo(client); playerInfo.GiveMoney(money); string msg = money < 0 ? "" : "+"; UtilityFuncs.SendPlayerNotify(client, 0, $"{msg}{money}$"); }
public void CMD_veh(Player player, string vehname) { if (player.HasData("admin_car")) { player.GetData <Vehicle>("admin_car").Delete(); player.ResetData("admin_car"); } Vehicle veh = NAPI.Vehicle.CreateVehicle(NAPI.Util.GetHashKey(vehname), UtilityFuncs.GetPosFrontOfPlayer(player, 3.0), player.Rotation.Z / 2, new Random().Next(0, 255), new Random().Next(0, 255), numberPlate: "Admin"); veh.NumberPlate = "Admin"; player.SetData <Vehicle>("admin_car", veh); veh.SetData <bool>("temp_vehicle", true); }
void OnGUI() { EditorGUILayout.Space(); Material newMaterial = EditorGUILayout.ObjectField("Material", _prototype._material, typeof(Material), false) as Material; _parent.SetPrototypeMaterial(_prototype, newMaterial); EditorGUI.BeginChangeCheck(); _prototype._minWidth = EditorGUILayout.FloatField("Min Width", _prototype._minWidth); _prototype._maxWidth = EditorGUILayout.FloatField("Max Width", _prototype._maxWidth); _prototype._minHeight = EditorGUILayout.FloatField("Min Height", _prototype._minHeight); _prototype._maxHeight = EditorGUILayout.FloatField("Max Height", _prototype._maxHeight); if (EditorGUI.EndChangeCheck()) { _parent.UpdateDetailsSize(_prototype); UtilityFuncs.MarkCurrentSceneIsDirty(); } }
public void CMD_sethp(Player player, int hp) { new PlayerInfo(player).SetHealth(hp); UtilityFuncs.SendPlayerNotify(player, 2, $"Ваше здоровье было изменено на {hp}"); }
private void pChaosSettings(bool previewMode_, List<EntropyLayerSettings> listOfSettings, EntropySettings simSettings) // set to true for preview; else we run with random inputs { customRNGMapping = false; previewMode = previewMode_; int count = listOfSettings.Count; overlayX = new double[count]; overlayY = new double[count]; hTipBiasType = new double[count]; vTipBiasType = new double[count]; horTipBiasVar = new double[count]; verTipBiasVar = new double[count]; iCVar = new double[count]; iC_PAsearch = new bool[count]; oCVar = new double[count]; oC_PAsearch = new bool[count]; LWRVar = new double[count]; LWR2Var = new double[count]; CDUSVar = new double[count]; CDUTVar = new double[count]; wobbleVar = new double[count]; LWRSeed = new int[count]; LWR2Seed = new int[count]; #if !CHAOSSINGLETHREADED Parallel.For(0, count, i => #else for (int i = 0; i < count; i++) #endif { iC_PAsearch[i] = false; oC_PAsearch[i] = false; LWRSeed[i] = 1; LWR2Seed[i] = 1; if (previewMode) { overlayX[i] = 0; overlayY[i] = 0; hTipBiasType[i] = 0; vTipBiasType[i] = 0; horTipBiasVar[i] = 0; verTipBiasVar[i] = 0; iCVar[i] = 0; oCVar[i] = 0; LWRVar[i] = 0; LWR2Var[i] = 0; CDUSVar[i] = 0; CDUTVar[i] = 0; wobbleVar[i] = 0; } else { if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.xOL_RNG))) { customRNGMapping = true; overlayX[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.xOL_RNG), simSettings); } else { overlayX[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.yOL_RNG))) { customRNGMapping = true; overlayY[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.yOL_RNG), simSettings); } else { overlayY[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } hTipBiasType[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); vTipBiasType[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); horTipBiasVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); // Need to pay attention to sign here, to pull the right custom equation. if (hTipBiasType[i] < 0.5 && rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.hTipNVar_RNG))) { customRNGMapping = true; horTipBiasVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.hTipNVar_RNG), simSettings); } if (hTipBiasType[i] >= 0.5 && rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.hTipPVar_RNG))) { customRNGMapping = true; horTipBiasVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.hTipPVar_RNG), simSettings); } verTipBiasVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); // Need to pay attention to sign here, to pull the right custom equation. if (vTipBiasType[i] < 0.5 && rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.vTipNVar_RNG))) { customRNGMapping = true; verTipBiasVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.vTipNVar_RNG), simSettings); } if (vTipBiasType[i] >= 0.5 && listOfSettings[i].getString(EntropyLayerSettings.properties_s.vTipPVar_RNG) != "" && listOfSettings[i].getString(EntropyLayerSettings.properties_s.vTipPVar_RNG) != CommonVars.boxMuller) { verTipBiasVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.vTipPVar_RNG), simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.iCV_RNG))) { customRNGMapping = true; iCVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.iCV_RNG), simSettings); } else { iCVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.oCV_RNG))) { customRNGMapping = true; oCVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.oCV_RNG), simSettings); } else { oCVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.lwr_RNG))) { customRNGMapping = true; LWRVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.lwr_RNG), simSettings); } else { LWRVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.lwr2_RNG))) { customRNGMapping = true; LWR2Var[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.lwr2_RNG), simSettings); } else { LWR2Var[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.sCDU_RNG))) { customRNGMapping = true; CDUSVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.sCDU_RNG), simSettings); } else { CDUSVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } // Note that the TVar will be matched to SVar if the simulation settings call for these to be linked. if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.tCDU_RNG))) { customRNGMapping = true; CDUTVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.tCDU_RNG), simSettings); } else { CDUTVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } if (rngCheck(listOfSettings[i].getString(EntropyLayerSettings.properties_s.wobble_RNG))) { customRNGMapping = true; wobbleVar[i] = UtilityFuncs.getCustomMappedRandomNumber(listOfSettings[i].getString(EntropyLayerSettings.properties_s.wobble_RNG), simSettings); } else { wobbleVar[i] = UtilityFuncs.getGaussianRandomNumber3(simSettings); } LWRSeed[i] = UtilityFuncs.getRandomInt(simSettings); LWR2Seed[i] = UtilityFuncs.getRandomInt(simSettings); } }
private bool AddDetailObjs(GrassPrototype prototype, int x, int z, int amount) { for (int i = 0; i < amount; i++) { Vector3 pos = new Vector3(x + Random.Range(0.0f, 1.0f), 0, z + Random.Range(0.0f, 1.0f)); Ray ray = new Ray(new Vector3(pos.x, 100000, pos.z), Vector3.down); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, _editor._layerMask)) { pos.y = hit.point.y; GameObject go = new GameObject(prototype._material.name); //Undo.RegisterCreatedObjectUndo(go, go.name); //go.layer = LayerMask.NameToLayer("Vegetation"); //go.hideFlags = HideFlags.HideInHierarchy; go.tag = "EditorOnly"; GameObjectUtility.SetStaticEditorFlags(go, StaticEditorFlags.LightmapStatic | StaticEditorFlags.BatchingStatic); go.hideFlags = HideFlags.NotEditable; go.transform.position = pos; go.transform.localEulerAngles = new Vector3(0, Random.Range(0, 360), 0); float width = Random.Range(prototype._minWidth, prototype._maxWidth); float height = Random.Range(prototype._minHeight, prototype._maxHeight); go.transform.localScale = new Vector3(width, height, 1); go.transform.SetParent(GrassRootGo.transform); MeshFilter meshFilter = go.AddComponent <MeshFilter>(); Mesh mesh = _editor._grassMesh; meshFilter.mesh = mesh; MeshRenderer meshRenderer = go.AddComponent <MeshRenderer>(); meshRenderer.sharedMaterial = prototype._material; SerializedObject so = new SerializedObject(meshRenderer); SerializedProperty goScaleProperty = so.FindProperty("m_ScaleInLightmap"); goScaleProperty.floatValue = _editor._scaleInLightmap; so.ApplyModifiedProperties(); GrassObject info = go.AddComponent <GrassObject>(); info._material = prototype._material; //info._x = x; //info._z = z; //fix y if (_editor._isKeepInDeep) { float minY = pos.y; for (int v = 0; v < mesh.vertexCount; v++) { if (mesh.vertices[v].y == 0) { Vector3 posWorld = go.transform.TransformPoint(mesh.vertices[v]); if (Physics.Raycast(posWorld, Vector3.down, out hit, Mathf.Infinity, _editor._layerMask)) { if (hit.point.y < minY) { minY = hit.point.y; } } } } if (minY < pos.y) { pos.y = minY; go.transform.position = pos; } } UtilityFuncs.MarkCurrentSceneIsDirty(); } } return(true); }
private void DestoryObj(GameObject obj) { DestroyImmediate(obj); UtilityFuncs.MarkCurrentSceneIsDirty(); //Undo.DestroyObjectImmediate(obj); }
public void ExportMeshToFile(GameObject go) { string path = EditorUtility.SaveFilePanelInProject("Save Mesh", go.name, "asset", "Please enter a file name to save the mesh(es) to"); if (!string.IsNullOrEmpty(path)) { Dictionary <int, MeshFilter> index2MeshFilter = new Dictionary <int, MeshFilter>(); Dictionary <int, SkinnedMeshRenderer> index2SkinnedRenderer = new Dictionary <int, SkinnedMeshRenderer>(); List <Mesh> exportMeshes = new List <Mesh>(); { MeshFilter[] meshFilters; if (_includeAllChildren) { meshFilters = go.GetComponentsInChildren <MeshFilter>(_includeInactive); } else { meshFilters = new MeshFilter[1]; meshFilters[0] = go.GetComponent <MeshFilter>(); } foreach (MeshFilter meshFilter in meshFilters) { if (meshFilter != null && meshFilter.sharedMesh != null) { Mesh mesh = CopyMesh(meshFilter.sharedMesh.name, meshFilter.sharedMesh, false); if (mesh != null) { if (_autoAssignMesh) { index2MeshFilter.Add(exportMeshes.Count, meshFilter); } exportMeshes.Add(mesh); } } } } { SkinnedMeshRenderer[] skinnedRenderers; if (_includeAllChildren) { skinnedRenderers = go.GetComponentsInChildren <SkinnedMeshRenderer>(_includeInactive); } else { skinnedRenderers = new SkinnedMeshRenderer[1]; skinnedRenderers[0] = go.GetComponent <SkinnedMeshRenderer>(); } foreach (SkinnedMeshRenderer skinnedRenderer in skinnedRenderers) { if (skinnedRenderer != null && skinnedRenderer.sharedMesh != null) { Mesh mesh = CopyMesh(skinnedRenderer.sharedMesh.name, skinnedRenderer.sharedMesh, true); if (mesh != null) { if (_autoAssignMesh) { index2SkinnedRenderer.Add(exportMeshes.Count, skinnedRenderer); } exportMeshes.Add(mesh); } } } } if (exportMeshes.Count > 0) { SaveToFile(path, exportMeshes); AssetDatabase.ImportAsset(path); MeshExportData meshExportData = AssetDatabase.LoadAssetAtPath(path, typeof(MeshExportData)) as MeshExportData; if (_autoAssignMesh) { for (int i = 0; i < meshExportData._meshes.Length; i++) { MeshFilter meshFilterOrgin; if (index2MeshFilter.TryGetValue(i, out meshFilterOrgin)) { meshFilterOrgin.sharedMesh = meshExportData._meshes[i]; } else { SkinnedMeshRenderer skinnedRendererOrgin; if (index2SkinnedRenderer.TryGetValue(i, out skinnedRendererOrgin)) { skinnedRendererOrgin.sharedMesh = meshExportData._meshes[i]; } } } UtilityFuncs.MarkCurrentSceneIsDirty(); } Debug.Log("成功导出Mesh数据到" + path, meshExportData); } else { EditorUtility.DisplayDialog("提示", "没有导出任何Mesh数据!", "OK"); } } }