Ejemplo n.º 1
0
        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}]");
        }
Ejemplo n.º 2
0
        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}$");
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
 public void CMD_sethp(Player player, int hp)
 {
     new PlayerInfo(player).SetHealth(hp);
     UtilityFuncs.SendPlayerNotify(player, 2, $"Ваше здоровье было изменено на {hp}");
 }
Ejemplo n.º 6
0
    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);
                }
            }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 private void DestoryObj(GameObject obj)
 {
     DestroyImmediate(obj);
     UtilityFuncs.MarkCurrentSceneIsDirty();
     //Undo.DestroyObjectImmediate(obj);
 }
Ejemplo n.º 9
0
        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");
                }
            }
        }