Example #1
0
	/**
	 * When clicking on an Entity
	 *
	 */
	function onMouseDown()
	{
		var Entity = this.constructor;
		var pkt;

		switch (this.objecttype) {
			case Entity.TYPE_PET:
				break;

			case Entity.TYPE_ITEM:
				Cursor.setType( Cursor.ACTION.PICK, true, 2 );

				pkt       = new PACKET.CZ.ITEM_PICKUP();
				pkt.ITAID = this.GID;

				// Too far, walking to it
				if (vec2.distance(Session.Entity.position, this.position) > 2) {
					Session.moveAction = pkt;

					pkt         = new PACKET.CZ.REQUEST_MOVE();
					pkt.dest[0] = Mouse.world.x;
					pkt.dest[1] = Mouse.world.y;
					Network.sendPacket(pkt);

					return true;
				}

				Network.sendPacket(pkt);
				Session.Entity.lookTo( this.position[0], this.position[1] );
				return true;

			case Entity.TYPE_NPC:
				pkt      = new PACKET.CZ.CONTACTNPC();
				pkt.NAID = this.GID;
				pkt.type = 0; // TODO: what is it for ?
				Network.sendPacket(pkt);

				// Updare look
				Session.Entity.lookTo( this.position[0], this.position[1] );
				pkt = new PACKET.CZ.CHANGE_DIRECTION();
				pkt.headDir = Session.Entity.headDir;
				pkt.dir     = Session.Entity.direction;
				Network.sendPacket(pkt);
				return true;

			case Entity.TYPE_WARP:
				pkt         = new PACKET.CZ.REQUEST_MOVE();
				pkt.dest[0] = this.position[0];
				pkt.dest[1] = this.position[1];
				Network.sendPacket(pkt);
				break;
		}

		return false;
	}
Example #2
0
	/**
	 * Open entity room (chat room, shop, ...)
	 */
	function onRoomEnter()
	{
		var pkt;
		var Room = this.room.constructor;

		switch (this.room.type) {

			case Room.Type.SELL_SHOP:
				pkt = new PACKET.CZ.REQ_CLICK_TO_BUYING_STORE();
				pkt.makerAID = this.room.id;
				Network.sendPacket(pkt);
				break;

			case Room.Type.BUY_SHOP:
				pkt = new PACKET.CZ.REQ_BUY_FROMMC();
				pkt.AID = this.room.id;
				Network.sendPacket(pkt);
				break;

			case Room.Type.PUBLIC_CHAT:
				pkt = new PACKET.CZ.REQ_ENTER_ROOM();
				pkt.roomID = this.room.id;
				pkt.passwd = '';
				Network.sendPacket(pkt);
				
				/* Prepare the chat room UI */
				ChatRoom.type  = 1; //public
				ChatRoom.title = this.room.title;
				ChatRoom.limit = this.room.limit;
				ChatRoom.count = this.room.count;
				break;

			case Room.Type.PRIVATE_CHAT:
				pkt = new PACKET.CZ.REQ_ENTER_ROOM();
				pkt.roomID = this.room.id;

				InputBox.append();
				InputBox.setType('pass', false);
				var self = this;
				InputBox.onSubmitRequest = function( pass ) {
					InputBox.remove();
					pkt.passwd = pass;
					Network.sendPacket(pkt);
					
					/* Prepare the chat room UI */
					ChatRoom.type  = 0; //private
					ChatRoom.title = self.room.title;
					ChatRoom.limit = self.room.limit;
					ChatRoom.count = self.room.count;
				};
				return;
		}
	}
Example #3
0
	Inventory.onUseCard = function onUseCard(index)
	{
		_cardComposition = index;
		var pkt          = new PACKET.CZ.REQ_ITEMCOMPOSITION_LIST();
		pkt.cardIndex    = index;
		Network.sendPacket(pkt);
	};
Example #4
0
	SkillWindow.onIncreaseSkill = function onIncreaseSkill( SKID )
	{
		var pkt  = new PACKET.CZ.UPGRADE_SKILLLEVEL();
		pkt.SKID = SKID;

		Network.sendPacket(pkt);
	};
Example #5
0
	/**
	 * Moving function
	 */
	function walkIntervalProcess()
	{
		// setTimeout isn't accurate, so reduce the value
		// to avoid possible errors.
		if (_walkLastTick + 450 > Renderer.tick) {
			return;
		}

		var isWalkable   = (Mouse.world.x > -1 && Mouse.world.y > -1);
		var isCurrentPos = (Math.round(Session.Entity.position[0]) === Mouse.world.x &&
		                    Math.round(Session.Entity.position[1]) === Mouse.world.y);

		if (isWalkable && !isCurrentPos) {
			var pkt = new PACKET.CZ.REQUEST_MOVE();

			if (!checkFreeCell(Mouse.world.x, Mouse.world.y, 1, pkt.dest)) {
				pkt.dest[0] = Mouse.world.x;
				pkt.dest[1] = Mouse.world.y;
			}

			Network.sendPacket(pkt);
		}

		Events.clearTimeout(_walkTimer);
		_walkTimer    =  Events.setTimeout( walkIntervalProcess, 500);
		_walkLastTick = +Renderer.tick;
	}
Example #6
0
		ItemSelection.onIndexSelected = function(index) {
			if (index > -1) {
				var pkt   = new PACKET.CZ.SELECT_PETEGG();
				pkt.index = index;
				Network.sendPacket(pkt);
			}
		};
Example #7
0
	/**
	 * Equip item
	 *
	 * @param {number} item's index
	 * @param {number} where to equip
	 */
	function onEquipItem( index, location )
	{
		var pkt          = new PACKET.CZ.REQ_WEAR_EQUIP();
		pkt.index        = index;
		pkt.wearLocation = location;
		Network.sendPacket(pkt);
	}
Example #8
0
	MapEngine.onUseItem = function( index )
	{
		var pkt   = new PACKET.CZ.USE_ITEM();
		pkt.index = index;
		pkt.AID   = MapEngine.entity.GID;
		Network.sendPacket(pkt);
	};
Example #9
0
	/**
	 * Update config
	 *
	 * @param {number} config id (only type:0 is supported - equip)
	 * @param {number} val
	 */
	function onConfigUpdate( type, val )
	{
		var pkt    = new PACKET.CZ.CONFIG();
		pkt.Config = type;
		pkt.Value  = val;
		Network.sendPacket(pkt);
	}
Example #10
0
	/**
	 * User want to create a character, send data to server
	 *
	 * @param {string} name
	 * @param {number} Str - strength stat
	 * @param {number} Agi - agility stat
	 * @param {number} Vit - vitality stat
	 * @param {number} Int - intelligence stat
	 * @param {number} Dex - dexterity stat
	 * @param {number} Luk - luck stat
	 * @param {number} hair - hair style
	 * @param {number} color - hair color
	 */
	function onCharCreationRequest( name, Str, Agi, Vit, Int, Dex, Luk, hair, color )
	{
		var pkt;

		// Old Packet required stats
		if (PACKETVER.value < 20120307) {
			pkt = new PACKET.CH.MAKE_CHAR();
			pkt.Str  = Str;
			pkt.Agi  = Agi;
			pkt.Vit  = Vit;
			pkt.Int  = Int;
			pkt.Dex  = Dex;
			pkt.Luk  = Luk;
		}
		else {
			pkt = new PACKET.CH.MAKE_CHAR2();
		}

		pkt.name    = name;
		pkt.head    = hair;
		pkt.headPal = color;
		pkt.CharNum = _creationSlot;

		Network.sendPacket(pkt);
	}
Example #11
0
		Network.connect( Network.utils.longToIP( ip ), port, function onconnect( success ) {

			// Force reloading map
			MapRenderer.currentMap = '';

			// Fail to connect...
			if (!success) {
				UIManager.showErrorBox( DB.getMessage(1) );
				return;
			}

			// Success, try to login.
			var pkt        = new PACKET.CZ.ENTER();
			pkt.AID        = Session.AID;
			pkt.GID        = Session.GID;
			pkt.AuthCode   = Session.AuthCode;
			pkt.clientTime = Date.now();
			pkt.Sex        = Session.Sex;
			Network.sendPacket(pkt);

			// Server send back AID
			Network.read(function(fp){
				// if PACKETVER < 20070521, client send GID...
				if (fp.length === 4) {
					Session.Character.GID = fp.readLong();
				}
			});

			// Ping
			var ping = new PACKET.CZ.REQUEST_TIME();
			Network.setPing(function(){
				ping.time = Date.now();
				Network.sendPacket(ping);
			});
		}, true);
Example #12
0
	Trade.reqExchange = function requestExhange( GID, name ) {
		var pkt = new PACKET.CZ.REQ_EXCHANGE_ITEM();
		pkt.AID = GID;
		Network.sendPacket(pkt);

		Trade.title = name;
	};
Example #13
0
	/**
	 * If the character moved to attack, once it finished to move ask to attack
	 */
	function onWalkEnd()
	{
		// No action to do ?
		if (!Session.moveTarget) {
			return;
		}

		var pkt, entity = Session.moveTarget;

		Session.moveTarget = null;

		// Not in scene anymore.
		if (!EntityManager.get(entity.GID)) {
			return;
		}

		switch (entity.objecttype) {
			case Entity.TYPE_MOB:
			case Entity.TYPE_PC:
				entity.onFocus();
				break;

			case Entity.TYPE_ITEM:
				pkt       = new PACKET.CZ.ITEM_PICKUP();
				pkt.ITAID = entity.GID;
				Network.sendPacket(pkt);
				break;
		}
	}
Example #14
0
	/**
	 * Use an item
	 *
	 * @param {number} item's index
	 */
	function onUseItem( index )
	{
		var pkt   = new PACKET.CZ.USE_ITEM();
		pkt.index = index;
		pkt.AID   = Session.Entity.GID;
		Network.sendPacket(pkt);
	}
Example #15
0
					one('click',function(){
						WinDeal.remove();
						var _pkt  = new PACKET.CZ.ACK_SELECT_DEALTYPE();
						_pkt.type = 1;
						_pkt.NAID = NAID;
						Network.sendPacket(_pkt);
					}).
Example #16
0
	/**
	 * Ask server to update status
	 *
	 * @param {number} id
	 * @param {number} amount
	 */
	function onRequestStatUpdate(id, amount)
	{
		var pkt          = new PACKET.CZ.STATUS_CHANGE();
		pkt.statusID     = id;
		pkt.changeAmount = amount;

		Network.sendPacket(pkt);
	}
Example #17
0
	NpcBox.onClosePressed = function onClosePressed( NAID )
	{
		var pkt  = new PACKET.CZ.CLOSE_DIALOG();
		pkt.NAID = NAID;
		Network.sendPacket( pkt );

		NpcBox.remove();
	};
Example #18
0
	Trade.reqAddItem = function reqAddItem( index, count )
	{
		var pkt   = new PACKET.CZ.ADD_EXCHANGE_ITEM();
		pkt.index = index;
		pkt.count = count;

		Network.sendPacket(pkt);
	};
Example #19
0
	ChatRoom.requestExpelMember = function requestExpelMember()
	{
		var pkt   = new PACKET.CZ.REQ_EXPEL_MEMBER();
		/*
			this.name       = '';
		*/
		Network.sendPacket( pkt );
	};
Example #20
0
	PetInformations.reqBackToEgg = function reqBackToEgg()
	{
		var pkt  = new PACKET.CZ.COMMAND_PET();
		pkt.cSub = 3;
		Network.sendPacket(pkt);

		PetInformations.remove();
	};
Example #21
0
	SkillWindow.onUseSkill = SkillTargetSelection.onUseSkillToId  = function onUseSkill( id, level, targetID)
	{
		var pkt = new PACKET.CZ.USE_SKILL();
		pkt.SKID          = id;
		pkt.selectedLevel = level;
		pkt.targetID      = targetID || Session.Entity.GID;

		Network.sendPacket(pkt);
	};
Example #22
0
	GroupEngine.onRequestLeave = function onRequestPartyLeave()
	{
		if (!Session.hasParty) {
			return;
		}

		var pkt = new PACKET.CZ.REQ_LEAVE_GROUP();
		Network.sendPacket(pkt);
	};
Example #23
0
	ChatRoom.requestRoleChange = function requestRoleChange()
	{
		var pkt   = new PACKET.CZ.REQ_ROLE_CHANGE();
		/*
			this.role       = 0;
			this.name       = '';
		*/
		Network.sendPacket(pkt);
	};
Example #24
0
			InputBox.onSubmitRequest = function(shopname) {
				InputBox.remove();
				pkt.storeName = shopname;
				if(shopname)
				{
					this._shopname = shopname;
					Network.sendPacket(pkt);
				}
			};
Example #25
0
	/**
	 * Drop item to the floor
	 *
	 * @param {number} index in inventory
	 * @param {number} count to drop
	 */
	function onDropItem( index, count )
	{
		if (count) {
			var pkt   = new PACKET.CZ.ITEM_THROW();
			pkt.Index = index;
			pkt.count = count;
			Network.sendPacket(pkt);
		}
	}
Example #26
0
			jQuery(window).on('keydown.map', function( event ){
				if (event.which === KEYS.INSERT) {
					var pkt = new PACKET.CZ.REQUEST_ACT();
					pkt.action = Session.Entity.action === Session.Entity.ACTION.SIT ? 3 : 2;
					Network.sendPacket(pkt);
					event.stopImmediatePropagation();
					return false;
				}
			});
Example #27
0
	ChatRoomCreate.requestRoom = function requestRoom()
	{
		var pkt    = new PACKET.CZ.CREATE_CHATROOM();
		pkt.size   = this.limit;
		pkt.type   = this.type;
		pkt.passwd = this.password;
		pkt.title  = this.title;
		Network.sendPacket( pkt );
	};
Example #28
0
	ShortCut.onChange = function onChange( index, isSkill, ID, count )
	{
		var pkt                 = new PACKET.CZ.SHORTCUT_KEY_CHANGE();
		pkt.Index               = index;
		pkt.ShortCutKey.isSkill = isSkill ? 1 : 0;
		pkt.ShortCutKey.ID      = ID;
		pkt.ShortCutKey.count   = count;

		Network.sendPacket(pkt);
	};
Example #29
0
	SkillTargetSelection.onUseSkillToPos = function onUseSkillToPos(id, level, x, y)
	{
		var pkt = new PACKET.CZ.USE_SKILL_TOGROUND();
		pkt.SKID          = id;
		pkt.selectedLevel = level;
		pkt.xPos          = x;
		pkt.yPos          = y;

		Network.sendPacket(pkt);
	};
Example #30
0
		ItemSelection.onIndexSelected = function(index) {
			if (index >= 0) {
				var pkt        = new PACKET.CZ.REQ_ITEMCOMPOSITION();
				pkt.cardIndex  = _cardComposition;
				pkt.equipIndex = index;
				Network.sendPacket(pkt);
			}

			_cardComposition = null;
		};