Merge pull request #210 from rgto/community
Fix community Branch and Materials stash
This commit is contained in:
commit
6aedabb165
10
README.md
10
README.md
@ -64,6 +64,16 @@ dotnet publish ./src/DiIiS-NA/Blizzless.csproj --configuration Release --output
|
||||
- `!account add username@ YourPassword YourBattleTag owner`
|
||||
- Creates an account with Login `username@`, password `YourPassword` and BattleTag `YourBattleTag` with rank `owner`
|
||||
|
||||
### Example:
|
||||
|
||||
> !account add username@ YourPassword YourBattleTag
|
||||
|
||||
Creates an account with Login `username@`, password `YourPassword` and BattleTag `YourBattleTag`
|
||||
|
||||
> !account add username@ YourPassword YourBattleTag owner
|
||||
|
||||
Creates an account with Login `username@`, password `YourPassword` and BattleTag `YourBattleTag` with rank `owner`
|
||||
|
||||
## Prepare Client
|
||||
|
||||
Do this for each client connecting to the server.
|
||||
|
||||
@ -72,7 +72,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations
|
||||
var spawner = world.GetActorBySNO(ActorSno._trdun_rescuecainskelspawner);
|
||||
while (spawner != null)
|
||||
{
|
||||
var monster = FastRandom.Instance.Next(10) % 2 == 0 ? ActorSno._skeletonking_shield_skeleton : ActorSno._skeletonking_skeleton;
|
||||
var monster = ActorSno._skeletonking_shield_skeleton;
|
||||
world.SpawnMonster(monster, spawner.Position);
|
||||
spawner.Destroy();
|
||||
spawner = world.GetActorBySNO(ActorSno._trdun_rescuecainskelspawner);
|
||||
@ -77,7 +77,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
|
||||
const int anniversaryEventStatus = 1;
|
||||
const int challengeRiftNumber = 1;
|
||||
const bool freeToPlay = true;
|
||||
const bool storeStatus = false; // false
|
||||
const bool storeStatus = true; // false (true - disabled, false - enabled)
|
||||
const string catalogDigest = "C42DC6117A7008EDA2006542D6C07EAD096DAD90";
|
||||
const string catalogVersion = "633565800390338000";
|
||||
const int regionId = 1;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
|
||||
@ -19043,6 +19042,37 @@ namespace DiIiS_NA.D3_GameServer.Core.Types.SNO
|
||||
_p74_dh_multishotrune_discipline_cast_proj_actor = 487919,
|
||||
_p74_dh_multishotrune_width_cast_proj_actor = 487920,
|
||||
_p74_cosmetic_pet_zombiewolfpup = 487966,
|
||||
_holidaygift = 488101,
|
||||
_p75_cos_pet_murlocinarius = 488105,
|
||||
_p75_displayicon = 488117,
|
||||
_p75_cos_pet_inariusmurloc_wings = 488119,
|
||||
_p75_displayicon_024 = 488129,
|
||||
_p75_displayicon_002 = 488130,
|
||||
_p75_displayicon_004 = 488131,
|
||||
_p75_displayicon_023 = 488132,
|
||||
_p75_cosmetic_pet_inariusmurloc = 488138,
|
||||
_p75_cos_wings_inarius = 488139,
|
||||
_p75_cos_wings_inarius_barbf = 488186,
|
||||
_p75_cos_wings_inarius_barbm = 488189,
|
||||
_p75_cos_wings_inarius_cdrf = 488191,
|
||||
_p75_cos_wings_inarius_cdrm = 488193,
|
||||
_p75_cos_wings_inarius_dhf = 488195,
|
||||
_p75_cos_wings_inarius_dhm = 488197,
|
||||
_p75_cos_wings_inarius_monkf = 488199,
|
||||
_p75_cos_wings_inarius_monkm = 488201,
|
||||
_p75_cos_wings_inarius_nmf = 488203,
|
||||
_p75_cos_wings_inarius_nmm = 488205,
|
||||
_p75_cos_wings_inarius_wdf = 488207,
|
||||
_p75_cos_wings_inarius_wdm = 488209,
|
||||
_p75_cos_wings_inarius_wizf = 488211,
|
||||
_p75_cos_wings_inarius_wizm = 488213,
|
||||
_p75_darkalchemy_gizmo_altar = 488275,
|
||||
_p75_cos_pet_angelicdragon = 488485,
|
||||
_p75_cosmetic_pet_angelicdragon = 488498,
|
||||
_p75_displayicon_018 = 488500,
|
||||
_p75_displayicon_020 = 488501,
|
||||
_p75_crafting_primal = 488515,
|
||||
_p75_itempassive_unique_ring_017_dome_purple_red = 488528,
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
@ -15253,6 +15253,9 @@
|
||||
p75_cos_wings_inarius_anim_wizf_idle_2_intimidate = 488182,
|
||||
p75_cos_wings_inarius_anim_wizm_idle_0_neutral = 488183,
|
||||
p75_cos_wings_inarius_anim_wizm_idle_2_intimidate = 488185,
|
||||
p75_cos_pet_angelicdragon_creation = 488486,
|
||||
p75_cos_pet_angelicdragon_fidget_grp = 488487,
|
||||
p75_cos_pet_angelicdragon_run = 488488,
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
return;
|
||||
}
|
||||
|
||||
int cost = item.ItemDefinition.Cost;
|
||||
int cost = item.ItemDefinition.CostAlt;
|
||||
//Check shards here
|
||||
if (currentShards < cost)
|
||||
return;
|
||||
|
||||
@ -25,7 +25,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
|
||||
var thread = new GameUpdateThread();
|
||||
//thread.CPUAffinity = (1UL << coreId);
|
||||
_updateWorkers.Add(thread);
|
||||
var loopThread = new Thread(thread.Run) { Name = "UpdateWorkerThread", IsBackground = true }; ; // create the game update thread.
|
||||
var loopThread = new Thread(thread.Run) { Name = "UpdateWorkerThread", IsBackground = true };
|
||||
loopThread.Start();
|
||||
}
|
||||
Logger.Info("Started {0} threads", CPUCount);
|
||||
|
||||
@ -832,14 +832,88 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
{
|
||||
|
||||
player.Inventory.RefreshInventoryToClient();
|
||||
var playerAcc = player.InGameClient.BnetClient.Account.GameAccount;
|
||||
switch (SNO)
|
||||
{
|
||||
case ActorSno._tieredlootrunkey_0:
|
||||
case ActorSno._tieredlootrunkey_0: //Greater Rift Key
|
||||
playerAcc.BigPortalKey++;
|
||||
Destroy();
|
||||
break;
|
||||
case ActorSno._crafting_assortedparts_05: //Reusable Parts
|
||||
playerAcc.CraftItem1++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._crafting_magic_05: //Arcanes Dust
|
||||
playerAcc.CraftItem2++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._crafting_rare_05: //Veiled Crystal
|
||||
playerAcc.CraftItem3++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._crafting_looted_reagent_05: //Death's Breath
|
||||
playerAcc.CraftItem4++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._crafting_legendary_05: //Forgotten Soul
|
||||
playerAcc.CraftItem5++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._craftingreagent_legendary_set_borns_x1: //Khanduran Rune Bounty itens Act I.
|
||||
playerAcc.HoradricA1Res++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._craftingreagent_legendary_set_cains_x1: //Caldeum Nightshade Bounty itens Act II.
|
||||
playerAcc.HoradricA2Res++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._craftingreagent_legendary_set_demon_x1: //Arreat War Tapestry Bounty itens Act III.
|
||||
playerAcc.HoradricA3Res++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._craftingreagent_legendary_set_hallowed_x1: //Corrupted Angel Flesh Bounty itens Act IV.
|
||||
playerAcc.HoradricA4Res++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._craftingreagent_legendary_set_captaincrimsons_x1: //Westmarch Holy Water Bounty itens Act V.
|
||||
playerAcc.HoradricA5Res++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._demonorgan_skeletonking_x1: //Leorik Regret.
|
||||
playerAcc.LeorikKey++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._demonorgan_ghom_x1: //Vial of Putridness.
|
||||
playerAcc.VialofPutridness++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._demonorgan_siegebreaker_x1: //Idol of Terror.
|
||||
playerAcc.IdolofTerror++;
|
||||
Destroy();
|
||||
break;
|
||||
|
||||
case ActorSno._demonorgan_diablo_x1: //Heart of Fright.
|
||||
playerAcc.HeartofFright++;
|
||||
Destroy();
|
||||
break;
|
||||
//case ActorSno._currency_platinum_flippy: //Platinum coin
|
||||
// playerAcc.Platinum++;
|
||||
// Destroy();
|
||||
// break;
|
||||
default:
|
||||
player.Inventory.PickUp(this);
|
||||
break;
|
||||
|
||||
@ -582,7 +582,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
|
||||
ChangeItemLocationDB(old_x, old_y + 1, addedItem);
|
||||
destGrid.PlaceItem(addedItem, old_y + 1, old_x);
|
||||
}
|
||||
};
|
||||
}
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1557,7 +1558,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
|
||||
return;
|
||||
|
||||
int idDuration = 60;
|
||||
_owner.StartCasting(idDuration, new Action(() => {
|
||||
_owner.StartCasting(idDuration, new Action(() =>
|
||||
{
|
||||
item.Identify();
|
||||
}));
|
||||
}
|
||||
@ -2318,7 +2320,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
|
||||
|
||||
D3.Items.CurrencyData craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20).SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift.
|
||||
|
||||
D3.Items.CurrencyData[] consumables = {goldData, bloodShardData, platinumData, craft1Data, craft2Data, craft3Data, craft4Data, craft5Data, craft7Data, horadric1Data, horadric2Data, horadric3Data, horadric4Data, horadric5Data, craft8Data, craft9Data, craft10Data, craft11Data};
|
||||
D3.Items.CurrencyData[] consumables = {
|
||||
goldData, bloodShardData, platinumData, craft1Data,
|
||||
craft2Data, craft3Data, craft4Data, craft5Data, craft7Data,
|
||||
horadric1Data, horadric2Data, horadric3Data, horadric4Data,
|
||||
horadric5Data, craft8Data, craft9Data, craft10Data, craft11Data
|
||||
};
|
||||
|
||||
foreach (var consumable in consumables)
|
||||
{
|
||||
@ -2404,7 +2411,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
|
||||
_owner.SetAttributesByParagon();
|
||||
CheckWeapons();
|
||||
_owner.Attributes.BroadcastChangedIfRevealed();
|
||||
Task.Delay(3000).ContinueWith((t) => {
|
||||
Task.Delay(3000).ContinueWith((t) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
_owner.CheckBonusSets();
|
||||
|
||||
@ -4098,7 +4098,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable
|
||||
HotBarButtons = SkillSet.HotBarSkills,
|
||||
HotBarButton = new HotbarButtonData
|
||||
{
|
||||
SNOSkill = -1, RuneType = -1, ItemGBId =
|
||||
SNOSkill = -1,
|
||||
RuneType = -1,
|
||||
ItemGBId =
|
||||
StringHashHelper.HashItemName(
|
||||
"HealthPotionBottomless") //2142362846//this.Toon.DBActiveSkills.PotionGBID
|
||||
,
|
||||
@ -4340,8 +4342,14 @@ public class Player : Actor, IMessageConsumer, IUpdateable
|
||||
//returns empty data
|
||||
var emptyHireling = new HirelingInfo
|
||||
{
|
||||
HirelingIndex = type, GbidName = 0x0000, Dead = false, Skill1SNOId = -1, Skill2SNOId = -1,
|
||||
Skill3SNOId = -1, Skill4SNOId = -1, annItems = -1
|
||||
HirelingIndex = type,
|
||||
GbidName = 0x0000,
|
||||
Dead = false,
|
||||
Skill1SNOId = -1,
|
||||
Skill2SNOId = -1,
|
||||
Skill3SNOId = -1,
|
||||
Skill4SNOId = -1,
|
||||
annItems = -1
|
||||
};
|
||||
return emptyHireling;
|
||||
}
|
||||
@ -5114,13 +5122,15 @@ public class Player : Actor, IMessageConsumer, IUpdateable
|
||||
if (World.Game.IsHardcore && Attributes[GameAttributes.Level] >= 70)
|
||||
addedExp *= 5;
|
||||
|
||||
if (Attributes[GameAttributes.Alt_Level] >= 515)
|
||||
{
|
||||
var XPcap = 91.262575239831f * Math.Pow(Attributes[GameAttributes.Alt_Level], 3) -
|
||||
44301.083380565047f * Math.Pow(Attributes[GameAttributes.Alt_Level], 2) +
|
||||
3829010.395566940308f * Attributes[GameAttributes.Alt_Level] + 322795582.543823242188f;
|
||||
addedExp = (int)((float)(ParagonLevelBorders[Attributes[GameAttributes.Alt_Level]] / XPcap) * addedExp);
|
||||
}
|
||||
// To'do verify this formula.
|
||||
// Remove this if to remove paragon level cap.
|
||||
//if (Attributes[GameAttributes.Alt_Level] >= 515)
|
||||
//{
|
||||
// var XPcap = 91.262575239831f * Math.Pow(Attributes[GameAttributes.Alt_Level], 3) -
|
||||
// 44301.083380565047f * Math.Pow(Attributes[GameAttributes.Alt_Level], 2) +
|
||||
// 3829010.395566940308f * Attributes[GameAttributes.Alt_Level] + 322795582.543823242188f;
|
||||
// addedExp = (int)((float)(ParagonLevelBorders[Attributes[GameAttributes.Alt_Level]] / XPcap) * addedExp);
|
||||
//}
|
||||
|
||||
if (Attributes[GameAttributes.Rest_Experience_Lo] > 0)
|
||||
{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace DiIiS_NA.GameServer.MessageSystem
|
||||
@ -1497,6 +1497,9 @@ namespace DiIiS_NA.GameServer.MessageSystem
|
||||
public static readonly GameAttributeB Soul_shards_unlocked = new(1478, "Soulshardsunlocked");
|
||||
public static readonly GameAttributeB Item_was_sanctified = new(1479, "Itemwassanctified");
|
||||
public static readonly GameAttributeB Sanctified_items_unlocked = new(1480, "Sanctifieditemsunlocked");
|
||||
public static readonly GameAttributeI Heros_Unlocked_Dark_Alchemy_Nodes = new(1481, "HerosunlockedDarkAlchemynodes");
|
||||
public static readonly GameAttributeI Dark_Alchemy_Powers_Unlocked = new(1482, "DarkAlchemypowersunlocked");
|
||||
public static readonly GameAttributeB Item_Was_Primalized = new(1483, "Itemwasprimalized");
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ Enabled = true
|
||||
; IP address on which the server will be bound
|
||||
BindIP = 127.0.0.1
|
||||
; Port for web interactions
|
||||
WebPort = 83
|
||||
WebPort = 9800
|
||||
; Port for the server
|
||||
Port = 1119
|
||||
|
||||
@ -49,7 +49,7 @@ CoreActive = true
|
||||
; IP address on which the game server will be bound
|
||||
BindIP = 127.0.0.1
|
||||
; Port for web interactions
|
||||
WebPort = 83
|
||||
WebPort = 9001
|
||||
; Port for game server connections
|
||||
Port = 1345
|
||||
; IP address for IPv6 bindings
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
<property name="use_proxy_validator">true</property>
|
||||
<property name="command_timeout">0</property>
|
||||
<property name="connection.connection_string">
|
||||
Server=diiis-na-db;Database=diiis;User ID=postgres;Password=postgres
|
||||
Server=localhost;Database=diiis;User ID=postgres;Password=postgres
|
||||
</property>
|
||||
<property name="connection.release_mode">on_close</property>
|
||||
<property name="adonet.batch_size">0</property>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<property name="use_proxy_validator">true</property>
|
||||
<property name="command_timeout">0</property>
|
||||
<property name="connection.connection_string">
|
||||
Server=diiis-na-db;Database=worlds;User ID=postgres;Password=postgres
|
||||
Server=localhost;Database=worlds;User ID=postgres;Password=postgres
|
||||
</property>
|
||||
<property name="connection.release_mode">on_close</property>
|
||||
<property name="adonet.batch_size">0</property>
|
||||
|
||||
Loading…
Reference in New Issue
user.block.title