Difference between revisions of "HINO03"

From SWGANH Wiki
Jump to: navigation, search
(Baseline Struct)
(Baseline Struct)
Line 9: Line 9:
 
|-
 
|-
 
|valign=top|
 
|valign=top|
===Baseline Struct===
+
===BaseLine Struct===
 
----
 
----
{| align="center"
+
<pre>
|-
+
SHORT:          ObjOpperandCount
||
+
INT:            Opcode
{| class="wikitable"
+
FLOAT:          Complexity
|{{short}}||'''Op Count'''
+
ASTRING:        STF File
|-
+
INT:            STF Spacer
|{{int}}||'''Opcode'''
+
ASTRING:        STF Name
|-
+
USTRING:        CustomName
|{{long}}||'''Object ID'''
+
INT:            Volume
|-
+
CSTRING:        CustomizationString
|{{int}}||'''ONIH'''
+
INT:            ??List
|-
+
INT:            UpdateCounter
|{{byte}}||'''03'''
+
{
|-
+
INT:          ??
|{{int}}||'''Counter'''
+
}
|-
+
INT:            OptionsBitmask
|{{short}}|{{operand count}}
+
INT:            Timer(Incap/Prototype)
|-
+
INT:            ConditionDamage
|{{float}}|{{complexity}}
+
INT:            MaxCondition
|-
+
BYTE:          ??
|{{a_string}}||'''STF File'''
+
BYTE:          ActiveFlag
|-
+
FLOAT:          PowerReserves
|{{int}}|'''STF Spacer'''
+
FLOAT:          PowerCost
|-
+
</pre>
|{{a_string}}||'''STF Name'''
+
|-
+
|{{u_string}}|{{custom name}}
+
|-
+
|{{int}}|{{prob defender list}}
+
|-
+
|{{int}}|{{prob def list}}
+
|-
+
|{{int}}|{{bitmask 1 = active}}
+
|-
+
|{{int}}|{{unknown}}
+
|-
+
|{{int}}|{{damage}}
+
|-
+
|{{int}}|{{max condition}}
+
|-
+
|{{byte}}|{{active}}
+
|-
+
|{{int}}|{{unknown}}
+
|-
+
|{{int}}|{{unknown}}
+
|-
+
|{{int}}|{{unknown}}
+
|}
+
|}
+
  
 
===Deltas Struct===
 
===Deltas Struct===

Revision as of 09:25, 10 January 2010

Baseline - HINO03

SWGANH Wiki is a repository of Star Wars Galaxies Developer information. This site is only meant to be used by SWGANH Developer team.

HINO Packet Type QuickNav
HINO03 - HINO06 - HINO07


BaseLine Struct


SHORT:          ObjOpperandCount
INT:            Opcode
FLOAT:          Complexity
ASTRING:        STF File
INT:            STF Spacer
ASTRING:        STF Name
USTRING:        CustomName
INT:            Volume
CSTRING:        CustomizationString
INT:            ??List
INT:            UpdateCounter
{
 INT:           ??
}
INT:            OptionsBitmask
INT:            Timer(Incap/Prototype)
INT:            ConditionDamage
INT:            MaxCondition
BYTE:           ??
BYTE:           ActiveFlag
FLOAT:          PowerReserves
FLOAT:          PowerCost

Deltas Struct



Variable Descriptions


  • Notes

Tags


50% This packet has been partially reversed.

Sample Packet


 05 00 
0C 5F A7 68              // BaselineMessage   
36 21 FF FB 1A 00 00 00  // object ID
4F 4E 49 48 03           // ONIH 3
56 00 00 00 
0E 00 
00 00 80 3F 
0E 00                    // string count
69 6E 73 74 61 6C 6C     // instal
61 74 69 6F 6E 5F 6E     // lation_n
00 00 00 00 
0E 00 
77 69 6E 64 5F 67 65 6E 65 72 61 74 6F 72      // wind_generator
00 00 00 00 
01 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 01 
00 00 00 00 
00 00 00 00 
00 00 E8 03 
00 00 01 00 
00 00 00 00 
00 00 00 00 
25 

sample code remove me once struct is documented

ByteBuffer ZoneClient::ONIH_3(uint64 id, char *installation){
	ByteBuffer packet;
	uint32 len;

	packet << (uint16) 0x0005;
	packet.opcode2(SMSG_OBJ_UPDATE);//0c5fa768
	
	packet << (uint64) id;//itemid
	
	packet << (uint32) 0x48494e4f; //0x494e534f; //OSNI Packet 

	packet << (uint8) 0x03;        //  

	char* dir = "installation_n";
	char* kind = "fusion_generator";
	uint32 oncr3size = strlen(kind)+strlen(dir);

	packet << (uint32) (oncr3size+58);//61	//bytecount rest Packet size
	packet << (uint16) 0x000e;		//object operands 13	???	//57
	packet << (float) 0;//0x3f800000;	// float 1
				
	len = strlen(dir);	
	packet << (uint16) len;
	for (int i=0;i<len;i++){
		packet << (char)dir[i];	
	}
		
	packet << (uint32) 0;
		
	len = strlen(kind);	
	packet << (uint16) len;
	for (int i=0;i<len;i++){
		packet << (char)kind[i];	
	}
	
	packet << (uint32) 0;	//string	
	packet << (uint32) 1;//1H inv load
	packet << (uint32) 0;//string
	packet << (uint32) 0;

	packet << (uint32) 0x00000000;
	packet << (uint32) 0;
	packet << (uint16) 0;
	packet << (uint16) 900;//thats the damage the structure 
                               //has taken that gets deducted from its health
	
	packet << (uint16) 0;
	packet << (uint16) 1000;//Condi2 (right of the c1 / c2)
	packet << (uint16) 0;//(evtl 32bitCondi2 (right of the c1 / c2))
	packet << (uint8) 0; /
	packet << (uint8) 0; /
		
	packet << (uint32) 0; //amount
	packet << (uint32) 0; //amount

	
	return packet;