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.
103 lines
3.6 KiB
103 lines
3.6 KiB
var missileX, missileY, size, type, alignment, bufferSize, result;
|
|
missileX = 0
|
|
missileY = 0
|
|
if ((global.currentweapon == 1 && global.missiles > 0) || (global.currentweapon == 2 && global.smissiles > 0))
|
|
{
|
|
msl = instance_create((x + aspr2x), (y + aspr2y), oMissile)
|
|
msl.sax = global.sax
|
|
msl.direction = argument0
|
|
msl.speed = 6.4
|
|
msl.image_angle = argument0
|
|
sfx_play(sndFireMissile)
|
|
with (msl)
|
|
beam_offset(4, direction)
|
|
if (argument0 == 180)
|
|
{
|
|
msl.x += 4
|
|
if (state != GRIP)
|
|
msl.y -= 1
|
|
}
|
|
if (argument0 == 0)
|
|
msl.x -= 4
|
|
if (argument0 == 90)
|
|
{
|
|
msl.y += 4
|
|
if (facing == LEFT)
|
|
msl.x += 1
|
|
}
|
|
missileX = msl.x
|
|
missileY = msl.y
|
|
msl.smissile = global.currentweapon == 2
|
|
if (global.currentweapon == 1)
|
|
{
|
|
global.missiles -= 1
|
|
msl.sprite_index = sMissile
|
|
msl.alarm[0] = 1
|
|
msl.damage = 20
|
|
nofire = 10
|
|
}
|
|
if (global.currentweapon == 2)
|
|
{
|
|
global.smissiles -= 1
|
|
msl.sprite_index = sSMissile
|
|
msl.alarm[0] = 1
|
|
msl.damage = 100
|
|
PlaySoundMono(sndFlyby)
|
|
nofire = 20
|
|
}
|
|
if (global.icemissiles && global.currentweapon == 1)
|
|
msl.sprite_index = sIceMissile
|
|
with (msl)
|
|
{
|
|
trail = instance_create(x, y, oMissileTrail)
|
|
trail.direction = direction
|
|
trail.smissile = smissile
|
|
trail.fadein_speed = 0.04
|
|
if (global.currentweapon == 2)
|
|
{
|
|
trail.sprite_index = sSMissileTrail1
|
|
trail.fadein_speed = 0.1
|
|
}
|
|
}
|
|
}
|
|
if (instance_exists(oClient) && instance_exists(oCharacter) && missileX != 0 && missileY != 0)
|
|
{
|
|
if (ds_list_size(oClient.roomListData) > 0)
|
|
{
|
|
size = 1024
|
|
type = buffer_grow
|
|
alignment = 1
|
|
missileBuffer = buffer_create(size, type, alignment)
|
|
buffer_seek(missileBuffer, buffer_seek_start, 0)
|
|
buffer_write(missileBuffer, buffer_u8, 23)
|
|
buffer_write(missileBuffer, buffer_u8, global.clientID)
|
|
buffer_write(missileBuffer, buffer_u8, global.currentweapon)
|
|
buffer_write(missileBuffer, buffer_s16, argument0)
|
|
buffer_write(missileBuffer, buffer_s16, missileX)
|
|
buffer_write(missileBuffer, buffer_s16, missileY)
|
|
buffer_write(missileBuffer, buffer_u8, global.sax)
|
|
buffer_write(missileBuffer, buffer_s8, oCharacter.xVel)
|
|
buffer_write(missileBuffer, buffer_s8, oCharacter.yVel)
|
|
buffer_write(missileBuffer, buffer_u8, global.icemissiles)
|
|
bufferSize = buffer_tell(missileBuffer)
|
|
buffer_seek(missileBuffer, buffer_seek_start, 0)
|
|
buffer_write(missileBuffer, buffer_s32, bufferSize)
|
|
buffer_write(missileBuffer, buffer_u8, 23)
|
|
buffer_write(missileBuffer, buffer_u8, global.clientID)
|
|
buffer_write(missileBuffer, buffer_u8, global.currentweapon)
|
|
buffer_write(missileBuffer, buffer_s16, argument0)
|
|
buffer_write(missileBuffer, buffer_s16, missileX)
|
|
buffer_write(missileBuffer, buffer_s16, missileY)
|
|
buffer_write(missileBuffer, buffer_u8, global.sax)
|
|
buffer_write(missileBuffer, buffer_s8, oCharacter.xVel)
|
|
buffer_write(missileBuffer, buffer_s8, oCharacter.yVel)
|
|
buffer_write(missileBuffer, buffer_u8, global.icemissiles)
|
|
result = network_send_packet(oClient.socket, missileBuffer, buffer_tell(missileBuffer))
|
|
buffer_delete(missileBuffer)
|
|
}
|
|
}
|
|
if (global.currentweapon == 2 && global.smissiles == 0)
|
|
global.currentweapon = 1
|
|
if (global.currentweapon == 1 && global.missiles == 0)
|
|
global.currentweapon = 0
|