Hi, I'm trying to call some things whenever a road gets built, I tried doing this but whenever I build a road the startNodeID.m_position.y is something like 260
Array16<NetSegment> lastRememberedNodes;
void Update(){
for (int i = 0; i < Singleton<NetManager>.instance.m_segments.m_buffer.Length; i++)
{
NetSegment item = Singleton<NetManager>.instance.m_segments.m_buffer[i];
if (item.m_flags != lastRememberedNodes.m_buffer[i].m_flags)
{
NetNode startNodeID = NetManager.instance.m_nodes.m_buffer[item.m_startNode];
NetNode endNodeID = NetManager.instance.m_nodes.m_buffer[item.m_endNode];
lastRememberedNodes.m_buffer[i].m_flags = item.m_flags;
Send("ROADBUILT|" + startNodeID.m_position.x + "|" + startNodeID.m_position.y + "|" + startNodeID.m_position.z + "|" + startNodeID.m_infoIndex + "|" + startNodeID.m_buildIndex + "|" + endNodeID.m_position.x + "|" + endNodeID.m_position.y + "|" + endNodeID.m_position.z + "|" + endNodeID.m_infoIndex +"|" + endNodeID.m_buildIndex + "|" + Singleton<NetManager>.instance.m_segments.m_buffer[i].m_infoIndex + "|" + Singleton<NetManager>.instance.m_segments.m_buffer[i].m_buildIndex + "|" + Singleton<NetManager>.instance.m_segments.m_buffer[i].m_modifiedIndex);
DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, "IM A GIRAFFE " + startNodeID.m_position.y);
break;
}
}
}
And when I initialize it here:
DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, "building a road");
ColossalFramework.Math.Randomizer ra = new ColossalFramework.Math.Randomizer();
uint startNodeBuildIndex = uint.Parse(aData[4]);
NetInfo startNodeInfo = PrefabCollection<NetInfo>.GetLoaded(startNodeBuildIndex);
ushort startNodeID;
NetManager.instance.CreateNode(out startNodeID, ref ra, startNodeInfo, new Vector3(float.Parse(aData[1]), float.Parse(aData[2]), float.Parse(aData[3])), uint.Parse(aData[5]));
DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, "building a road 1");
uint endNodeBuildIndex = uint.Parse(aData[9]);
NetInfo endtNodeInfo = PrefabCollection<NetInfo>.GetLoaded(endNodeBuildIndex);
ushort endNodeID;
NetManager.instance.CreateNode(out endNodeID, ref ra, endtNodeInfo, new Vector3(float.Parse(aData[5]), float.Parse(aData[6]), float.Parse(aData[7])), uint.Parse(aData[10]));
DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, "building a road 2");
ushort segmentID;
NetInfo segmentInfo = PrefabCollection<NetInfo>.GetLoaded(uint.Parse(aData[11]));
NetManager.instance.CreateSegment(out segmentID, ref ra, segmentInfo, startNodeID, endNodeID, new Vector3(float.Parse(aData[1]), float.Parse(aData[2]), float.Parse(aData[3])), new Vector3(float.Parse(aData[5]), float.Parse(aData[6]), float.Parse(aData[7])), uint.Parse(aData[12]), uint.Parse(aData[13]), false);
lastRememberedNodes = NetManager.instance.m_segments;
It just creates a floation road in the middle of nowhere.
Help please :?