コード例 #1
0
    // -----------------------------------------------------------------------------------
    //  Use
    // -----------------------------------------------------------------------------------
    public override void Use(Player player, int inventoryIndex)
    {
        ItemSlot slot = player.inventory[inventoryIndex];

        // -- Only activate if enough charges left
        if (decreaseAmount == 0 || slot.amount >= decreaseAmount)
        {
            // always call base function too
            base.Use(player, inventoryIndex);

            if (!player.UCE_HasCraftingProfession(learnProfession))
            {
                UCE_CraftingProfession tmpProf = new UCE_CraftingProfession(learnProfession.name);

                tmpProf.experience = gainProfessionExp;
                player.UCE_Crafts.Add(tmpProf);

                player.UCE_ShowPopup(learnProfessionText + learnProfession.name);
            }
            else
            {
                UCE_CraftingProfession tmpProf = player.UCE_getCraftingProfession(learnProfession);

                tmpProf.experience += gainProfessionExp;

                player.UCE_setCraftingProfession(tmpProf);
                player.UCE_TargetAddMessage(gainProfessionExp.ToString() + expProfessionTxt);
            }

            slot.DecreaseAmount(decreaseAmount);
            player.inventory[inventoryIndex] = slot;
        }
    }
コード例 #2
0
    private void CharacterLoad_UCE_Crafting(Player player)
    {
#if _MYSQL && _SERVER
        var table = ExecuteReaderMySql("SELECT profession, experience FROM character_crafts WHERE `character`=@character",
                                       new MySqlParameter("@character", player.name));

        foreach (var row in table)
        {
            UCE_CraftingProfession profession = new UCE_CraftingProfession((string)row[0]);
            profession.experience = (long)row[1];
            player.UCE_Crafts.Add(profession);
        }

        var table2 = ExecuteReaderMySql("SELECT recipe FROM character_recipes WHERE `character`=@name", new MySqlParameter("@name", player.name));
        foreach (var row in table2)
        {
            player.UCE_recipes.Add((string)row[0]);
        }
#elif _SQLITE && _SERVER
        var table = connection.Query <character_crafts>("SELECT profession, experience FROM character_crafts WHERE character=?", player.name);
        foreach (var row in table)
        {
            UCE_CraftingProfession profession = new UCE_CraftingProfession(row.profession);
            profession.experience = row.experience;
            player.UCE_Crafts.Add(profession);
        }

        var table2 = connection.Query <character_recipes>("SELECT recipe FROM character_recipes WHERE character=?", player.name);
        foreach (var row in table2)
        {
            player.UCE_recipes.Add(row.recipe);
        }
#endif
    }
コード例 #3
0
    // -----------------------------------------------------------------------------------
    // Show
    // -----------------------------------------------------------------------------------
    public void Show(UCE_CraftingProfession p)
    {
        float value = 0;

        string lvl = " [L" + p.level.ToString() + "/" + p.maxlevel.ToString() + "]";

        value = p.experiencePercent;

        nameText.text         = p.template.name + lvl;
        professionIcon.sprite = p.template.image;
        expSlider.value       = value;

        tooltip.enabled = true;
        tooltip.text    = ToolTip(p.template);
    }
コード例 #4
0
    private void CharacterLoad_UCE_Crafting(Player player)
    {
        var table = connection.Query <character_crafts>(
            "SELECT profession, experience FROM character_crafts WHERE character = ?",
            player.name);

        foreach (var row in table)
        {
            UCE_CraftingProfession profession = new UCE_CraftingProfession(row.profession);
            profession.experience = row.experience;
            player.UCE_Crafts.Add(profession);
        }

        var table2 = connection.Query <character_recipes>("SELECT recipe FROM character_recipes WHERE `character` = ?",
                                                          player.name);

        foreach (var row in table2)
        {
            player.UCE_recipes.Add(row.recipe);
        }
    }
コード例 #5
0
    private void OnServerCharacterCreate_UCE_Crafting(CharacterCreateMsg message, Player player)
    {
        // -- check starting craft professions
        foreach (UCE_DefaultCraftingProfession craft in player.startingCrafts)
        {
            if (!player.UCE_HasCraftingProfession(craft.craftProfession))
            {
                UCE_CraftingProfession tmpProf = new UCE_CraftingProfession(craft.craftProfession.name);
                tmpProf.experience = craft.startingExp;
                player.UCE_Crafts.Add(tmpProf);
            }
        }

        // -- check starting recipes
        foreach (UCE_Tmpl_Recipe recipe in player.startingRecipes)
        {
            if (!player.UCE_recipes.Any(r => r == recipe.name))
            {
                player.UCE_recipes.Add(recipe.name);
            }
        }
    }
コード例 #6
0
    // -----------------------------------------------------------------------------------
    // UCE_setCraftingProfession
    // -----------------------------------------------------------------------------------
    public void UCE_setCraftingProfession(UCE_CraftingProfession aProf)
    {
        int id = UCE_Crafts.FindIndex(pr => pr.templateName == aProf.template.name);

        UCE_Crafts[id] = aProf;
    }
コード例 #7
0
    // -----------------------------------------------------------------------------------
    // UCE_getCraftingExp
    // -----------------------------------------------------------------------------------
    public long UCE_getCraftingExp(UCE_CraftingProfession aProf)
    {
        int id = UCE_Crafts.FindIndex(prof => prof.templateName == aProf.templateName);

        return(UCE_Crafts[id].experience);
    }
コード例 #8
0
    private void OnServerCharacterCreate_UCE_Traits(CharacterCreateMsg netMsg, Player player)
    {
        if (netMsg == null || netMsg.traits == null || netMsg.traits.Length == 0) return;

        foreach (int traitId in netMsg.traits)
        {
            if (traitId != 0)
            {
                UCE_TraitTemplate trait;
                if (UCE_TraitTemplate.dict.TryGetValue(traitId, out trait))
                {
                    player.UCE_Traits.Add(new UCE_Trait(trait));
					
					
#if _iMMOATTRIBUTES
					foreach (UCE_AttributeTemplate template in player.playerAttributes.UCE_AttributeTypes)
					{
						if (template == null) continue;
						UCE_Attribute attr = new UCE_Attribute(template);
						player.playerAttributes.UCE_Attributes.Add(attr);
					}
#endif
									
                    // ----------------------------------------------------------------------
                    foreach (UCE_SkillRequirement startSkill in trait.startingSkills)
                    {
                        for (int i = 0; i < player.skills.skills.Count; ++i)
                        {
                            if (player.skills.skills[i].data == startSkill.skill)
                            {
                                Skill skill = player.skills.skills[i];
                                skill.level += startSkill.level;
                                player.skills.skills[i] = skill;
                            }
                        }
                    }

                    // ----------------------------------------------------------------------
                    foreach (UCE_ItemModifier startItem in trait.startingItems)
                    {
                        player.inventory.Add(new Item(startItem.item), startItem.amount);
                    }

#if _iMMOPRESTIGECLASSES
                    if (trait.startingPrestigeClass != null)
                        player.UCE_prestigeClass = trait.startingPrestigeClass;
#endif
#if _iMMOHONORSHOP
                    foreach (UCE_HonorShopCurrencyCost currency in trait.startingHonorCurrency)
                        player.UCE_AddHonorCurrency(currency.honorCurrency, currency.amount);
#endif
#if _iMMOFACTIONS
                    foreach (UCE_FactionRating faction in trait.startingFactions)
                        player.UCE_AddFactionRating(faction.faction, faction.startRating);
#endif
#if _iMMOCRAFTING
                    foreach (UCE_CraftingProfessionRequirement prof in trait.startingCraftingProfession)
                    {
                        if (player.UCE_HasCraftingProfession(prof.template))
                        {
                            var tmpProf = player.UCE_getCraftingProfession(prof.template);
                            tmpProf.experience += prof.level;
                            player.UCE_setCraftingProfession(tmpProf);
                        }
                        else
                        {
                            UCE_CraftingProfession tmpProf = new UCE_CraftingProfession(prof.template.name);
                            tmpProf.experience += prof.level;
                            player.UCE_Crafts.Add(tmpProf);
                        }
                    }
#endif
#if _iMMOHARVESTING
                    foreach (UCE_HarvestingProfessionRequirement prof in trait.startingHarvestingProfession)
                    {
                        if (player.HasHarvestingProfession(prof.template))
                        {
                            var tmpProf = player.getHarvestingProfession(prof.template);
                            tmpProf.experience += prof.level;
                            player.SetHarvestingProfession(tmpProf);
                        }
                        else
                        {
                            UCE_HarvestingProfession tmpProf = new UCE_HarvestingProfession(prof.template.name);
                            tmpProf.experience += prof.level;
                            player.UCE_Professions.Add(tmpProf);
                        }
                    }
#endif
#if _iMMOPVP
                    player.UCE_setRealm(trait.changeRealm, trait.changeAlliedRealm);
#endif
					
					// ------------ Recalculate all Maxes here again (in case of bonusses)
					
					player.health.current = player.health.max;
					player.mana.current = player.mana.max;
#if _iMMOSTAMINA
					player.stamina = player.staminaMax;
#endif
					
					// ----------------------------------------------------------------------
					
                }
            }
        }
    }