Posté le: 24/08/08 13:43 Sujet du message: Accumuler un objet ( potion )
Salut a tous j'ai utilisé l'outil recherche de ce site pour trouver des informations a propos de cette technique et j'ai decouvert qu'il faait utiliser un trigger voici le mien :
Gui:
Trigger:
Déclencheur sans titre 002 Copier
Evénements
Unité - A unit Acquiert un objet
Conditions
((Triggering unit) has an item of type Potion de soins) Egal à TRUE
Actions
Objet - Remove (Picked item) Objet - Set charges remaining in (Item carried by (Triggering unit) of type Potion de soins) to ((Charges remaining in (Item carried by (Triggering unit) of type Potion de soins)) + 5)
mais je pense que Remove picked item ne repond pas a l'evenement en effet je gagne bien 5 potion supplementaire mais je gagne en plus une nouvelle potion
Quelqu'un peut me dire comment corriger ? _________________
((Triggering unit) has an item of type Potion de soins) Egal à TRUE
Actions
Objet - Remove (Item being manipulated) Objet - Set charges remaining in (Item carried by (Triggering unit) of type Potion de soins) to ((Charges remaining in (Item carried by (Triggering unit) of type Potion de soins)) + 5)
En tout cas des l'achat mon objet disparait donc pas d'accumulation _________________
((Item carried by (Triggering unit) of type Potion de soins) is owned) Egal à TRUE
Actions
Objet - Remove (Item being manipulated) Objet - Set charges remaining in (Item carried by (Triggering unit) of type Potion de soins) to ((Charges remaining in (Item carried by (Triggering unit) of type Potion de soins)) + 5)
function Trig_Charges_Conditions takes nothing returns boolean
if ( not ( GetItemCharges(GetManipulatedItem()) > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Charges_Actions takes nothing returns nothing
local integer x
local item i = GetManipulatedItem()
local item i2
local integer c
local integer c2
local unit u = GetTriggerUnit()
local boolean b = false
set x = 1
loop
exitwhen x > 6
if (GetItemTypeId(UnitItemInSlotBJ(u, x)) == GetItemTypeId(i)) then
if (b) then
set i = UnitItemInSlotBJ(u, x)
set c = GetItemCharges(i)
set c2 = GetItemCharges(i2)
call SetItemCharges( i2, ( c + c2 ) )
call RemoveItem( i )
else
set b = true
set i2 = UnitItemInSlotBJ(u, x)
endif
else
call DoNothing( )
endif
set x = x + 1
endloop
endfunction
//===========================================================================
function InitTrig_Charges takes nothing returns nothing
set gg_trg_Charges = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Charges, EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_Charges, Condition( function Trig_Charges_Conditions ) )
call TriggerAddAction( gg_trg_Charges, function Trig_Charges_Actions )
endfunction
jass j'y connais rien ! ( je vous vois venir avec vos grandes dents a me repliquer as tu essayé ? ) Bon je vais tenter de l'integrer dans ma map merci _________________
Inscrit le: 31 Aoû 2007 Messages: 606 Sujets: 12 Spécialité en worldedit: Enchanteur des enchantements.
Posté le: 24/08/08 19:53 Sujet du message:
Gui:
Trigger:
Evénements
Unité - A unit Acquiert un objet
Conditions
(Item-type of (Item being manipulated)) Egal à Potion de soins
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
(Item carried by (Triggering unit) of type Potion de soins) Différent de (Item being manipulated)
Alors - Actions
Objet - Set charges remaining in (Item carried by (Triggering unit) of type Potion de soins) to ((Charges remaining in (Item carried by (Triggering unit) of type Potion de soins)) + (Charges remaining in (Item being manipulated))) Objet - Remove (Item being manipulated)
Sinon - Actions
Perso j'ai toujours fait comme ça pour cumuler des objets, et ça fonctionne. _________________
Page 1 sur 1 La question posée dans ce topic a été résolue !
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum