Desarrollo del juego

View previous topic View next topic Go down

Desarrollo del juego

Post  Amn on Sun Oct 30, 2016 9:58 pm

Progreso del juego y cambios hechos o por hacer.

10.30.2016

Fairy vessel (En proceso)
-A las 15 cargas aparece el Hada y el item sigue funcionando normalmente, solo que no puede volver a sacar otra hada. Maximo 99 cargas. (limitado por engine)
-Si el heroe muere, el hada queda en base esperandolo.
-Limite de 1 hada por jugador.
-El item con cargas puede transferirse a otro heroe libremente.
-El daño que resulto del uso del item en un enemigo se mostrara emergente en color.

Respawn de heroes (Completo)
-El tiempo de respawn sera mas bajo.
Code:
local real reviveTime = 10 + (4 * GetHeroLevel( whichHero )) + modifier
Nuevo:
Code:
local real reviveTime = 4 * GetHeroLevel( whichHero ) + modifier
Basicamente, Lvl1->4seg, Lvl2> 8seg, Lvl3>12seg, Lvl4>16, Lvl5>20, Lvl6>24.
La variable modifier es por si en algun futuro algun heroe necesita modificar este tiempo de resurrecion por x motivo.
-Habra un indicador de tiempo en la fuente ademas del normal en la tabla.
-O el heroe parado, parcialmente visible e invulnerable, esperando a revivir para poder moverse.

Dioses neutrales (Completo)
- Se removio uno de los dioses para dar lugar a un cuadrilatero abajo a la derecha, producto de un ultimate de uno o varios heroes.

Shop Omega (Completo)
-Se incluyo un shop nuevo para items de nivel alto llamado Omega.
-Items en proceso. (En proceso)

Fuente (En proceso)
-Se cercara la fuente con columnas estilo santuario.

Nuevo items (En proceso)
-Se estan agregando nuevos items en los slots sobrantes.
avatar
Amn
Patriarca

Mensajes : 94
Fecha de inscripción : 2011-12-02

Back to top Go down

Re: Desarrollo del juego

Post  Amn on Sun Oct 30, 2016 10:26 pm

Columnas en la fuente.
Asi decias Ryan?
(No presten atencion a los detalle raros como el cubo verde o los shop superpuestos, al inicio del partido se acomodan por codigo)
http://i64.tinypic.com/2wgu1hs.jpg
avatar
Amn
Patriarca

Mensajes : 94
Fecha de inscripción : 2011-12-02

Back to top Go down

Re: Desarrollo del juego

Post  Amn on Tue Nov 01, 2016 2:59 pm

Cooldowns en la descripcion (Completo)
-Se agregaran los cooldowns en la descripcion de las habilidades, en primer instancia los agrego a los ultimates, que es donde mas importa. Luego veremos los demas skills, porque son muchisimos y hay que escribirlos a mano uno por uno y con color segun el nivel.
avatar
Amn
Patriarca

Mensajes : 94
Fecha de inscripción : 2011-12-02

Back to top Go down

Re: Desarrollo del juego

Post  [SS]-[Ryan] on Wed Nov 09, 2016 1:47 pm

dami si esas columnas para separar el respawn de el resto de la base tipo coliseo romano
avatar
[SS]-[Ryan]
Patriarca

Mensajes : 389
Fecha de inscripción : 2011-03-19
Edad : 33
Localización : Atras tuyo siempre

http://saintseiyalegends.latin-foro.com

Back to top Go down

Re: Desarrollo del juego

Post  Amn on Sat Nov 12, 2016 5:11 pm

Item: Fairy Vessel

Este es el codigo completo del item fairy vessel (hada) por si quieren chusmear que tan complejo es.
Comportamiento, cargas, condiciones, funciones, etc.


Trigger: Item Fairy Vessel:

function Trig_Item_Fairy_Vessel_Conditions takes nothing returns boolean
   return ( GetSpellAbilityId() == 'A04X' )
endfunction

function FairyDistance takes nothing returns nothing
local trigger tr = GetTriggeringTrigger()
local integer hid = GetHandleIdBJ( tr )
local unit fairy = LoadUnitHandleBJ( 0, hid, htab )
local player p = GetOwningPlayer( fairy )
local player pp = null
local integer playerId = GetPlayerId( p )
local unit owner = heroes[playerId]

local real distance = 0
local real x = 0
local real y = 0
local real ownerX = 0
local real ownerY = 0

   //if dead or unit not found, stop trigg    
   if ( fairy == null ) or ( GetUnitState( fairy, UNIT_STATE_LIFE ) <= 0 ) then
       call DisableTrigger( tr )
       call DestroyTrigger( tr )
       call FlushChildHashtableBJ( hid, htab )
   endif
   
   //refresh speed, same as his owner
   call SetUnitMoveSpeed( fairy, GetUnitMoveSpeed( owner ) )
   
   //if too far blink, else walk
   set x = GetUnitX( fairy )
   set y = GetUnitY( fairy )
   
   //if owner is dead, he's at his base
   if ( GetUnitState( owner, UNIT_STATE_LIFE ) <= 0 ) then
   
       //if enemy of player12, he belongs to base1
       set pp = Player(11)
       if (IsUnitEnemy( owner, pp ) == true ) then
           set ownerX = base1x
           set ownerY = base1y
       else
           set ownerX = base2x
           set ownerY = base2y
       endif
   
   else    //owner is alive
       set ownerX = GetUnitX( owner )
       set ownerY = GetUnitY( owner )
   endif
   
   set distance = DistanceXY( x, y, ownerX, ownerY )
   
   if ( distance > 500 ) then
       //effect
       
       //call Effects.EffectOnUnit ( effectPath, who, duration )
       call Effects.EffectOnUnit ( "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", fairy, 2 )
       call Effects.EffectOnXY ( "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", x, y, 2 )

       //move
       call SetUnitX( fairy, ownerX )
       call SetUnitY( fairy, ownerY )
       
   endif
   
//keep following owner
if not( GetUnitState( owner, UNIT_STATE_LIFE ) <= 0 ) then
call IssueTargetOrder( fairy, "smart", owner )
endif
   

set fairy = null
set p = null
set pp = null
set owner = null
set tr = null

endfunction


function FairyDeath takes nothing returns nothing

local trigger tr = GetTriggeringTrigger()
local unit fairy = GetTriggerUnit()
local player p = GetOwningPlayer( fairy )

local integer hid = GetHandleIdBJ( p )
local integer fairyHid = GetHandleIdBJ( fairy )

local trigger trIP = LoadTriggerHandleBJ( 16, fairyHid, htab ) //trIP = trigger Ignore Player orders

   call SaveIntegerBJ( 0, 16, hid, htab ) //can spawn a fairy now
   
   //discard triggs
   
   //ignore player orders trigger
   call DisableTrigger( trIP )
   call DestroyTrigger( trIP )
   call FlushChildHashtableBJ( fairyHid, htab )
   
   //this tr
   call DisableTrigger( tr )
   call DestroyTrigger( tr )
       
       
set fairy = null
set p = null
set trIP = null
set tr = null

endfunction


function FairyIgnorePlayerConditions takes nothing returns boolean
   return ( IsUnitSelected( GetTriggerUnit(), GetTriggerPlayer() ) == true )
endfunction

function FairyIgnorePlayer takes nothing returns nothing

local trigger tr = GetTriggeringTrigger()
local unit fairy = GetTriggerUnit()
local player p = GetOwningPlayer( fairy )
local integer playerId = GetPlayerId( p )
local unit owner = heroes[playerId]

   if ( GetLocalPlayer() == p ) then
       call ClearSelection()
       //call SelectUnit( fairy, false )
   endif
   
   call DisableTrigger( tr )
   call IssueTargetOrder( fairy, "smart", owner )
   call EnableTrigger( tr )
   
set fairy = null
set p = null
set owner = null
set tr = null

endfunction



function FairyMpHpHeal takes nothing returns nothing

local trigger tr = GetTriggeringTrigger()
local integer hid = GetHandleIdBJ( tr )
local unit fairy = LoadUnitHandleBJ( 0, hid, htab )

local boolean fairyDead = ( GetUnitState( fairy, UNIT_STATE_LIFE) <= 0 )



   //if fairy is not dead, casts heal hp/mp
   if not( fairyDead ) then
       //call Spell.SpellAtPointNoTarget ( caster, x, y, whatAbility, abl, order )
       call Effects.EffectOnUnit ( "Abilities\\Spells\\Undead\\ReplenishHealth\\ReplenishHealthCasterOverhead.mdl", fairy, 2 )
       call Effects.EffectOnUnit ( "Abilities\\Spells\\Undead\\ReplenishMana\\SpiritTouchTarget.mdl", fairy, 2 )
       call Spell.SpellAtPointNoTarget ( fairy, GetUnitX(fairy), GetUnitY(fairy), 'A050', 1, "replenishlife" )
       call Spell.SpellAtPointNoTarget ( fairy, GetUnitX(fairy), GetUnitY(fairy), 'A04Z', 1, "replenishmana" )
   endif

   //if fairy is dead or not found then
   if ( fairy == null ) or ( fairyDead ) then
       call FlushChildHashtableBJ( hid, htab )
       call DisableTrigger( tr )
       call DestroyTrigger( tr )
   endif

set tr = null
set fairy = null

endfunction


function FairyAddBehaviour takes unit fairy returns nothing

local player p = GetOwningPlayer( fairy )
local trigger tr = null
local integer hid = 0

   //detect death
   set tr = CreateTrigger()
   call TriggerAddAction( tr, function FairyDeath )
   call TriggerRegisterUnitEvent( tr, fairy, EVENT_UNIT_DEATH )
   
   //follow player's hero
   set tr = CreateTrigger()
   set hid = GetHandleIdBJ( tr )
   call SaveUnitHandleBJ( fairy, 0, hid, htab )
   call TriggerAddAction( tr, function FairyDistance )
   call TriggerRegisterTimerEvent( tr, 7, true )

   
   //HP/MP heal
   set tr = CreateTrigger()
   set hid = GetHandleIdBJ( tr )
   call SaveUnitHandleBJ( fairy, 0, hid, htab )
   call TriggerAddAction( tr, function FairyMpHpHeal )
   call TriggerRegisterTimerEvent( tr, 15, true )
   
   
   //ignore player orders
   set tr = CreateTrigger()
   set hid = GetHandleIdBJ( fairy )
   call SaveTriggerHandleBJ( tr, 16, hid, htab )
   call TriggerAddAction( tr, function FairyIgnorePlayer )
   call TriggerAddCondition( tr, Condition ( function FairyIgnorePlayerConditions ) )
   call TriggerRegisterUnitEvent( tr, fairy, EVENT_UNIT_ISSUED_TARGET_ORDER )
   call TriggerRegisterUnitEvent( tr, fairy, EVENT_UNIT_ISSUED_POINT_ORDER )
   call TriggerRegisterUnitEvent( tr, fairy, EVENT_UNIT_ISSUED_ORDER )
   
   
   
set p = null
set tr = null
set fairy = null

endfunction

function FairyItemCharm takes unit caster, unit target, item vesselItem returns nothing

local player p = GetOwningPlayer( caster )
local real damage = 25 + GetHeroInt( caster, true )
local integer charges = GetItemCharges( vesselItem )
local integer hid = GetHandleIdBJ(p)
local integer fairiesCount = LoadIntegerBJ( 16, hid, htab )
local real x = GetUnitX( caster )
local real y = GetUnitY( caster )
local unit fairy = null

//call say("current charges = " + I2S(charges))

   //for allies
   if ( IsUnitAlly( target, p ) == true ) then
       //call Spell.SpellTargetById ( unit.caster, unit.target, int.whatAbility, int.orderId, int.abilityLevel )
       call Spell.SpellTargetById ( caster, target, 'A051', 852609, 1 )
   endif    
   
   //for enemies
   if ( IsUnitAlly( target, p ) == false ) then
       set charges = charges + 1 //it's trying to gain a charge
       call SetItemCharges( vesselItem, charges )
       
       call Damage.DamageTarget ( caster, target, damage, 3 ) //damage target
       
       if ( GetUnitState( target, UNIT_STATE_LIFE) <= 0 ) then //if died, gain a charge
           if ( charges != 16 ) then //not more than 15
               set charges = charges + 1
               call SetItemCharges( vesselItem, charges )
           endif
       endif
   endif
   
   //fairy guardian
   if ( charges == 16 ) then   //fairy spawn reached
   
       //check if already has fairy
       if ( fairiesCount == 0 ) then
           
           //create fairy
           
           //effect
           //call Effects.EffectByIdSpecAnim ( effectId, whereX, whereY, facing, size, animSpeed, anim, duration )
           call Effects.EffectByIdSpecAnim ( 'o001', x, y, 0, 2, 0.5, "death", 5 )
           
           //create
           set fairy = CreateUnit( p, 'n008', x, y, 0 )
           call IssueTargetOrder( fairy, "smart", caster )
           
           //add behaviour
           call FairyAddBehaviour( fairy )
       
           //save limit
           call SaveIntegerBJ( 1, 16, hid, htab )
           
           //remove item
           call RemoveItem( vesselItem )
           
       endif
   endif
   
   //never less than 1 charges
   set charges = GetItemCharges( vesselItem )
   if ( charges == 1 ) then
       call SetItemCharges( vesselItem, 2 )
       call SetItemPawnable( vesselItem, true )
   else
       call SetItemPawnable( vesselItem, false )   //cant sell if has charges
   endif
   
   
   
set caster = null
set target = null
set p = null
set vesselItem = null
set fairy = null

endfunction

function Trig_Item_Fairy_Vessel_Actions takes nothing returns nothing

local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
local integer vesselId = 'Ifyv'
local integer i = 0
local item vesselItem = null
local integer charges = 0

   loop
   exitwhen ( i == 6 ) //find a fairy vessel item
       set vesselItem = UnitItemInSlot( caster, i )
       if ( GetItemTypeId( vesselItem ) == vesselId ) then
           set charges = GetItemCharges( vesselItem )
           if ( charges < 16 ) then    //if found item has less than 15 charges, use this
               exitwhen true
           endif
       endif
   set i = i + 1
   endloop


   
   if ( i == 6 ) then
       //item not found, ignore
   else
       call FairyItemCharm( caster, target, vesselItem )
   endif
   
set caster = null
set target = null
set vesselItem = null
   
endfunction

//===========================================================================
function InitTrig_Item_Fairy_Vessel takes nothing returns nothing
   set gg_trg_Item_Fairy_Vessel = CreateTrigger(  )
   call TriggerRegisterAnyUnitEventBJ( gg_trg_Item_Fairy_Vessel, EVENT_PLAYER_UNIT_SPELL_EFFECT )
   call TriggerAddCondition( gg_trg_Item_Fairy_Vessel, Condition( function Trig_Item_Fairy_Vessel_Conditions ) )
   call TriggerAddAction( gg_trg_Item_Fairy_Vessel, function Trig_Item_Fairy_Vessel_Actions )
endfunction
avatar
Amn
Patriarca

Mensajes : 94
Fecha de inscripción : 2011-12-02

Back to top Go down

Re: Desarrollo del juego

Post  [SS]-[Ryan] on Sun Nov 13, 2016 3:51 pm

una lampada???
avatar
[SS]-[Ryan]
Patriarca

Mensajes : 389
Fecha de inscripción : 2011-03-19
Edad : 33
Localización : Atras tuyo siempre

http://saintseiyalegends.latin-foro.com

Back to top Go down

Re: Desarrollo del juego

Post  Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum