Buff Generator atualizado pra 1.4b. Apenas poucas mudanças no codigo. E o BGType foi para a versão 1.01, agora ele tambem expecifica o buff por magico (magical) ou fisico (physical).
Abraços
Abraços
Leia Mais...
Events
Unit - A unit Acquires an item
Conditions
Or - Any (Conditions) are true
Conditions
(Item-type of (Item being manipulated)) Equal to Item 1
(Item-type of (Item being manipulated)) Equal to Item 2
ActionsEfeitos:
-------- Primeiro confira se a unidade tem os itens que precisa --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Triggering unit) has an item of type Item 1) Equal to True
((Triggering unit) has an item of type Item 2) Equal to True
Then - Actions
-------- Se ela tiver, remova os itens de requerimento --------
Item - Remove (Item carried by (Triggering unit) of type Item 1)
Item - Remove (Item carried by (Triggering unit) of type Item 2)
-------- Adicione o item novo --------
Hero - Create Item 3 and give it to (Triggering unit)
Else - Actions
-------- Cria um efeito na unidade --------
Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Items\AIam\AIamTarget.mdl
-------- Destrua o efeito, para não causar lag --------
Special Effect - Destroy (Last created special effect)
Trigger ProntaEspero do fundo do coração que você tenha entendido tudinho. Caso não tenha encontrado alguma ação ou condição, poste que eu te ajudo.
Events
Unit - A unit Acquires an item
Conditions
Or - Any (Conditions) are true
Conditions
(Item-type of (Item being manipulated)) Equal to Item 1
(Item-type of (Item being manipulated)) Equal to Item 2
Actions
-------- Primeiro confira se a unidade tem os itens que precisa --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Triggering unit) has an item of type Item 1) Equal to True
((Triggering unit) has an item of type Item 2) Equal to True
Then - Actions
-------- Se ela tiver, remova os itens de requerimento --------
Item - Remove (Item carried by (Triggering unit) of type Item 1)
Item - Remove (Item carried by (Triggering unit) of type Item 2)
-------- Adicione o item novo --------
Hero - Create Item 3 and give it to (Triggering unit)
-------- Cria um efeito especial na unidade (isso é opcional) --------
Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Items\AIam\AIamTarget.mdl
Special Effect - Destroy (Last created special effect)
Else - Actions
Antes de falar sobre bons jogos você deve saber o que um jogo é em primeiro lugar. Há uma quantidade surpreendente de discussões sobre esta questão e há muitas definições diferentes. É mais fácil dizer o que um jogo não é.
Um jogo é uma atividade (vamos dizer assim) em que um ou mais jogadores tomam decisões através do controle de objetos do jogo e de recursos, em busca de um objetivo.
Note que a definição não fala sobre gráficos ou efeitos sonoros (no caso de jogos de computador). Tais aspectos, obviamente, desempenham um papel importante para torna-los jogos atraentes, mas não são os aspectos essenciais dos jogos. Vejamos os ingredientes diferentes da definição em alguns detalhes. Focando sempre nos jogos de video game e computador.
Você já sabe o que é um jogo, pelo menos um de computador. No entanto lá não fala quando um jogo é bom. Tudo citado acima são elementos que um jogo bom de ter, porém faltou dizer que a criatividade e a inovação são igualmente importantes.
Como eu disse, este tutorial deve ter-lhe dado uma idéia das coisas que importam ao tentar criar um bom jogo de computador. Mas no final a melhor maneira de aprender é você fazer um jogo e criticar seus próprios resultados.
Outro conselho é aprender com os erros de outras pessoas. Sempre que você planejar fazer um determinado tipo de jogo, olhe para os jogos similares. Tente jogá-los e ver o que eles fizeram certo e o que eles fizeram de errado. É muito comum ainda ver alguns jogos repitindo os erros de outros jogos.
Essa function adiciona uma quantidade de hp (amount) a unidade desejada (whichUnit). Simples!function UnitAddLife takes unit whichUnit, real amount returns nothing
library AddLife
// Add Life System
// Criado por "Bills"
// Versão: 1.2
//=====================================
// Como implementar:
// Crie uma nova trigger,
// converta ela para custom script,
// salve seu mapa,
// feche-o,
// reabra-o
// e apague o ! da linha abaixo.
//! external ObjectMerger w3a AIlz ALBA anam "Life Bonus" ansf "(Bills's AddLife System)" Ilif 1 500000 aite 0
//=====================================================================
//Caso ja tenha essa native declarada, "comenta" a linha abaixo
native UnitAlive takes unit whichUnit returns boolean
private struct AL extends array // struct array não possui method create/destroy
private static constant integer LIFE_BONUS_ABIL = 'ALBA'
private static unit array tempUnit
private static integer index
private static timer timerFunc
private static method removeLifeBonus takes nothing returns nothing
loop
exitwhen (index==0)
call UnitRemoveAbility(tempUnit[index],LIFE_BONUS_ABIL)
if (UnitAlive(tempUnit[index])) then
call SetWidgetLife(tempUnit[index],GetWidgetLife(tempUnit[index]))
endif
set index=index-1
endloop
endmethod
static method unitAddLife takes unit u, real amount returns nothing
set amount=GetWidgetLife(u)+amount
call SetWidgetLife(u,amount)
if (GetWidgetLife(u)<amount) then
call UnitAddAbility(u,LIFE_BONUS_ABIL)
call SetWidgetLife(u,amount)
set index=index+1
set tempUnit[index]=u
call ResumeTimer(timerFunc)
endif
endmethod
private static method onInit takes nothing returns nothing
set index=0
set timerFunc=CreateTimer()
call TimerStart(timerFunc,0.00,false,function thistype.removeLifeBonus)
endmethod
endstruct
function UnitAddLife takes unit u, real amount returns nothing // por compatibilidade
call AL.unitAddLife(u,amount)
endfunction
endlibraryprivate constant integer BUFF_CHECKER = 'B000'Agora mude o valor da variable USE_BUFF_CHECKER para true.local unit udg_UnitEsse udg_ antes do nome da nossa local refere-se as variables criadas em GUI, em outras palavras, criadas naquela caixinha de variables do Trigger Editor. Toda variable criada lá é global e recebe o prefixo "udg_" no nome dela.
Events
Map Initialization
Conditions
Actions
local unit udg_Unit
Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing 0.00 degrees
Set Unit = (Last created unit)
...
Set Unit = No unitPor rasões ainda desconhecidas, apenas uma "global local variable" de cada tipo funciona por trigger. Ou seja, você não pode usar duas varibles do tipo unit em um mesmo trigger pra fazer uma global local das duas, apenas uma funcionaria.