forked from MagicBane/Server
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							429 lines
						
					
					
						
							10 KiB
						
					
					
				
			
		
		
	
	
							429 lines
						
					
					
						
							10 KiB
						
					
					
				| // • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ . | |
| // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· | |
| // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ | |
| // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ | |
| // ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀ | |
| //      Magicbane Emulator Project © 2013 - 2022 | |
| //                www.magicbane.com | |
|  | |
|  | |
| package engine.net.client.msg.login; | |
|  | |
|  | |
| import engine.net.AbstractConnection; | |
| import engine.net.ByteBufferReader; | |
| import engine.net.ByteBufferWriter; | |
| import engine.net.client.Protocol; | |
| import engine.net.client.msg.ClientNetMsg; | |
| import engine.objects.Race; | |
|  | |
| public class CommitNewCharacterMsg extends ClientNetMsg { | |
|  | |
|     private String firstName; | |
|     private String lastName; | |
|     private int serverID; | |
|     private int hairStyle; | |
|     private int beardStyle; | |
|     private int skinColor; | |
|     private int hairColor; | |
|     private int beardColor; | |
|     private int kit; | |
|     private int numRunes; | |
|     private int[] runes; | |
|     private int numStats; | |
|     private int strengthMod; | |
|     private int dexterityMod; | |
|     private int constitutionMod; | |
|     private int intelligenceMod; | |
|     private int spiritMod; | |
|  | |
|     /** | |
|      * This is the general purpose constructor. | |
|      */ | |
|     public CommitNewCharacterMsg() { | |
|         super(Protocol.CREATECHAR); | |
|         runes = new int[23]; | |
|         strengthMod = 0; | |
|         dexterityMod = 0; | |
|         constitutionMod = 0; | |
|         intelligenceMod = 0; | |
|         spiritMod = 0; | |
|     } | |
|  | |
|     /** | |
|      * This constructor is used by NetMsgFactory. It attempts to deserialize the | |
|      * ByteBuffer into a message. If a BufferUnderflow occurs (based on reading | |
|      * past the limit) then this constructor Throws that Exception to the | |
|      * caller. | |
|      */ | |
|     public CommitNewCharacterMsg(AbstractConnection origin, ByteBufferReader reader) { | |
|         super(Protocol.CREATECHAR, origin, reader); | |
|     } | |
|  | |
|     /** | |
|      * Serializes the subclass specific items to the supplied ByteBufferWriter. | |
|      */ | |
|     @Override | |
|     protected void _serialize(ByteBufferWriter writer) { | |
|  | |
|         writer.putString(this.firstName); | |
|         writer.putString(this.lastName); | |
|  | |
|         writer.putInt(this.serverID); | |
|         writer.putInt(0); | |
|         writer.putInt(this.hairStyle); | |
|         writer.putInt(0); | |
|         writer.putInt(this.beardStyle); | |
|         writer.putInt(this.skinColor); | |
|         writer.putInt(this.hairColor); | |
|         writer.putInt(this.beardColor); | |
|         writer.putInt(this.kit); | |
|         for (int i = 0; i < 23; i++) { | |
|             writer.putInt(0); | |
|             writer.putInt(this.runes[i]); | |
|             writer.putInt(0); | |
|             writer.putInt(0); | |
|         } | |
|         writer.putInt(this.numStats); | |
|         if (this.strengthMod != 0) { | |
|             writer.putInt(0x8AC3C0E6); | |
|             writer.putInt(this.strengthMod); | |
|         } | |
|         if (this.dexterityMod != 0) { | |
|             writer.putInt(0xE07B3336); | |
|             writer.putInt(this.dexterityMod); | |
|         } | |
|         if (this.constitutionMod != 0) { | |
|             writer.putInt(0xB15DC77E); | |
|             writer.putInt(this.constitutionMod); | |
|         } | |
|         if (this.intelligenceMod != 0) { | |
|             writer.putInt(0xFF665EC3); | |
|             writer.putInt(this.intelligenceMod); | |
|         } | |
|         if (this.spiritMod != 0) { | |
|             writer.putInt(0xACB82E33); | |
|             writer.putInt(this.spiritMod); | |
|         } | |
|  | |
|     } | |
|  | |
|     /** | |
|      * Deserializes the subclass specific items from the supplied ByteBufferReader. | |
|      */ | |
|     @Override | |
|     protected void _deserialize(ByteBufferReader reader) { | |
|         runes = new int[23]; | |
|         runes = new int[23]; | |
|         strengthMod = 0; | |
|         dexterityMod = 0; | |
|         constitutionMod = 0; | |
|         intelligenceMod = 0; | |
|         spiritMod = 0; | |
|  | |
|         this.firstName = reader.getString(); | |
|         this.lastName = reader.getString(); | |
|         this.serverID = reader.getInt(); | |
|  | |
|         reader.monitorInt(0, "CommitNewCharacter 01"); | |
|  | |
|         this.hairStyle = reader.getInt(); | |
|  | |
|         reader.monitorInt(0, "CommitNewCharacter 02"); | |
|  | |
|         this.beardStyle = reader.getInt(); | |
|         this.skinColor = reader.getInt(); | |
|         this.hairColor = reader.getInt(); | |
|         this.beardColor = reader.getInt(); | |
|         this.kit = reader.getInt(); | |
|         this.clearRunes(); | |
|         int runeCount = 0; | |
|         for (int i = 0; i < 23; i++) { | |
|  | |
|             reader.monitorInt(0, "CommitNewCharacter 03-" + i); | |
|  | |
|             this.runes[i] = reader.getInt(); | |
|  | |
|             reader.monitorInt(0, "CommitNewCharacter 04-" + i); | |
|             reader.monitorInt(0, "CommitNewCharacter 05-" + i); | |
|  | |
|             if (this.runes[i] != 0) | |
|                 runeCount++; | |
|         } | |
|         this.numRunes = runeCount; | |
|         this.numStats = reader.getInt(); | |
|         int stattype; | |
|         for (int i = 0; i < this.numStats; i++) { | |
|             stattype = reader.getInt(); | |
|             if (stattype == 0x8AC3C0E6) | |
|                 this.strengthMod = reader.getInt(); | |
|             else if (stattype == 0xE07B3336) | |
|                 this.dexterityMod = reader.getInt(); | |
|             else if (stattype == 0xB15DC77E) | |
|                 this.constitutionMod = reader.getInt(); | |
|             else if (stattype == 0xFF665EC3) | |
|                 this.intelligenceMod = reader.getInt(); | |
|             else if (stattype == 0xACB82E33) | |
|                 this.spiritMod = reader.getInt(); | |
|         } | |
|     } | |
|  | |
|  | |
|     public void clearRunes() { | |
|         for (int i = 0; i < 23; i++) | |
|             this.runes[i] = 0; | |
|     } | |
|  | |
|     public int getRace() { | |
|         for (int i = 0; i < 23; i++) | |
|             if(Race.getRace(this.runes[i]) != null) | |
|                 return this.runes[i]; | |
|         return 0; | |
|     } | |
|  | |
|     public int getBaseClass() { | |
|         for (int i = 0; i < 23; i++) | |
|             if (this.runes[i] > 2499 && this.runes[i] < 2504) | |
|                 return this.runes[i]; | |
|         return 0; | |
|     } | |
|  | |
|     /** | |
|      * @return the firstName | |
|      */ | |
|     public String getFirstName() { | |
|         return firstName; | |
|     } | |
|  | |
|     /** | |
|      * @param firstName the firstName to set | |
|      */ | |
|     public void setFirstName(String firstName) { | |
|         this.firstName = firstName; | |
|     } | |
|  | |
|     /** | |
|      * @return the lastName | |
|      */ | |
|     public String getLastName() { | |
|         return lastName; | |
|     } | |
|  | |
|     /** | |
|      * @param lastName the lastName to set | |
|      */ | |
|     public void setLastName(String lastName) { | |
|         this.lastName = lastName; | |
|     } | |
|  | |
|     /** | |
|      * @return the serverID | |
|      */ | |
|     public int getServerID() { | |
|         return serverID; | |
|     } | |
|  | |
|     /** | |
|      * @param serverID the serverID to set | |
|      */ | |
|     public void setServerID(int serverID) { | |
|         this.serverID = serverID; | |
|     } | |
|  | |
|     /** | |
|      * @return the hairStyle | |
|      */ | |
|     public int getHairStyle() { | |
|         return hairStyle; | |
|     } | |
|  | |
|     /** | |
|      * @param hairStyle the hairStyle to set | |
|      */ | |
|     public void setHairStyle(int hairStyle) { | |
|         this.hairStyle = hairStyle; | |
|     } | |
|  | |
|     /** | |
|      * @return the beardStyle | |
|      */ | |
|     public int getBeardStyle() { | |
|         return beardStyle; | |
|     } | |
|  | |
|     /** | |
|      * @param beardStyle the beardStyle to set | |
|      */ | |
|     public void setBeardStyle(int beardStyle) { | |
|         this.beardStyle = beardStyle; | |
|     } | |
|  | |
|     /** | |
|      * @return the skinColor | |
|      */ | |
|     public int getSkinColor() { | |
|         return skinColor; | |
|     } | |
|  | |
|     /** | |
|      * @param skinColor the skinColor to set | |
|      */ | |
|     public void setSkinColor(int skinColor) { | |
|         this.skinColor = skinColor; | |
|     } | |
|  | |
|     /** | |
|      * @return the hairColor | |
|      */ | |
|     public int getHairColor() { | |
|         return hairColor; | |
|     } | |
|  | |
|     /** | |
|      * @param hairColor the hairColor to set | |
|      */ | |
|     public void setHairColor(int hairColor) { | |
|         this.hairColor = hairColor; | |
|     } | |
|  | |
|     /** | |
|      * @return the beardColor | |
|      */ | |
|     public int getBeardColor() { | |
|         return beardColor; | |
|     } | |
|  | |
|     /** | |
|      * @param beardColor the beardColor to set | |
|      */ | |
|     public void setBeardColor(int beardColor) { | |
|         this.beardColor = beardColor; | |
|     } | |
|  | |
|     /** | |
|      * @return the kit | |
|      */ | |
|     public int getKit() { | |
|         return kit; | |
|     } | |
|  | |
|     /** | |
|      * @param kit the kit to set | |
|      */ | |
|     public void setKit(int kit) { | |
|         this.kit = kit; | |
|     } | |
|  | |
|     /** | |
|      * @return the runeCount | |
|      */ | |
|     public int getNumRunes() { | |
|         return numRunes; | |
|     } | |
|  | |
|     /** | |
|      * @param numRunes the runeCount to set | |
|      */ | |
|     public void setNumRunes(int numRunes) { | |
|         this.numRunes = numRunes; | |
|     } | |
|  | |
|     /** | |
|      * @return the runes | |
|      */ | |
|     public int[] getRunes() { | |
|         return runes; | |
|     } | |
|  | |
|     /** | |
|      * @param runes the runes to set | |
|      */ | |
|     public void setRunes(int[] runes) { | |
|         this.runes = runes; | |
|     } | |
|  | |
|     /** | |
|      * @return the numStats | |
|      */ | |
|     public int getNumStats() { | |
|         return numStats; | |
|     } | |
|  | |
|     /** | |
|      * @param numStats the numStats to set | |
|      */ | |
|     public void setNumStats(int numStats) { | |
|         this.numStats = numStats; | |
|     } | |
|  | |
|     /** | |
|      * @return the strengthMod | |
|      */ | |
|     public int getStrengthMod() { | |
|         return strengthMod; | |
|     } | |
|  | |
|     /** | |
|      * @param strengthMod the strengthMod to set | |
|      */ | |
|     public void setStrengthMod(int strengthMod) { | |
|         this.strengthMod = strengthMod; | |
|     } | |
|  | |
|     /** | |
|      * @return the dexterityMod | |
|      */ | |
|     public int getDexterityMod() { | |
|         return dexterityMod; | |
|     } | |
|  | |
|     /** | |
|      * @param dexterityMod the dexterityMod to set | |
|      */ | |
|     public void setDexterityMod(int dexterityMod) { | |
|         this.dexterityMod = dexterityMod; | |
|     } | |
|  | |
|     /** | |
|      * @return the constitutionMod | |
|      */ | |
|     public int getConstitutionMod() { | |
|         return constitutionMod; | |
|     } | |
|  | |
|     /** | |
|      * @param constitutionMod the constitutionMod to set | |
|      */ | |
|     public void setConstitutionMod(int constitutionMod) { | |
|         this.constitutionMod = constitutionMod; | |
|     } | |
|  | |
|     /** | |
|      * @return the intelligenceMod | |
|      */ | |
|     public int getIntelligenceMod() { | |
|         return intelligenceMod; | |
|     } | |
|  | |
|     /** | |
|      * @param intelligenceMod the intelligenceMod to set | |
|      */ | |
|     public void setIntelligenceMod(int intelligenceMod) { | |
|         this.intelligenceMod = intelligenceMod; | |
|     } | |
|  | |
|     /** | |
|      * @return the spiritMod | |
|      */ | |
|     public int getSpiritMod() { | |
|         return spiritMod; | |
|     } | |
|  | |
|     /** | |
|      * @param spiritMod the spiritMod to set | |
|      */ | |
|     public void setSpiritMod(int spiritMod) { | |
|         this.spiritMod = spiritMod; | |
|     } | |
|  | |
| }
 | |
| 
 |