public ChooseTimeDialog() { InitializeComponent(); scheduledTime = new ItemScheduledTime(); _timePicker.Time = DateTime.Now.TimeOfDay; Title = "New Alarm"; BindingContext = this; var settingsDatabaseController = new SettingsDatabaseController(); var curr_settings = settingsDatabaseController.GetSettings(); if (curr_settings == null) { curr_settings = new ItemSettings() { IsDatabaseSetUp = true, LastDifficultyChosen = "Advanced" }; settingsDatabaseController.SaveSettings(curr_settings); } switch (curr_settings.LastDifficultyChosen) { case "A1": pickerIndex = 0; break; case "A2": pickerIndex = 1; break; case "B1": pickerIndex = 2; break; case "B2": pickerIndex = 3; break; default: pickerIndex = 4; break; } _difficultyPicker.SelectedIndex = pickerIndex; }
// ------ public bool IsDefault() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); return(settings.IsDefault()); } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); return(settings.IsDefault()); } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); return(settings.IsDefault()); } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); return(settings.IsDefault()); } return(false); }
public void LoadObject() { Move = Resources.FindObjectsOfTypeAll <MoveSettings>().First() as MoveSettings; Item = Resources.FindObjectsOfTypeAll <ItemSettings>().First() as ItemSettings; Attack = Resources.FindObjectsOfTypeAll <AttackSettings>().First() as AttackSettings; Game = Resources.FindObjectsOfTypeAll <GameSettings>().First() as GameSettings; }
protected void RepeaterOptions_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { SettingEntity ThemeSetting = e.Item.DataItem as SettingEntity; KeyValueEntity KeyValue = ItemSettings.Find(r1 => r1.Key == ThemeSetting.Name); if (KeyValue != null && !String.IsNullOrEmpty(KeyValue.Key)) { ThemeSetting.DefaultValue = KeyValue.Value.ToString(); } //构造输入控件 PlaceHolder ThemePH = e.Item.FindControl("ThemePH") as PlaceHolder; #region "创建控件" ControlHelper ctl = new ControlHelper(this); ThemePH.Controls.Add((Control)ctl.ViewControl(ThemeSetting)); #endregion Literal liTitle = e.Item.FindControl("liTitle") as Literal; liTitle.Text = String.Format("<label class=\"col-sm-3 control-label\" for=\"{1}\">{0}:</label>", !String.IsNullOrEmpty(ThemeSetting.Alias) ? ThemeSetting.Alias : ThemeSetting.Name, ctl.ViewControlID(ThemeSetting)); if (!String.IsNullOrEmpty(ThemeSetting.Description)) { Literal liHelp = e.Item.FindControl("liHelp") as Literal; liHelp.Text = String.Format("<span class=\"help-block\"><i class=\"fa fa-info-circle\"></i> {0}</span>", ThemeSetting.Description); } } }
private void Awake() { //TODO make items be generator through something else and automatically hooked up to this Root = FindObjectOfType <ItemRoot>(); _itemSettings = ComponentUtility.FindOnNamedGameObject <ItemSettings>(); MeshRendererArray = this.GetComponentsInChildren <MeshRenderer>(); MeshArray = new Mesh[MeshRendererArray.Length]; for (int i = 0; i < MeshArray.Length; ++i) { MeshArray[i] = MeshRendererArray[i].GetComponent <MeshFilter>().sharedMesh; } MeshTransformArray = new Transform[MeshRendererArray.Length]; for (int i = 0; i < MeshTransformArray.Length; ++i) { MeshTransformArray[i] = MeshRendererArray[i].GetComponent <Transform>(); } MaterialArrayInitialize(); ColliderArrayInitialize(); _catcher = GameObject.FindObjectOfType <Catcher>(); }
public void SpawnItem(ItemTier tier) { ItemSettings settings = m_ItemTierSettings[tier]; int amountOfMachinesRequired = Random.Range(settings.MinAmountMachines, settings.MaxAmountMachines + 1); List <int> machineIndexList = new List <int> { 1, 2, 3, 4 }; for (int i = 0; i < 4 - amountOfMachinesRequired; ++i) { int randIndex = Random.Range(0, machineIndexList.Count); int machineIndex = machineIndexList[randIndex]; machineIndexList.RemoveAt(randIndex); } ItemRuntimeData runtimeData; runtimeData.MachineOrderList = machineIndexList; // Spawn the actual item Spawn(runtimeData, settings); }
internal void SaveSettings(PaneSettings ps) { SetMappedItem(ps.GridLineItem); SaveAxisSettings(ps.XAxis, XAxis); SaveAxisSettings(ps.X2Axis, X2Axis); SaveAxisSettings(ps.YAxis, YAxis); SaveAxisSettings(ps.Y2Axis, Y2Axis); foreach (LogGraphCurveItem item in CurveList) { ItemSettings settings = new ItemSettings(); settings.ID = item.ItemID; settings.AssignedToX2Axis = item.IsX2Axis; settings.AssignedToY2Axis = item.IsY2Axis; settings.ShowSymbol = item.Symbol.IsVisible; settings.Color = item.Color.ToArgb(); settings.DrawInfinitely = item.DrawInfinitely; ps.Items.Add(settings); } ps.Threshold = m_Threshold?.Location.Y.ToString(); m_HasChanged = false; }
public void ConsumableItemUsed(E_ItemID id) { int index = PlayerData.InventoryList.Items.FindIndex(p => p.ID == id); if (index < 0) { return; } PPIItemData itemData = PlayerData.InventoryList.Items[index]; MFDebugUtils.Assert(itemData.IsValid()); itemData.Count--; PlayerData.InventoryList.Items[index] = itemData; if (uLink.Network.isServer) { //SEND TO CLOUD !!!! ItemSettings settings = ItemSettingsManager.Instance.Get(id); CloudServices.GetInstance() .ModifyItem(PrimaryKey, PPIManager.ProductID, settings.GUID, "Count", itemData.Count.ToString(), CloudConfiguration.DedicatedServerPasswordHash); } }
// ------ public bool Enabled() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); return(!settings.DISABLED); } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); return(!settings.DISABLED); } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); return(!settings.DISABLED); } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); return(!settings.DISABLED); } else { Error("Unknown type!"); } return(false); }
private void Spawn(ItemRuntimeData runtimeData, ItemSettings settings) { Transform randomSpawnTransform = m_ItemSpawnPoints[Random.Range(0, m_ItemSpawnPoints.Length)]; Item spawnedItem = Instantiate(settings.Prefab, randomSpawnTransform.position, Quaternion.identity).GetComponent <Item>(); spawnedItem.SetRuntimeData(runtimeData); }
private static void CreateAsset() { string path = UnityEditor.AssetDatabase.GetAssetPath(UnityEditor.Selection.activeObject); string assetPath = path + "/BlankItemSettings.asset"; ItemSettings item = ScriptableObject.CreateInstance <ItemSettings>(); UnityEditor.ProjectWindowUtil.CreateAsset(item, assetPath); }
void Awake() { GameObject gameObject = new GameObject(this.name + "Target"); TargetTransform = gameObject.GetComponent <Transform>(); TargetTransform.position = GetComponent <Item>().transform.position; TargetTransform.forward = GetComponent <Item>().transform.forward; AttachPointArray = GetComponentsInChildren <AttachPoint>(); _itemSettings = ComponentUtility.FindOnNamedGameObject <ItemSettings>(); }
protected override void Initialize(AgentAction action) { base.Initialize(action); Action = action as AgentActionUseItem; AnimName = Owner.AnimSet.GetGadgetAnim(Owner.BlackBoard.Desires.Gadget, Action.CoverPose, Action.CoverDirection); if ((AnimName == null) || (Animation[AnimName] == null)) { Action.SetFailed(); Action = null; Release(); return; } // play owner anims //THROW_RUN // if ( Owner.BlackBoard.MotionType != E_MotionType.Walk && Owner.BlackBoard.MotionType != E_MotionType.Run ) //allow movement while throwing if (Owner.BlackBoard.KeepMotion == false) //beny: due to 'UseItem while Move' feature { Animation[AnimName].layer = 3; CrossFade(AnimName, 0.2f, PlayMode.StopAll); Animation[AnimName].speed = 1.4f; //Animation.Play(animName, AnimationPlayMode.Stop); EndOfStateTime = Animation[AnimName].length * 0.7f + Time.timeSinceLevelLoad; } else //movement throw { Animation[AnimName].layer = 3; // Animation[AnimName].blendMode = AnimationBlendMode.Additive; Blend(AnimName, 0.2f); Animation[AnimName].speed = 1.4f; EndOfStateTime = Animation[AnimName].length * 0.8f / Animation[AnimName].speed + Time.timeSinceLevelLoad; // Debug.Log ("ThrowRun"); } if (Owner.IsServer) { ThrowTime = 0.5f / Animation[AnimName].speed + Time.timeSinceLevelLoad; } ItemSettings s = ItemSettingsManager.Instance.Get(Owner.BlackBoard.Desires.Gadget); if (s && s.ItemBehaviour == E_ItemBehaviour.Place) { Owner.SoundPlay(Owner.UseSound); } else { Owner.SoundPlay(Owner.ThrowSound); } }
int CompareItem(int otherId) { ItemSettings otherWs = ItemSettingsManager.Instance.Get((E_ItemID)(otherId)); ItemSettings myWs = ItemSettingsManager.Instance.Get((E_ItemID)(Id)); int res = myWs.ItemType.CompareTo(otherWs.ItemType); if (res != 0) { return(res); } //2. behaviour return(myWs.ItemBehaviour.CompareTo(otherWs.ItemBehaviour)); }
public ConveyorItem(Conveyor conveyor, ItemDefinition definition, ItemSettings settings) : base("Conveyor" + definition.type.ToString(), GameObject.CreatePrimitive(PrimitiveType.Quad)) { _conveyor = conveyor; this.settings = settings; this.definition = definition; container.transform.localRotation = Quaternion.Euler(90, 0, 0); body.transform.localRotation = Quaternion.identity; body.transform.localScale = new Vector3(width, height, 1); meshRenderer.material.color = Color.white; label.SetLocalRotation(Quaternion.identity); label.SetText(type.ToString() + "\n" + level); position = conveyor.top - (Vector3.forward * height * 0.5f) + Vector3.up; }
public int SaveSettings(ItemSettings settings) { lock (locker) { if (settings.ID.HasValue) { connection.Update(settings); return(settings.ID.Value); } else { settings.ID = SETTINGS_ID; return(connection.Insert(settings)); } } }
// ------ void InitData() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else { Error("Unknown type!"); } }
// IGUIPAGEPLAYERSTATS INTERFACE void IGuiPagePlayerStats.Refresh(PlayerPersistantInfo ppi) { PPIWeaponData weaponData; // collected values WeaponSettings weapon = ChooseWeapon(ppi, out weaponData); ItemSettings item = ChooseItem(ppi); PerkSettings perk = ChoosePerk(ppi); HatSettings hat = ChooseHat(ppi); SkinSettings skin = ChooseSkin(ppi); float totalShots = weaponData.StatsFire; float totalKills = weaponData.StatsKills; int killsTextId = totalKills == 1 ? 01160034 : 01160026; int computedAccurancy = totalShots > 0 ? Mathf.RoundToInt((weaponData.StatsHits / (float)totalShots) * 100) : 0; // weapon SetImage("WeaponImage", weapon != null ? weapon.ResearchWidget : null); SetText("WeaponName", weapon != null && weapon.Name != 0 ? TextDatabase.instance[weapon.Name] : ""); SetText("Kills_Enum", string.Format(TextDatabase.instance[killsTextId], totalKills)); SetText("Accuracy_Enum", computedAccurancy.ToString()); SetText("Headshots_Enum", "N/A" /*weaponData.StatsHeadShots.ToString()*/); SetText("Shotsfired_Enum", weaponData.StatsFire.ToString()); SetText("TotalTime_Enum", "N/A"); SetText("TotalTime_Units", TextDatabase.instance[01160014]); // item SetImage("ItemImage", item != null ? item.ShopWidget : null); SetText("ItemName", item != null && item.Name != 0 ? TextDatabase.instance[item.Name] : ""); // perk SetImage("PerkImage", perk != null ? perk.ShopWidget : null); SetText("PerkName", perk != null && perk.Name != 0 ? TextDatabase.instance[perk.Name] : ""); // hat SetImage("HatImage", hat != null ? hat.ShopWidget : null); SetText("HatName", hat != null && hat.Name != 0 ? TextDatabase.instance[hat.Name] : ""); // skin SetImage("SkinImage", skin != null ? skin.ScrollerWidget : null); SetText("SkinName", skin != null && skin.Name != 0 ? TextDatabase.instance[skin.Name] : ""); }
protected override void Load() { ItemSettings section = (ItemSettings)ConfigurationManager.GetSection("Saga.Factory.Items"); if (section != null) { foreach (FactoryFileElement element in section.FolderItems) { WriteLine("ItemFactory", "Loading item information from: {0} using format {1}", element.Path, element.Reader); LoadParameterizedStreamContent(Saga.Structures.Server.SecurePath(element.Path), element.Reader); } } else { WriteWarning("XmlSections", "Section {0} was not found", "Saga.Factory.Items"); } }
private void OnTriggerEnter(Collider other) { Item item = other.GetComponent <Item>(); if (!item) { return; } ItemTier tier = item.GetTier(); ItemSettings settings = GameManager.FindObjectOfType <ItemManager>().GetItemTierSetting(tier); GameManager.Instance.TickManager.AddPoints(settings.ScorePerMachineDone * item.GetRuntimeData().MachinesNeededTotal); GameObject.Destroy(item.gameObject); }
public override string GetGadgetAnim(E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection) { ItemSettings setting = ItemSettingsManager.Instance.Get(gadget); switch (setting.ItemBehaviour) { // FIX IT case E_ItemBehaviour.Throw: if (BlackBoard.Cover) { if (coverDirection == E_CoverDirection.Middle) { return(coverPose == E_CoverPose.Stand ? "" : "CoverCrouchThrowCenter"); } else if (coverDirection == E_CoverDirection.Left) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowLeft" : "CoverCrouchThrowLeft"); } else if (coverDirection == E_CoverDirection.Right) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowRight" : "CoverCrouchThrowRight"); } } else { return("RunThrow"); //now we're using the same half-body anim for both idle and move /* if ( BlackBoard.MotionType == E_MotionType.Walk || BlackBoard.MotionType == E_MotionType.Run ) * return "RunThrow"; * else * return "IdleThrow"; */ } break; case E_ItemBehaviour.Place: return("Drop"); } throw new System.ArgumentOutOfRangeException(" Gadget: " + gadget + " behaviour " + setting.ItemBehaviour); }
public static void Update(DownloadItemTemplatesResponse templatesResponse) { RepeatedField <ItemTemplate> templates = templatesResponse.ItemTemplates; PokemonMeta.templates.Clear(); PokemonMeta.templates.AddRange(templates); foreach (ItemTemplate template in templates) { if (template.PokemonSettings != null) { PokemonSettings pokemonSettings = template.PokemonSettings; PokemonSettings[pokemonSettings.PokemonId] = pokemonSettings; } else if (template.MoveSettings != null) { MoveSettings moveSettings = template.MoveSettings; MoveSettings[moveSettings.MovementId] = moveSettings; } else if (template.BadgeSettings != null) { BadgeSettings badgeSettings = template.BadgeSettings; BadgeSettings[badgeSettings.BadgeType] = badgeSettings; } else if (template.ItemSettings != null) { ItemSettings itemSettings = template.ItemSettings; ItemSettings[itemSettings.ItemId] = itemSettings; } else if (template.BattleSettings != null) { BattleSettings = template.BattleSettings; } else if (template.PokemonUpgrades != null) { UpgradeSettings = template.PokemonUpgrades; } } //Evolutions.initialize(templates); PokemonCpUtils.Initialize(templates); }
protected virtual IEnumerable Action(PXAdapter adapter, [PXInt] [PXIntList(new int[] { 1, 2, 3 }, new string[] { "Update Price", "Update Cost", "View Restriction Groups" })] int?actionID ) { switch (actionID) { case 2: if (ItemSettings.Current != null && ItemSettings.Current.PendingStdCostDate != null) { ItemSettings.Current.LastStdCost = ItemSettings.Current.StdCost; ItemSettings.Current.StdCostDate = ItemSettings.Current.PendingStdCostDate.GetValueOrDefault((DateTime)this.Accessinfo.BusinessDate); ItemSettings.Current.StdCost = ItemSettings.Current.PendingStdCost; ItemSettings.Current.PendingStdCost = 0; ItemSettings.Current.PendingStdCostDate = null; ItemSettings.Update(ItemSettings.Current); this.Save.Press(); } break; case 3: if (Item.Current != null) { INAccessDetailByItem graph = CreateInstance <INAccessDetailByItem>(); graph.Item.Current = graph.Item.Search <InventoryItem.inventoryCD>(Item.Current.InventoryCD); throw new PXRedirectRequiredException(graph, false, "Restricted Groups"); } break; } return(adapter.Get()); }
public void SpawnItem(ItemTier tier) { ItemSettings settings = m_ItemTierSettings[tier]; int amountOfMachinesRequired = Random.Range(settings.MinAmountMachines, settings.MaxAmountMachines + 1); List <MinigameType> machineIndexList = new List <MinigameType>(); for (int i = 0; i < amountOfMachinesRequired; ++i) { int randIndex = Mathf.RoundToInt(Random.value * ((int)MinigameType.Count - 1)); machineIndexList.Add((MinigameType)randIndex); } ItemRuntimeData runtimeData; runtimeData.MachineOrderList = machineIndexList; runtimeData.MachinesNeededTotal = amountOfMachinesRequired; // Spawn the actual item Spawn(tier, runtimeData, settings); }
public PreviewItem(E_ItemID itemID) { if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); m_ItemDescription = TextDatabase.instance[settings.Description]; m_ItemID = itemID; if ((itemID == E_ItemID.SentryGun) || (itemID == E_ItemID.SentryGunII) || (itemID == E_ItemID.SentryGunRail) || (itemID == E_ItemID.SentryGunRockets)) { m_NumberOfParams = 4; } else if (itemID == E_ItemID.Mine) { m_NumberOfParams = 3; } else if ((itemID == E_ItemID.MineEMP) || (itemID == E_ItemID.MineEMPII) || (itemID == E_ItemID.GrenadeFrag) || (itemID == E_ItemID.GrenadeFragII) || (itemID == E_ItemID.BoxHealth) || (itemID == E_ItemID.BoxHealthII)) { m_NumberOfParams = 2; } else if ((itemID == E_ItemID.GrenadeFlash) || (itemID == E_ItemID.GrenadeEMP) || (itemID == E_ItemID.GrenadeEMPII) || (itemID == E_ItemID.EnemyDetector) || (itemID == E_ItemID.EnemyDetectorII) || (itemID == E_ItemID.BoxAmmo) || (itemID == E_ItemID.BoxAmmoII)) { m_NumberOfParams = 1; } else if (itemID == E_ItemID.BoosterAccuracy || itemID == E_ItemID.BoosterArmor || itemID == E_ItemID.BoosterSpeed || itemID == E_ItemID.BoosterDamage) { m_NumberOfParams = 2; } else { m_NumberOfParams = 1; } } }
private void Awake() { Root = FindObjectOfType <ItemRoot>(); _catcher = GameObject.FindObjectOfType <Catcher>(); _itemSettings = ComponentUtility.FindOnNamedGameObject <ItemSettings>(); }
// Superseded function. public bool AppendMenu(int ID, String Item, ItemSettings Settings) { return(apiAppendMenu(m_SysMenu, (int)Settings, ID, Item) == 0); }
// Insert a menu at the given position. The value of the position // depends on the value of Flags. See the article for a detailed // description. public bool InsertMenu(int Pos, ItemSettings Settings, int ID, String Item) { return(apiInsertMenu(m_SysMenu, Pos, (Int32)Settings, ID, Item) == 0); }
void Awake() { GameObject gameObject = new GameObject(this.name + "Target"); TargetTransform = gameObject.GetComponent<Transform>(); TargetTransform.position = GetComponent<Item>().transform.position; TargetTransform.forward = GetComponent<Item>().transform.forward; AttachPointArray = GetComponentsInChildren<AttachPoint>(); _itemSettings = ComponentUtility.FindOnNamedGameObject<ItemSettings>(); }
private void Awake() { //TODO make items be generator through something else and automatically hooked up to this Root = FindObjectOfType<ItemRoot>(); _itemSettings = ComponentUtility.FindOnNamedGameObject<ItemSettings>(); MeshRendererArray = this.GetComponentsInChildren<MeshRenderer>(); MeshArray = new Mesh[MeshRendererArray.Length]; for (int i = 0; i < MeshArray.Length; ++i) { MeshArray[i] = MeshRendererArray[i].GetComponent<MeshFilter>().sharedMesh; } MeshTransformArray = new Transform[MeshRendererArray.Length]; for (int i = 0; i < MeshTransformArray.Length; ++i) { MeshTransformArray[i] = MeshRendererArray[i].GetComponent<Transform>(); } MaterialArrayInitialize(); ColliderArrayInitialize(); _catcher = GameObject.FindObjectOfType<Catcher>(); }
private void Awake() { ItemSnapArray = GetComponentsInChildren<ItemSnap>(); _itemSettings = ComponentUtility.FindOnNamedGameObject<ItemSettings>(); }
private void Awake() { Root = FindObjectOfType<ItemRoot>(); _catcher = GameObject.FindObjectOfType<Catcher>(); _itemSettings = ComponentUtility.FindOnNamedGameObject<ItemSettings>(); }
private static void FirstRunConfiguration() { IPAddress gatewayip = IPAddress.Loopback; int gatewayport = 64003; IPAddress mapip = IPAddress.Loopback; byte worldid = 0; int mapport = 64002; int playerlimit = 60; string databaseusername = "******"; string databasepassword = "******"; uint dbport = 3306; int cexprates = 1; int jexprates = 1; int wexprates = 1; int droprates = 1; string databasename = "saga_world"; string dbhost = "localhost"; string dbprovider = "Saga.Map.Data.Mysql.dll, Saga.Map.Data.Mysql.MysqlProvider"; string proof = "c4ca4238a0b923820dcc509a6f75849b"; string questplugin = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.LuaQuestProvider"; string scenarioquestplugin = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.ScenarioLuaQuest"; string worldspawn = "Saga.Map.Plugins.dll, Saga.Map.Plugins.MultifileSpawnWorldObjects"; string multiworldspawn = "Saga.Map.Plugins.dll, Saga.Map.Plugins.MultifileSpawnMultiWorldObjects"; string eventprovider = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.EventInfo"; ConsoleReader reader = new ConsoleReader(); reader.Clear(null); System.Configuration.Configuration b = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (CheckConfigExists() == false) { Console.WriteLine("First time run-configuration"); char key; #region Always Configure ConfigureRequired("What is the world id of this server?"); while (!byte.TryParse(Console.ReadLine(), out worldid)) { Console.WriteLine("Incorrect value please use an number between 0–255"); } ConfigureRequired("What is the player limit of this server?"); while (!int.TryParse(Console.ReadLine(), out playerlimit)) { Console.WriteLine("Incorrect value please use an valid number"); } ConfigureRequired("What is the authentication proof of this server?"); MD5 md5 = MD5.Create(); byte[] block = Encoding.UTF8.GetBytes(Console.ReadLine()); byte[] md5block = md5.ComputeHash(block); StringBuilder builder = new StringBuilder(); foreach (byte c in md5block) { builder.AppendFormat("{0:X2}", c); } proof = builder.ToString(); ConfigureRequired("What are the cexp-rates?"); while (!int.TryParse(Console.ReadLine(), out cexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } cexprates = Math.Min(20, Math.Max(cexprates, 1)); ConfigureRequired("What are the jexp-rates?"); while (!int.TryParse(Console.ReadLine(), out jexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } jexprates = Math.Min(20, Math.Max(jexprates, 1)); ConfigureRequired("What are the wexp-rates?"); while (!int.TryParse(Console.ReadLine(), out wexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } wexprates = Math.Min(20, Math.Max(wexprates, 1)); ConfigureRequired("What are the item drop-rates?"); while (!int.TryParse(Console.ReadLine(), out droprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } droprates = Math.Min(20, Math.Max(droprates, 1)); ConfigureRequired("Detect database plugin"); dbprovider = FindPlugin(typeof(IDatabase), dbprovider); ConfigureRequired("Detect quest plugin"); questplugin = FindPlugin(typeof(Saga.Quests.IQuest), questplugin); ConfigureRequired("Detect scenarion quest plugin"); scenarioquestplugin = FindPlugin(typeof(Saga.Quests.ISceneraioQuest), scenarioquestplugin); ConfigureRequired("Detect npc & map spawn plugin"); worldspawn = FindPlugin(typeof(Saga.Factory.SpawnWorldObjects), worldspawn); ConfigureRequired("Detect mob spawn plugin"); multiworldspawn = FindPlugin(typeof(Saga.Factory.SpawnMultiWorldObjects), multiworldspawn); ConfigureRequired("Detect event plugin"); eventprovider = FindPlugin(typeof(Saga.Factory.EventManager.BaseEventInfo), eventprovider); #endregion Always Configure #region Network Settings ConfigureGatewayNetwork: Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Do you wan to configure the gateway-map network settings? Y/N"); Console.ResetColor(); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("What ip should the gateway-map server listen to?"); while (!IPAddress.TryParse(Console.ReadLine(), out gatewayip)) { Console.WriteLine("Incorrect value please use an ipv4 adress, recommended 0.0.0.0"); } Console.WriteLine("What port should the gateway-map server listen to?"); while (!int.TryParse(Console.ReadLine(), out gatewayport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 64003"); } } else if (key != 'n') { goto ConfigureGatewayNetwork; } ConfigureWorldNetwork: Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Do you wan to configure the authentication-map network settings? Y/N"); Console.ResetColor(); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("What ip should the authentication-map server listen to?"); while (!IPAddress.TryParse(Console.ReadLine(), out mapip)) { Console.WriteLine("Incorrect value please use an ipv4 adress, recommended 0.0.0.0"); } Console.WriteLine("On what port is the authentication server listening"); while (!int.TryParse(Console.ReadLine(), out mapport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 64002"); } } else if (key != 'n') { goto ConfigureWorldNetwork; } #endregion Network Settings #region Database Settings DatabaseName: ConfigureOptional("Do you want to configure the database settings? Y/N"); key = Console.ReadKey(true).KeyChar; if (key == 'y') { ConfigureRequired("What is the database name?"); databasename = Console.ReadLine(); ConfigureRequired("What is the database username?"); databaseusername = Console.ReadLine(); ConfigureRequired("What is the database password?"); databasepassword = Console.ReadLine(); ConfigureRequired("What is the database port?"); while (!uint.TryParse(Console.ReadLine(), out dbport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 3306"); } ConfigureRequired("What is the database host?"); dbhost = Console.ReadLine(); } else if (key != 'n') { goto DatabaseName; } #endregion Database Settings #region Plugin detection PluginDetection: ConfigureOptional("Do you want to dectect other plugins?"); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("no plugins detected"); } else if (key != 'n') { goto PluginDetection; } #endregion Plugin detection //CONFIGURE SERVER SETTINGS ServerVars serverVarsConfiguration = new ServerVars(); serverVarsConfiguration.DataDirectory = "../Data/"; b.Sections.Add("Saga.ServerVars", serverVarsConfiguration); //CONFIGURE NETWORK SETTINGS NetworkSettings networkSettings = new NetworkSettings(); NetworkFileCollection collection = networkSettings.Connections; collection["public"] = new NetworkElement("public", gatewayip.ToString(), gatewayport); collection["internal"] = new NetworkElement("internal", mapip.ToString(), mapport); b.Sections.Remove("Saga.Manager.NetworkSettings"); b.Sections.Add("Saga.Manager.NetworkSettings", networkSettings); networkSettings.WorldId = worldid; networkSettings.Proof = proof; networkSettings.PlayerLimit = playerlimit; //CONFIGURE CONSOLE SETTING ConsoleSettings consoleSettings = new ConsoleSettings(); consoleSettings.CommandPrefix = "@"; consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Broadcast")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Position")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ChatMute")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GmWarptomap")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.PlayerJump")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.PlayerCall")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Speed")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GarbageCollector")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ClearNpc")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.KickAll")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Kick")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Time")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ShowMaintenance")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ScheduleMaintenance")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.SetGmLevel")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Spawn")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Unspawn")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GiveItem")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.QStart")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Kill")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Worldload")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Gmgo")); b.Sections.Add("Saga.Manager.ConsoleSettings", consoleSettings); //PORTALS PortalSettings portalSettings = new PortalSettings(); portalSettings.FolderItems.Add(new FactoryFileElement("~/portal_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Portals"); b.Sections.Add("Saga.Factory.Portals", portalSettings); //CHARACTERCONFIGURATION CharacterConfigurationSettings characterconfigurationSettings = new CharacterConfigurationSettings(); characterconfigurationSettings.FolderItems.Add(new FactoryFileElement("~/character-template.csv", "text/csv")); b.Sections.Remove("Saga.Factory.CharacterConfiguration"); b.Sections.Add("Saga.Factory.CharacterConfiguration", characterconfigurationSettings); //ADDITION AdditionSettings additionSettings = new AdditionSettings(); additionSettings.FolderItems.Add(new FactoryFileElement("~/Addition_t.xml", "text/xml")); additionSettings.Reference = "~/addition_reference.csv"; b.Sections.Remove("Saga.Factory.Addition"); b.Sections.Add("Saga.Factory.Addition", additionSettings); //SPELLS SpellSettings spellSettings = new SpellSettings(); spellSettings.FolderItems.Add(new FactoryFileElement("~/spell_data.xml", "text/xml")); spellSettings.Reference = "~/skill_reference.csv"; b.Sections.Remove("Saga.Factory.Spells"); b.Sections.Add("Saga.Factory.Spells", spellSettings); //STATUSBYLEVEL StatusByLevelSettings statusbylevelSettings = new StatusByLevelSettings(); statusbylevelSettings.FolderItems.Add(new FactoryFileElement("~/experience.csv", "text/csv")); statusbylevelSettings.Cexp = cexprates; statusbylevelSettings.Jexp = jexprates; statusbylevelSettings.Wexp = wexprates; statusbylevelSettings.Droprate = droprates; b.Sections.Remove("Saga.Factory.StatusByLevel"); b.Sections.Add("Saga.Factory.StatusByLevel", statusbylevelSettings); //WARPSETTINGS WarpSettings warpSettings = new WarpSettings(); warpSettings.FolderItems.Add(new FactoryFileElement("~/warp_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Warps"); b.Sections.Add("Saga.Factory.Warps", warpSettings); //ZONES ZoneSettings zoneSettings = new ZoneSettings(); zoneSettings.FolderItems.Add(new FactoryFileElement("~/zone_data.csv", "text/csv")); zoneSettings.Directory = "../Data/heightmaps"; b.Sections.Remove("Saga.Factory.Zones"); b.Sections.Add("Saga.Factory.Zones", zoneSettings); //ITEMS ItemSettings itemSettings = new ItemSettings(); itemSettings.FolderItems.Add(new FactoryFileElement("~/item_data.xml", "text/xml")); b.Sections.Remove("Saga.Factory.Items"); b.Sections.Add("Saga.Factory.Items", itemSettings); //WEAPONARY WeaponarySettings weaponarySettings = new WeaponarySettings(); weaponarySettings.FolderItems.Add(new FactoryFileElement("~/weapon_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Weaponary"); b.Sections.Add("Saga.Factory.Weaponary", weaponarySettings); //SPAWNTEMPLATE SpawntemplateSettings spawntemplateSettings = new SpawntemplateSettings(); spawntemplateSettings.FolderItems.Add(new FactoryFileElement("~/npc_templates.csv", "text/csv")); spawntemplateSettings.FolderItems.Add(new FactoryFileElement("~/item_templates.csv", "text/csv")); b.Sections.Remove("Saga.Factory.SpawnTemplate"); b.Sections.Add("Saga.Factory.SpawnTemplate", spawntemplateSettings); //SPAWNS NPC & MAP SpawnWorldObjectSettings spawnworldobjectSettings = new SpawnWorldObjectSettings(); spawnworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/npc-spawns/", "text/csv")); spawnworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/item-spawns/", "text/csv")); spawnworldobjectSettings.DerivedType = worldspawn; b.Sections.Remove("Saga.Factory.SpawnWorldObjects"); b.Sections.Add("Saga.Factory.SpawnWorldObjects", spawnworldobjectSettings); //SPAWNS MOBS SpawnMultiWorldObjectSettings spawnmultiworldobjectSettings = new SpawnMultiWorldObjectSettings(); spawnmultiworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/mob-spawns/", "text/csv")); spawnmultiworldobjectSettings.DerivedType = multiworldspawn; b.Sections.Remove("Saga.Factory.SpawnMultiWorldObjects"); b.Sections.Add("Saga.Factory.SpawnMultiWorldObjects", spawnmultiworldobjectSettings); //SCRIPTING ScriptingSettings scriptingSettings = new ScriptingSettings(); scriptingSettings.Directory = "../Saga.Scripting"; scriptingSettings.Assemblies.Add(new FactoryFileElement("System.dll", "text/csv")); scriptingSettings.Assemblies.Add(new FactoryFileElement("System.Data.dll", "text/csv")); scriptingSettings.Assemblies.Add(new FactoryFileElement("System.Xml.dll", "text/csv")); b.Sections.Remove("Saga.Manager.Scripting"); b.Sections.Add("Saga.Manager.Scripting", scriptingSettings); //EVENTS EventSettings eventSettings = new EventSettings(); eventSettings.FolderItems.Add(new FactoryFileElement("~/eventlist.csv", "text/csv")); eventSettings.Provider = eventprovider; b.Sections.Remove("Saga.Factory.Events"); b.Sections.Add("Saga.Factory.Events", eventSettings); //QUUESTS QuestSettings questSettings = new QuestSettings(); questSettings.Directory = "../Quests/"; questSettings.SDirectory = "~/Scenario.Quests/"; questSettings.Provider = questplugin; questSettings.ScenarioProvider = scenarioquestplugin; b.Sections.Remove("Saga.Manager.Quest"); b.Sections.Add("Saga.Manager.Quest", questSettings); //DATABASE SETTINGS DatabaseSettings databaseSettings = new DatabaseSettings(); databaseSettings.Database = databasename; databaseSettings.Username = databaseusername; databaseSettings.Password = databasepassword; databaseSettings.Port = dbport; databaseSettings.Host = dbhost; databaseSettings.DBType = dbprovider; b.Sections.Remove("Saga.Manager.Database"); b.Sections.Add("Saga.Manager.Database", databaseSettings); //SAVE CONFIGURATION AND REFRESH ALL SECTIONS b.Save(); //REFRESH ALL SECTIONS ConfigurationManager.RefreshSection("Saga.Factory.SpawnMultiWorldObjects"); ConfigurationManager.RefreshSection("Saga.Manager.Database"); ConfigurationManager.RefreshSection("Saga.Manager.Quest"); ConfigurationManager.RefreshSection("Saga.Manager.Scripting"); ConfigurationManager.RefreshSection("Saga.Factory.Events"); ConfigurationManager.RefreshSection("Saga.Factory.SpawnWorldObject"); ConfigurationManager.RefreshSection("Saga.ServerVars"); ConfigurationManager.RefreshSection("Saga.Manager.NetworkSettings"); ConfigurationManager.RefreshSection("Saga.Manager.ConsoleSettings"); ConfigurationManager.RefreshSection("Saga.Factory.Portals"); ConfigurationManager.RefreshSection("Saga.Factory.CharacterConfiguration"); ConfigurationManager.RefreshSection("Saga.Factory.Addition"); ConfigurationManager.RefreshSection("Saga.Factory.Spells"); ConfigurationManager.RefreshSection("Saga.Factory.StatusByLevel"); ConfigurationManager.RefreshSection("Saga.Factory.Warps"); ConfigurationManager.RefreshSection("Saga.Factory.Zones"); ConfigurationManager.RefreshSection("Saga.Factory.Items"); ConfigurationManager.RefreshSection("Saga.Factory.Weaponary"); ConfigurationManager.RefreshSection("Saga.Factory.SpawnTemplate"); Console.WriteLine("Everything configured"); } }
//Funkce pro fixnuti equipu na ppi //Projdeme casti equipu ktere by nemuseli byt validni a vytvorime seznam akci ktere je treba vykonat aby byl zase v poradku. //Pokud je vse v poradku, vraci null, jinak serial cloud action ktera se ma provest public static BaseCloudAction ValidateEquip() { List <BaseCloudAction> outActions = new List <BaseCloudAction>(); PlayerPersistantInfo ppi = ShopDataBridge.Instance.PPI; UnigueUserID userID = CloudUser.instance.authenticatedUserID; //weapons: //bool anyWeaponEquipped = false; foreach (PPIWeaponData w in ppi.EquipList.Weapons) { //ignoruj prazdna id if (w.ID == E_WeaponID.None) { continue; } //pokud je item zakazany, nebo ma locknuty slot, odstran ho z equipu. WeaponSettings s = WeaponSettingsManager.Instance.Get(w.ID); if (s.DISABLED || ShopDataBridge.Instance.IsWeaponSlotLocked(w.EquipSlotIdx)) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, w.EquipSlotIdx, false)); continue; } // anyWeaponEquipped = true; } /* we don't need this functionality right now, * because we don't allow player to spawn without any weapon now * //pokud nemame equpnutou zadnou zbran, pridej nejakou do prvniho slotu * if(!anyWeaponEquipped) * { * List<ShopItemId> ownedWeapons = ShopDataBridge.Instance.GetOwnedWeapons(); * if(ownedWeapons.Count > 0) * { * int guid = ShopDataBridge.Instance.GetShopItemGUID(ownedWeapons[0]); * outActions.Add(new SlotEquipAction(userID, guid, 0, true )); * } * }*/ //items: foreach (PPIItemData w in ppi.EquipList.Items) { //ignoruj prazdna id if (w.ID == E_ItemID.None) { continue; } //pokud je item zakazany, nebo ma locknuty slot, odstran ho z equipu. ItemSettings s = ItemSettingsManager.Instance.Get(w.ID); if (s.DISABLED || ShopDataBridge.Instance.IsItemSlotLocked(w.EquipSlotIdx)) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, w.EquipSlotIdx, false)); continue; } //pokud mame od itemu v inventari lepsi nebo naopak horsi verzi, updatni jej ve slotu. E_ItemID bestVersion = ShopDataBridge.Instance.FindBestItemUpgrade(w.ID); if (w.ID != bestVersion) { //replace it with actual version from inventory int bestVersionGUID = ItemSettingsManager.Instance.Get(bestVersion).GUID; outActions.Add(new SlotEquipAction(userID, bestVersionGUID, w.EquipSlotIdx, true)); continue; } } //perk: if (ppi.EquipList.Perk != E_PerkID.None) { E_PerkID perk = ppi.EquipList.Perk; E_PerkID bestVersion = ShopDataBridge.Instance.FindBestPerkUpgrade(ppi.EquipList.Perk); //pokud je zakazany, odstran jej ze slotu PerkSettings s = PerkSettingsManager.Instance.Get(perk); if (s.DISABLED) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, 0, false)); } else if (perk != bestVersion) { //replace it with actual version from inventory int bestVersionGUID = PerkSettingsManager.Instance.Get(bestVersion).GUID; outActions.Add(new SlotEquipAction(userID, bestVersionGUID, 0, true)); } } //skins: { ShopItemId currSkin = new ShopItemId((int)ppi.EquipList.Outfits.Skin, GuiShop.E_ItemType.Skin); List <ShopItemId> ownedSkins = ShopDataBridge.Instance.GetOwnedSkins(); if (!ownedSkins.Contains(currSkin)) { //Debug.Log("Equiped skin " + currSkin + " is not in inventory, switching to: " + ( (ownedSkins.Count > 0) ? ownedSkins[0].ToString() : "-none-") ); if (ownedSkins.Count > 0) { //equipnuty skin neni v inventari, vyber misto neho nejaky jiny ownedSkins.Sort(); int guid = ShopDataBridge.Instance.GetShopItemGUID(ownedSkins[0]); outActions.Add(new SlotEquipAction(userID, guid, 0, true)); } else { Debug.LogError("No skins in inventory!"); } } } //upgrades: { List <PPIUpgradeList.UpgradeData> upgs = ppi.Upgrades.Upgrades; if (upgs.Find(u => u.ID == E_UpgradeID.ItemSlot2).ID != E_UpgradeID.ItemSlot2) { int guid = ShopDataBridge.Instance.GetShopItemGUID(new ShopItemId((int)E_UpgradeID.ItemSlot2, GuiShop.E_ItemType.Upgrade)); outActions.Add(new ShopBuyAction(userID, guid)); } if (upgs.Find(u => u.ID == E_UpgradeID.WeaponSlot2).ID != E_UpgradeID.WeaponSlot2) { int guid = ShopDataBridge.Instance.GetShopItemGUID(new ShopItemId((int)E_UpgradeID.WeaponSlot2, GuiShop.E_ItemType.Upgrade)); outActions.Add(new ShopBuyAction(userID, guid)); } } //pokud jsme neco zmenili, updatuj na zaver PPI if (outActions.Count > 0) { outActions.Add(new FetchPlayerPersistantInfo(userID)); BaseCloudAction resultAction = new CloudActionSerial(userID, BaseCloudAction.NoTimeOut, outActions.ToArray()); return(resultAction); } else { return(null); } }