Dungeons & Dragons 2024 Core Rulebooks Pre-Order
Page 3 of 5 First 12345 Last
  1. #21

    Join Date
    Apr 2010
    Location
    Australia
    Posts
    902
    Quote Originally Posted by Fezzik Buttercup View Post
    Me for an hour and a half: Why isn't it picking up the fact that the spell is a critical failure!
    Me an hour and half later: .... because you're using _melee....
    So you have sorted it out and not getting the error anymore?
    Timezone: Australian EST (GMT +10).
    Systems/Rulesets: GURPS 4th Edition.
    Campaigns (Ultimate License Holder)
    GURPS Traveller - The Empty Peace
    GURPS Shadowrun - Power Plays
    GURPS Banestorm - Dark Clouds Rising

  2. #22
    Sort of; I'm not sure where spells are done just yet, but ranged aren't triggered with the melee either, which makes perfect sense, since it's not melee

    Now I'm just trying to figure out how to do both melee and ranged without them mucking one another up (you can't have two action handlers in the same file I think?).

    I'm having masochistic fun; as long as I get little bits of success once in a while, I'll keep going.
    Anybody want a peanut!

  3. #23
    I have melee and ranged working (I think; seems to be). I like the idea of it doing it from the _melee and _ranged better than observing the chat, but I'm not completely sure I grasped bmos' suggestion -- I'm still basically adding script into those files and duplicating the code; so it'll only work well as long as the GURPS code isn't changed much? I'm not sure how to do it in another way that just uses the base scripts and call the critical -- the rMessage has to be 'given' to the critical and the only way it can do that is from inside, right? Anyway, the basics are below; ranged isn't different at all, and I think _ability will be the same (for Spells). (I think _ability rolls spells? it's in ability type data anyway so that's my guess )



    Code:
     local onMelee_old
    function onInit()
    	--ActionsManager.registerModHandler("melee", modRoll);
    	ActionsManager.registerResultHandler("melee", onMelee_new);
    	onMelee_old = ActionMelee.onMelee
    	ActionMelee.onMelee = onMelee_new
    	
    	--ActionsManager.registerResultHandler("criticals", onRoll)
    	
    --	OptionsManager.registerOption2("criticals", false, "option_header_client", "option_label_CombatAutomation", "option_entry_cycler",
     -- { labels = "HitCriticals|HitLocationOn|CriticalsOn|NoCombatTriggers", values = "HitCriticals|HitLocationOn|CriticalsOn|NoCombatTriggers", baselabel = "NoCombatTriggers", baseval = "NoCombatTriggers", default = "NoCombatTriggers" })
      --
     -- OptionsManager.registerOption2("criticals_Source", false, "option_header_client", "option_label_CombatAutomation_Source", "option_entry_cycler",
     -- { labels = "SubLocationsOn|SubLocationsOff", values = "SubLocationsOn|SubLocationsOff", baselabel = "SubLocationsOff", baseval = "SubLocationsOff", default = "SubLocationsOff" })
    	
    end
    
    function onClose() ActionMelee.onMelee = onMelee_old end
    
    
    function onMelee_new(rSource, rTarget, rRoll)
    
    	--Debug.chat("onMelee_new")
      local rMessage = ActionsManager.createActionMessage(rSource, rRoll);
      local nTotal = ActionsManager2.total(rRoll);
    
      local bAddMod = false;
      if GameSystem.actions[rRoll.sType] then
        bAddMod = GameSystem.actions[rRoll.sType].bAddMod;
      end
    	
      local node = DB.findNode(rRoll.sNode);
      local sWeapon = DB.getValue(node.getParent().getParent(), "name", "");
      local sMode = DB.getValue(node, "name", "");
    
      -- Send the chat message
      local bShowMsg = true;
      if not rSource then
        bShowMsg = false;
      end
      
      if bShowMsg then
        local sTargetDesc =  DB.getValue(node, "name", "");
        local nTarget = DB.getValue(node, "level", 0);
        
        rMessage.text = string.format("%s\n%s%s%s %s(%d):%s",
            (string.format("%s%s",(rTarget and string.format("%s || ",rTarget.sName) or ""), rMessage.text)),
            sWeapon, 
            ((sWeapon and sWeapon ~= '' and sTargetDesc and sTargetDesc ~= '') and "\n" or ""), 
            sTargetDesc, 
            (rRoll.nMod ~= 0 and string.format("(%d%s%d)=", nTarget, (rRoll.nMod > 0 and "+" or ""), rRoll.nMod) or ""),
            nTarget + rRoll.nMod, 
            --rollResult(nTotal, nTarget + rRoll.nMod)
    		Criticals.rollResult(nTotal, nTarget + rRoll.nMod)
        );
        
        rMessage.diemodifier = (bAddMod and rRoll.nMod or 0);
    	
    	
    	
        -- added script for critical check
    	if (TableRolls.criticalsTriggersOn(rMessage.text)) then
    		--Debug.chat("criticals on on melee")
    		local sAllTriggers = CombatOptions.OptionsManager.isOption("criticals","HitCriticals")
    		local sCriticalsOn = CombatOptions.OptionsManager.isOption("criticals","CriticalsOn")
    		local sLocationsOn = CombatOptions.OptionsManager.isOption("criticals","HitLocationOn")
    		local hitLocation
    		local bHeadBlow	
    		if sAllTriggers then
    			sCriticalsOn = true
    			sLocationsOn = true
    		end
    		rMsg = rMessage
    		local sText = rMessage.text
    		--Debug.chat(sText)
    		if TableRolls.criticalCombatNeeded(sText) then
    			-- process critical hit/fial roll Roll  -
    			--processRoll()
    			Criticals.processRoll(rMsg)
    		end
    	end  --  added script end
    	
    	
        Comm.deliverChatMessage(rMessage);
    	
      end
    end
    Anybody want a peanut!

  4. #24
    For tweaking now (that I have spells working too!) I need to work on it saying the persons name instead of the GM in the critical for who did it (I think that should be easy?).

    Then maybe work on hit locations.... I still have to think about how to do that AND handle criticals with this methodology.

    And to use a table table (sidebar) instead of a script table.
    Anybody want a peanut!

  5. #25
    Getting a weird error though; seem to have stepped on someones toes. campaign/scripts/campaign_rollable.lua 120 attempt to call field 'performRoll (nil value) when I try to drag down an attack to the quick bar (it shows the level, in her case 15, instead of [MELEE]). I had some other melee's loaded while I was testing, so it was something that I did I think, but I didn't touch that; guess I need to find out whats calls it.

    edit: also perform skill roll, so I'm thinking ... @#$@#$
    Anybody want a peanut!

  6. #26
    Not figured out so far but I'm sure it has to do with the first bits in the onInit of the manager_action_(rolltype); I'm not getting something, or what I'm trying isn't going to work.

    If I change it to this, it still gives me that problem (I pick up a number instead of a die roll -- double clicking gives that same message type)
    Code:
    local onMelee_old
    function onInit()
    	--ActionsManager.registerModHandler("melee", modRoll);
    	ActionsManager.registerResultHandler("melee", onMelee);
    	onMelee_old = ActionMelee.onMelee
    	ActionMelee.onMelee = onMelee
    	
    	--ActionsManager.registerResultHandler("criticals", onRoll)
    	
    --	OptionsManager.registerOption2("criticals", false, "option_header_client", "option_label_CombatAutomation", "option_entry_cycler",
     -- { labels = "HitCriticals|HitLocationOn|CriticalsOn|NoCombatTriggers", values = "HitCriticals|HitLocationOn|CriticalsOn|NoCombatTriggers", baselabel = "NoCombatTriggers", baseval = "NoCombatTriggers", default = "NoCombatTriggers" })
      --
     -- OptionsManager.registerOption2("criticals_Source", false, "option_header_client", "option_label_CombatAutomation_Source", "option_entry_cycler",
     -- { labels = "SubLocationsOn|SubLocationsOff", values = "SubLocationsOn|SubLocationsOff", baselabel = "SubLocationsOff", baseval = "SubLocationsOff", default = "SubLocationsOff" })
    	
    end
    
    function onClose() ActionMelee.onMelee = onMelee_old end
    
    --function onMelee (rSource, rTarget, rRoll)
    	--onMelee_new(rSource, rTarget, rRoll)
    --end
    
    function onMelee(rSource, rTarget, rRoll)
    Calling
    ActionsManager.registerResultHandler("melee", onMelee);

    whether onMelee is as is or onMelee_new is the problem; keeping the next two lines doesn't affect anything except not any call to onMelee (new or normal) in the file

    back to fishing.

    edit edit:
    I think I need to merge/join or replace in the xml
    edit x3: not sure how to accomplish this. So far as it stands, I can roll criticals OR allow rolls to be dropped off the sheet, but not both... I'm sure it's about replace
    Code:
     <windowclass name="ActionMelee" merge="join" >
    			<script merge = "delete" />
    			<script file="scripts/manager_action_melee.lua" />
    		</windowclass>
    Last edited by Fezzik Buttercup; March 29th, 2022 at 20:41.
    Anybody want a peanut!

  7. #27

    Join Date
    May 2013
    Location
    East Coast USA.
    Posts
    957
    Quote Originally Posted by Fezzik Buttercup View Post
    Make sure you go into options (little gear thingy) and make sure that 'combat automation' is not none (default) or locations only (doesn't work in that itteration). Currently I'm reworking it. And gm rolls have to be on...
    Not trying to be funny here... but this is meant to automatically roll on the critical hit table, when a critical hit is rolled? Or do I need to some additional coding myself?
    Attached Images Attached Images

  8. #28
    When you're testing it are you spamming out the rolls? I've noticed that if you roll attacks to quickly that they interfer with the critical results; if you give the dice just enough time to stop moving before you roll again you're usually ok. Keep in mind that the ext that I put out is in a very very rough form (but it does seem to be working at least when I try it); I'm trying a different method now that (hopefully) won't require watching the chat as the one you're using does.

    (see image -- top roll I rolled the next too fast and it screwed up the next roll... that +3 was a modifier I put in to make her skill over 16 to make crit hunting easier -- the last one worked properly)

    Everything seems to be fine on your end otherwise I think from the pictures; do you have any other extensions on that I can look at if that didn't help?
    Attached Images Attached Images
    Last edited by Fezzik Buttercup; March 30th, 2022 at 03:24.
    Anybody want a peanut!

  9. #29

    Join Date
    May 2013
    Location
    East Coast USA.
    Posts
    957
    Quote Originally Posted by Fezzik Buttercup View Post
    ...
    Everything seems to be fine on your end otherwise I think from the pictures; do you have any other extensions on that I can look at if that didn't help?
    Hello. The issue stemmed from a conflicting extension (one that is not currently operational - the author is promising to look into it). It is, https://www.fantasygrounds.com/forum...Dice-(DM-only)

  10. #30
    The one your using right now Seycrus was actually inspired off Celestian's AudioOverseer. There are still a lot of functions in there that are not needed; as I said it was very rough -- if it works well for you and others though I'll see about trimming it down IF the more elegant version that is supposed to replace (modify) the GURPS melee, ability, and ranged action managers (currently they work, but only if you put the melee/ranged/ability(spell) in the quickbar and THEN restart FGU (if you try to use the values off the character sheet it doesn't like it... which is kinda useless and bad ).
    Anybody want a peanut!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Fantasy Grounds Merchandise

Log in

Log in