Item Charger - Fehler

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Item Charger - Fehler

      Hallo
      Hab ein problem bei nem item combo trigger.
      Hab gerade mit JASS begonnen und bin nicht so gut darin...
      hab aber einen trigger nachgebaut der so aussieht

      Quellcode

      1. function Trig_Combine_Items_Conditions takes nothing returns boolean
      2. if ( not ( GetItemCharges(GetManipulatedItem()) > 0 ) ) then
      3. return false
      4. endif
      5. if ( not ( udg_Combine_Charged_Items == true ) ) then
      6. return false
      7. endif
      8. return true
      9. endfunction
      10. function Trig_Combine_Items_Actions takes nothing returns nothing
      11. local integer ITEMCOUNT
      12. local integer ITEMLOOP
      13. local integer CHARGES
      14. local integer MAXIMUM
      15. local item NEWITEM
      16. local unit OURUNIT
      17. set MAXIMUM = udg_Combine_Charges_Max
      18. set ITEMCOUNT = 0
      19. set ITEMLOOP = 0
      20. set CHARGES = 0
      21. set NEWITEM = GetManipulatedItem()
      22. set OURUNIT = GetManipulatingUnit()
      23. loop
      24. exitwhen ITEMLOOP > 6
      25. if ((GetItemTypeId(NEWITEM)) == (GetItemTypeId(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)))) then
      26. if ((GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) + GetItemCharges(NEWITEM)) <= MAXIMUM) then
      27. if not ( (UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) == (NEWITEM)) then
      28. set CHARGES = (GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP))) + GetItemCharges(NEWITEM)
      29. call SetItemCharges( UnitItemInSlotBJ(OURUNIT, ITEMLOOP), CHARGES )
      30. call RemoveItem( NEWITEM )
      31. set ITEMLOOP=7
      32. endif
      33. endif
      34. endif
      35. if ( ITEMLOOP < 7 ) then
      36. set ITEMLOOP = ITEMLOOP + 1
      37. endif
      38. endloop
      39. endfunction
      40. //===========================================================================
      41. function InitTrig_Combine_Charged_Items takes nothing returns nothing
      42. set gg_trg_Combine_Charged_Items = CreateTrigger( )
      43. call TriggerRegisterAnyUnitEventBJ( gg_trg_Combine_Charged_Items, EVENT_PLAYER_UNIT_PICKUP_ITEM )
      44. call TriggerAddCondition( gg_trg_Combine_Charged_Items, Condition( function Trig_Combine_Items_Conditions ) )
      45. call TriggerAddAction( gg_trg_Combine_Charged_Items, function Trig_Combine_Items_Actions )
      46. endfunction
      Alles anzeigen

      Jetzt hab ich das problem das er keine items zusammentut -.-
      Er soll Charges nachfülln tut er aber nicht ^^

      mfg


      the king of iron fist tournament
      IS
    • Hmm, also ich hab deinen Trigger jetzt einfach mal per copy 'n' paste getestet und er funktioniert eigentlich wunderbar. Der Code ist zwar eine Katastrophe, aber am Anfang sahen meine noch schrecklicher aus :)

      Ich denke, dein code funktioniert nicht, weil deine globalen Variablen (Combine_Charges_Max und Combine_Charged_Item) nicht richtig initialisiert sind.

      Quellcode

      1. Combine_Charged_Item == true
      2. Combine_Charges_Max >= 2


      Diese beiden Bedingungen müssen erfüllt sein, wenn der ganze Spaß funktionieren soll. Also beide Variablen erstmal den richtigen Wert zuordnen.

      Das Wort "Würde" kennen manche Menschen nur noch als Konjunktiv II in dem Satz: "Für Geld würde ich alles machen."