public virtual void Init(LidServer a_server, int a_type, int a_ownerPid = 0, int a_health = 100, bool a_isNew = true) { m_isStatic = false; m_server = a_server; m_type = a_type; m_ownerPid = a_ownerPid; m_def = Buildings.GetBuildingDef(m_type); m_decayTime = m_def.decayTime * (double)((float)a_health / 100f); if (!m_def.persistent) { return; } Vector3 position = base.transform.position; float a_x = position.x * 1.00001f; Vector3 position2 = base.transform.position; float a_y = position2.z * 1.00001f; Vector3 eulerAngles = base.transform.rotation.eulerAngles; m_dbBuilding = new DatabaseBuilding(a_type, a_x, a_y, eulerAngles.y * 1.00001f, a_ownerPid, a_health); m_sql = m_server.GetSql(); if (null != m_sql) { if (a_isNew) { m_dbBuilding.flag = eDbAction.insert; m_sql.SaveBuilding(m_dbBuilding); } m_nextSqlUpdateTime = Random.Range(100f, 300f); } }
public ItemContainer(int a_maxX, int a_maxY, int a_xOffset, int a_cid = 0, SQLThreadManager a_sql = null, ServerPlayer a_player = null) { this.m_maxX = a_maxX; this.m_maxY = a_maxY; this.m_xOffset = a_xOffset; this.m_cid = a_cid; this.m_sql = a_sql; this.m_player = a_player; }
public ServerPlayer(string a_name, ulong a_accountId, int a_onlineId, eCharType a_type, NetConnection a_con, SQLThreadManager a_sql, LidServer a_server, BuildingManager a_buildMan, MissionManager a_missionMan) { m_name = a_name; m_accountId = a_accountId; m_onlineId = a_onlineId; m_charType = a_type; m_connection = a_con; if (m_connection != null) { m_connection.Tag = m_onlineId; } m_sql = a_sql; m_server = a_server; m_buildMan = a_buildMan; m_missionMan = a_missionMan; }
private void Awake() { if (Global.isServer) { Vector3 position = base.transform.position; float num = position.x * 10f; Vector3 position2 = base.transform.position; m_cid = (int)(num + position2.z * 20f); m_sql = (SQLThreadManager)Object.FindObjectOfType(typeof(SQLThreadManager)); m_container = new ItemContainer(4, 4, 6, m_cid, m_sql); m_container.m_position = base.transform.position; SetNextDropTime(); } else { Object.Destroy(this); } }
public void Spawn(GameObject a_prefab, DatabasePlayer a_dbPlayer) { Vector3 position = Vector3.zero; if (a_dbPlayer.x == 0f && 0f == a_dbPlayer.y) { a_dbPlayer.karma = 200; ServerTutorial tutorial = m_server.GetTutorial(); if (null != tutorial) { position = tutorial.StartTutorial(); } } else { position.x = a_dbPlayer.x; position.z = a_dbPlayer.y; } position.y = 0f; m_pid = a_dbPlayer.pid; GameObject gameObject = (GameObject)Object.Instantiate(a_prefab, position, Quaternion.identity); m_char = gameObject.GetComponent <ControlledChar>(); m_health = a_dbPlayer.health; m_energy = a_dbPlayer.energy; m_karma = a_dbPlayer.karma; m_lastUpdateKarma = a_dbPlayer.karma; m_xp = a_dbPlayer.xp; m_condition = a_dbPlayer.condition; m_gold = a_dbPlayer.gold; m_partyId = a_dbPlayer.partyId; m_partyRank = a_dbPlayer.partyRank; RecalculateRank(); if (m_health == 0f) { m_respawnTime = Time.time; } m_char.Init(this); m_inventory = new ItemContainer(5, 4, 0, SQLThreadManager.PidToCid(m_pid), m_sql, this); m_buildMan.IgnoreBedCollision(m_pid, m_char.collider); }
public DatabaseItem DragDrop(Vector3 a_dragPos, Vector3 a_dropPos, ItemContainer a_otherContainer, Vector3 a_freeWorldDropPos) { DatabaseItem result = new DatabaseItem(0); int itemIndexFromPos = GetItemIndexFromPos(a_dragPos.x, a_dragPos.z); if (itemIndexFromPos > -1 && itemIndexFromPos < m_items.Count) { if (!IsValidPos(a_dropPos)) { bool flag = true; if (a_otherContainer != null && a_otherContainer.IsValidPos(a_dropPos)) { flag = a_otherContainer.CollectItem(m_items[itemIndexFromPos], true, a_dropPos); } else { result = m_items[itemIndexFromPos]; result.cid = 0; result.x = a_freeWorldDropPos.x; result.y = a_freeWorldDropPos.z; result.dropTime = Time.time; int num = (!(null == m_sql)) ? SQLThreadManager.CidToPid(m_cid) : 0; result.dropPlayerId = ((m_cid != num) ? num : 0); } if (flag) { SQLChange(m_items[itemIndexFromPos], eDbAction.delete); m_items.RemoveAt(itemIndexFromPos); } } else { int itemIndexFromPos2 = GetItemIndexFromPos(a_dropPos.x, a_dropPos.z); if (itemIndexFromPos2 == -1) { DatabaseItem databaseItem = m_items[itemIndexFromPos]; databaseItem.x = a_dropPos.x; databaseItem.y = a_dropPos.z; m_items[itemIndexFromPos] = databaseItem; SQLChange(databaseItem, eDbAction.update); } else { DatabaseItem databaseItem2 = m_items[itemIndexFromPos]; if (Items.IsStackable(databaseItem2.type)) { DatabaseItem databaseItem3 = m_items[itemIndexFromPos]; int type = databaseItem3.type; DatabaseItem databaseItem4 = m_items[itemIndexFromPos2]; if (type == databaseItem4.type) { DatabaseItem databaseItem5 = m_items[itemIndexFromPos]; int amount = databaseItem5.amount; DatabaseItem databaseItem6 = m_items[itemIndexFromPos2]; int num2 = amount + databaseItem6.amount; if (num2 <= 254) { DatabaseItem a_item = m_items[itemIndexFromPos]; SQLChange(a_item, eDbAction.delete); DatabaseItem databaseItem7 = m_items[itemIndexFromPos2]; databaseItem7.amount = num2; m_items[itemIndexFromPos2] = databaseItem7; SQLChange(databaseItem7, eDbAction.update); m_items.RemoveAt(itemIndexFromPos); } else { DatabaseItem databaseItem8 = m_items[itemIndexFromPos]; databaseItem8.amount = num2 - 254; m_items[itemIndexFromPos] = databaseItem8; SQLChange(databaseItem8, eDbAction.update); DatabaseItem databaseItem9 = m_items[itemIndexFromPos2]; databaseItem9.amount = 254; m_items[itemIndexFromPos2] = databaseItem9; SQLChange(databaseItem9, eDbAction.update); } goto IL_0388; } } DatabaseItem databaseItem10 = m_items[itemIndexFromPos]; DatabaseItem databaseItem11 = m_items[itemIndexFromPos]; DatabaseItem databaseItem12 = m_items[itemIndexFromPos2]; databaseItem11.x = databaseItem12.x; DatabaseItem databaseItem13 = m_items[itemIndexFromPos2]; databaseItem11.y = databaseItem13.y; m_items[itemIndexFromPos] = databaseItem11; SQLChange(databaseItem11, eDbAction.update); DatabaseItem databaseItem14 = m_items[itemIndexFromPos2]; databaseItem14.x = databaseItem10.x; databaseItem14.y = databaseItem10.y; m_items[itemIndexFromPos2] = databaseItem14; SQLChange(databaseItem14, eDbAction.update); } } } goto IL_0388; IL_0388: return(result); }