Welcome Guest ( Log In | Register )

44 Pages V « < 26 27 28 29 30 > »   
Reply to this topicStart new topic
> [Script] Monsterbation 1.4.1.2, A comprehensive hovering script for HentaiVerse and ISK. Including CrunkJuice 1.3.0, an out-of-battle script

 
post Apr 5 2020, 15:00
Post #541
red_x_king



Newcomer
*
Group: Gold Star Club
Posts: 43
Joined: 28-March 20
Level 304 (Godslayer)


I find the answer at a chinese forum.The Chinese translation script conflits with this mod, and this conflict can be solved by using a item ,such as health drought.
Sorry for wasting your time (IMG:[invalid] style_emoticons/default/laugh.gif)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 10 2020, 02:05
Post #542
mewsf



Regular Poster
*****
Group: Gold Star Club
Posts: 564
Joined: 24-June 14
Level 500 (Ponyslayer)


Is it possible to temporarily disable hovering on every new round starts before I cast a imperil spell? Sometimes you just can't move cursor away from monsters in time.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 10 2020, 17:21
Post #543
eteran



Casual Poster
****
Group: Members
Posts: 345
Joined: 6-November 10
Level 397 (Godslayer)


QUOTE(mewsf @ Apr 10 2020, 03:05) *

Is it possible to temporarily disable hovering on every new round starts before I cast a imperil spell? Sometimes you just can't move cursor away from monsters in time.


You can uncheck "have hoverplay active at the beginning of each round" and check "reactivate hover after releasing any key".
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 11 2020, 02:05
Post #544
mewsf



Regular Poster
*****
Group: Gold Star Club
Posts: 564
Joined: 24-June 14
Level 500 (Ponyslayer)


QUOTE(eteran @ Apr 10 2020, 23:21) *

You can uncheck "have hoverplay active at the beginning of each round" and check "reactivate hover after releasing any key".


Thank you, however this doesn't work for me because I cast imperil using mouse wheel, guess I can modify the script to do it.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 15 2020, 17:45
Post #545
federfleisch



Newcomer
*
Group: Members
Posts: 26
Joined: 1-November 10
Level 208 (Godslayer)


Currently hover to attack doesn't seem to be working for me.
Using the version of the script at the top of this post with Chrome.
Set hover action to Attack. Do I need to do anything else?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 15 2020, 19:39
Post #546
Noni



Hataraku Noni-sama
***********
Group: Catgirl Camarilla
Posts: 13,142
Joined: 19-February 16
Level 500 (Ponyslayer)


QUOTE(federfleisch @ Apr 15 2020, 17:45) *

Currently hover to attack doesn't seem to be working for me.
Using the version of the script at the top of this post with Chrome.
Set hover action to Attack. Do I need to do anything else?

no, hovering over the monster status effect area should give you hover attack. However, most scripts won't work with the default font. You can change the font in the settings of hentaiverse. Also, use the most recent version of tampermonkey add-on. Greasemonkey doesn't work for everybody.

This post has been edited by DJNoni: Apr 15 2020, 19:41
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 16 2020, 00:03
Post #547
sickentide



sexromancer
*******
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
Level 500 (Ponyslayer)


QUOTE(federfleisch @ Apr 15 2020, 17:45) *

Set hover action to Attack.

keep in mind that the keyword for the default attack is "Nothing" rather than "Attack", the reasoning being that the hover action is the action performed before the automatic click and doing "Nothing" will perform a simple click, ie. a regular attack

QUOTE(DJNoni @ Apr 15 2020, 19:39) *

However, most scripts won't work with the default font.

this script should be fully functional with the default font

This post has been edited by sickentide: Apr 16 2020, 00:04
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 16 2020, 15:39
Post #548
federfleisch



Newcomer
*
Group: Members
Posts: 26
Joined: 1-November 10
Level 208 (Godslayer)


QUOTE(sickentide @ Apr 16 2020, 00:03) *

keep in mind that the keyword for the default attack is "Nothing" rather than "Attack", the reasoning being that the hover action is the action performed before the automatic click and doing "Nothing" will perform a simple click, ie. a regular attack
this script should be fully functional with the default font

OK that totally tripped me up! The comment in the script next to it I interpreted as meaning I needed to set the action as Attack to enable it. Thanks for clarifying!
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 17 2020, 02:57
Post #549
-Kipaliye



Phantasia
****
Group: Gold Star Club
Posts: 285
Joined: 9-August 17
Level 500 (Ponyslayer)


My monsterbation script always stop working after few rounds,sometimes the whole page is just like being frozen, the extend quickbar is gone too. Usually after I reload the page the script will work, but after few rounds it will stop working again. I have tried adjusting the settings or reinstalling the script,but nothing works. Hentaiverse works perfect when monsterbation is not installed.Do you have any ideas to help me solve this problem? Thank you.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 17 2020, 07:05
Post #550
sickentide



sexromancer
*******
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
Level 500 (Ponyslayer)


QUOTE(RazyNight @ Apr 17 2020, 02:57) *

Do you have any ideas to help me solve this problem?

usually this happens when one of the settings is set to an invalid value, causing the script to crash when that setting is invoked. if you post the console output when it stops working, we should be able to pin this down
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 17 2020, 08:55
Post #551
-Kipaliye



Phantasia
****
Group: Gold Star Club
Posts: 285
Joined: 9-August 17
Level 500 (Ponyslayer)


QUOTE(sickentide @ Apr 17 2020, 07:05) *

usually this happens when one of the settings is set to an invalid value, causing the script to crash when that setting is invoked. if you post the console output when it stops working, we should be able to pin this down



userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1206 Uncaught TypeError: Cannot read property 'test' of undefined
at Durations (userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1206)
at MutationObserver.Observe (userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1083)
Durations @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1206
Observe @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1083
childList (async)
Battle.process_action @ hvc.js:1
XMLHttpRequest.send (async)
api_call @ hvc.js:1
Battle.touch_and_go @ hvc.js:1
Battle.commit_target @ hvc.js:1
onclick @ ?s=Battle:1
Hover @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1410
Monsters @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1362
Observe @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1084
childList (async)
Battle.process_action @ hvc.js:1
XMLHttpRequest.send (async)
api_call @ hvc.js:1
Battle.touch_and_go @ hvc.js:1
Battle.commit_target @ hvc.js:1
onclick @ ?s=Battle:1
Hover @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1410
Monsters @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1362
Observe @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1084
childList (async)
Battle.process_action @ hvc.js:1
XMLHttpRequest.send (async)
api_call @ hvc.js:1
Battle.touch_and_go @ hvc.js:1
Battle.commit_target @ hvc.js:1
onclick @ ?s=Battle:1
Hover @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1410
Monsters @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1362
Observe @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1084
childList (async)
Battle.process_action @ hvc.js:1
XMLHttpRequest.send (async)
api_call @ hvc.js:1
Battle.touch_and_go @ hvc.js:1
Battle.commit_target @ hvc.js:1
onclick @ ?s=Battle:1
Hover @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1410
Monsters @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1362
Observe @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1084
childList (async)
Battle.process_action @ hvc.js:1
XMLHttpRequest.send (async)
api_call @ hvc.js:1
Battle.touch_and_go @ hvc.js:1
Battle.commit_target @ hvc.js:1
onclick @ ?s=Battle:1
Hover @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1410
eval @ userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1415
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 17 2020, 09:13
Post #552
sickentide



sexromancer
*******
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
Level 500 (Ponyslayer)


QUOTE(RazyNight @ Apr 17 2020, 08:55) *

Uncaught TypeError: Cannot read property 'test' of undefined
at Durations (userscript.html?id=1462ddad-6a97-42a2-a44f-ee1a0db87432:1206)

looks like the alertBuffs ("critical buffs") setting is broken. make sure that it respects the format given in the defaults. either look at the unmodified script or, if you use the interface, clear the field and save to reset it
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 17 2020, 11:06
Post #553
-Kipaliye



Phantasia
****
Group: Gold Star Club
Posts: 285
Joined: 9-August 17
Level 500 (Ponyslayer)


QUOTE(sickentide @ Apr 17 2020, 09:13) *

looks like the alertBuffs ("critical buffs") setting is broken. make sure that it respects the format given in the defaults. either look at the unmodified script or, if you use the interface, clear the field and save to reset it


Thanks, it works now.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 24 2020, 00:02
Post #554
okayno



tired of being right all the time
****
Group: Gold Star Club
Posts: 419
Joined: 7-November 11
Level 396 (Dovahkiin)


Went to edit the default imperil binds to stop targeting and just cast imperil, because the chances of all three landing is about 10%, thus, the binds were useless. Save and exit. Monsterbation is unloaded. Hit 1, standard attack on monster A and all icons are arranged vertically with green bars above every buff/debuff icon. Restart firefox, same. Delete monsterbation and install fresh. Same. Reinstall tampermonkey, same. Disable all addons except tampermonkey, same. Monsterbation now only loads properly in a standard window.

What. the. fuck.

Apparently wiping all cookies (??) was the magical problem solver here. Despite the fact none of the cookies retained by the browser were newer than 22 days old. ¯\(o.°)/¯

This post has been edited by okayno: Apr 24 2020, 00:55
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 26 2020, 02:34
Post #555
AtotehZ



Newcomer
**
Group: Members
Posts: 86
Joined: 23-October 10
Level 179 (Destined)


Dunno it it's actually necessary, but in the first post it doesn't give an example of what you can use to execute the script.

I've used both Greasemonkey and Tampermonkey before, but those who haven't touched scripts before might be screwed.

This is awesome by the way. I was annoyed there was no easy way to rebind my casts, now they're all where I want them, and that's just the tip of the new features.

This post has been edited by AtotehZ: Apr 26 2020, 02:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 26 2020, 17:42
Post #556
3534



Active Poster
*******
Group: Gold Star Club
Posts: 1,858
Joined: 14-March 11
Level 500 (Ponyslayer)


Hi, sickentide. (IMG:[invalid] style_emoticons/default/smile.gif)

@1.3.2.0
setting:
CODE
turnDividers: true, //         add horizontal row between turns
hoverShiftAction: "Impulse(Cast('Imperil'))", // alternate hover action when holding shift


when I holding shift and hover on the monster, it is not always cast Imperil,
it will become like this, much Arcane Blow and less Imperil:
QUOTE
Ether Tap restores 34 points of magic.
Your spike shield hits Bakorra for 228 points of wind damage.
Bakorra crits you for 1048 slashing damage.
Void Strike hits Bakorra for 2283 void damage.
Elec Strike hits Bakorra for 1865 elec damage.
Arcane Blow hits Bakorra for 3883 void damage.

Your spike shield hits Bakorra for 210 points of wind damage.
Bakorra hits you for 968 slashing damage.
You gain the effect Ether Tap.
Void Strike hits Bakorra for 2027 void damage.
Elec Strike hits Bakorra for 2189 elec damage.
Arcane Blow crits Bakorra for 7105 void damage.

Your spike shield hits Bakorra for 200 points of wind damage.
Bakorra hits you for 921 slashing damage.
Bakorra parries your attack.

Cooldown expired for Cure
Bakorra gains the effect Turbulent Air.
Your spike shield hits Bakorra for 894 points of wind damage.
Bakorra uses Diurnal Butterflies, and crits you for 4120 slashing damage
Your spirit shield absorbs 850 points of damage from the attack into 12 points of spirit damage.
Bakorra gains the effect Coalesced Mana.
Bakorra gains the effect Imperiled.
You cast Imperil.

You evade the attack from Bakorra.
Void Strike hits Bakorra for 1835 void damage.
Elec Strike hits Bakorra for 1793 elec damage.
Arcane Blow crits Bakorra for 5569 void damage.


so I try to read the code,

still @1.3.2.0
setting:
CODE
    turnDividers: true, //         add horizontal row between turns
    clickRight: "Impulse(Cast('Imperil'))",
    hoverShiftAction: "Impulse(Cast('Imperil'))", // alternate hover action when holding shift


code change (just add console.log *5 ):
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        console.log('interruptHover:'+interruptHover);                                                                                                  //add here
        console.log('interruptAlert:'+interruptAlert);                                                                                                     //add here
        console.log('!monsters[target]:'+target+':'+!monsters[target]);                                                                        //add here
        console.log(target+':'+!monsters[target].hasAttribute('onclick'));                  //add here
        console.log('-');                                                                                                                                              //add here
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}


test:
1) right click on the monster A (out of hover area):
CODE
interruptHover:false
interruptAlert:false
!monsters[target]:false:true
Uncaught TypeError: Cannot read property 'hasAttribute' of undefined

no imp no Arcane Blow, nothing happened.

2) refresh and try the "hoverShiftAction", holding shift and hover on the monster B.
CODE
interruptHover:false
interruptAlert:false
!monsters[target]:1:false
1:false
and Arcane Blow hit

go on holding shift and hover on the monster B.
console.log gived nothing,
and imp cast.

go on holding shift and hover on the monster B.
console.log gived nothing,
and Arcane Blow hit.

go on holding shift and hover on the monster B.
console.log gived nothing,
and Arcane Blow hit.

go on holding shift and hover on the monster B.
console.log gived nothing,
and Arcane Blow hit.

...

3) refresh and try the "hoverShiftAction", holding/release shift and hover on the monster B.
CODE
interruptHover:false
interruptAlert:false
!monsters[target]:1:false
1:false
and Arcane Blow hit

release shift

continue on holding shift and hover on the monster B.
console.log gived nothing,
and imp cast.

release shift

continue on holding shift and hover on the monster B.
CODE
interruptHover:false
interruptAlert:false
!monsters[target]:1:false
1:false
and Arcane Blow hit

release shift

continue on holding shift and hover on the monster B.
console.log gived nothing,
and imp cast.

release shift

continue on holding shift and hover on the monster B.
CODE
interruptHover:false
interruptAlert:false
!monsters[target]:1:false
1:false
and Arcane Blow hit

...

..............................................................................................................................

I guess it is ...(?)

1)
target == false
so,
!monsters[target].hasAttribute('onclick')
gived the "Uncaught TypeError"


2)
Script RUN
CODE
document.addEventListener('keydown', handleKeys, true);

push shift
release == false
CODE
handleKeys(e) {...}

hover monster B
CODE
area.addEventListener('mouseover', SetTarget(i), true);

i==1
CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse==false
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }

CODE
cfg.hoverShiftAction();

CODE
hoverShiftAction: "Impulse(Cast('Imperil'))",

done==false
interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') == false
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
impulse == Cast('Imperil')

CODE
Hover() {...
monsters[target].click();}
Arcane Blow hit

next turn
CODE
area.addEventListener('mouseover', SetTarget(i), true);

CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse == Cast('Imperil')
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }

done == true
impulse == false
and imp hit.

next turn
CODE
area.addEventListener('mouseover', SetTarget(i), true);

CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse == false
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }

CODE
cfg.hoverShiftAction();

CODE
hoverShiftAction: "Impulse(Cast('Imperil'))",

done == true
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}

CODE
Hover() {...
monsters[target].click();}
Arcane Blow hit

next turn
impulse == false
done == true
like the last turn, Arcane Blow hit
...

3)
Script RUN
as same as 2) first turn
CODE
document.addEventListener('keydown', handleKeys, true);

push shift
release == false
CODE
handleKeys(e) {...}

hover monster B
CODE
area.addEventListener('mouseover', SetTarget(i), true);

i==1
CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse==false
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }

CODE
cfg.hoverShiftAction();

CODE
hoverShiftAction: "Impulse(Cast('Imperil'))",

done==false
interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') == false
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
impulse == Cast('Imperil')

CODE
Hover() {...
monsters[target].click();}
Arcane Blow hit

next turn
CODE
document.addEventListener('keyup', handleKeyup, true);

release shift
CODE
function handleKeyup(e) {
    shiftHeld = e.shiftKey;
    ctrlHeld = e.ctrlKey;
    altHeld = e.altKey;
    override = false;
    release = true;
    if ( cfg.hoverAutoresume ) {
        interruptHover = false;
        if ( (cfg.hoverAction || override) && !interruptAlert && monsters[target] && monsters[target].hasAttribute('onclick') ) {
            Hover(); }}
}
release == true
push shift and hover
CODE
document.addEventListener('keydown', handleKeys, true);

CODE
function handleKeys(e) {
    if ( release ) {
        done = false;
        release = false; }
    saveKeyDown();
    shiftHeld = e.shiftKey;
    ctrlHeld = e.ctrlKey;
    altHeld = e.altKey;
    var bind;
    for ( var i = 0; i < bindings.length; i++ ) {
        bind = bindings[i];
        if ( e.keyCode == bind.keyCode && bind.modifier(e) ) {
            bind.action();
            return; }}
    loadKeyDown(); }
done == false
release == false
CODE
area.addEventListener('mouseover', SetTarget(i), true);

CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse == Cast('Imperil')
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }
done == true
impulse == false
and imp hit.

next turn
CODE
document.addEventListener('keyup', handleKeyup, true);

release shift
CODE
function handleKeyup(e) {
    shiftHeld = e.shiftKey;
    ctrlHeld = e.ctrlKey;
    altHeld = e.altKey;
    override = false;
    release = true;
    if ( cfg.hoverAutoresume ) {
        interruptHover = false;
        if ( (cfg.hoverAction || override) && !interruptAlert && monsters[target] && monsters[target].hasAttribute('onclick') ) {
            Hover(); }}
}
release == true
push shift and hover
CODE
document.addEventListener('keydown', handleKeys, true);

CODE
function handleKeys(e) {
    if ( release ) {
        done = false;
        release = false; }
    saveKeyDown();
    shiftHeld = e.shiftKey;
    ctrlHeld = e.ctrlKey;
    altHeld = e.altKey;
    var bind;
    for ( var i = 0; i < bindings.length; i++ ) {
        bind = bindings[i];
        if ( e.keyCode == bind.keyCode && bind.modifier(e) ) {
            bind.action();
            return; }}
    loadKeyDown(); }
done == false
release == false
CODE
area.addEventListener('mouseover', SetTarget(i), true);

CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

impulse == false
CODE
function Hover() {
    if ( hovering ) return;
    hovering = true;
    if ( impulse ) {
        impulse();
        done = true;
        impulse = false; }
    else if ( override ) {
        override(); }
    else if ( shiftHeld && cfg.hoverShiftAction ) {
        cfg.hoverShiftAction(); }
    else if ( ctrlHeld && cfg.hoverCtrlAction ) {
        cfg.hoverCtrlAction(); }
    else if ( altHeld && cfg.hoverAltAction ) {
        cfg.hoverAltAction(); }
    else {
        cfg.hoverAction(); }
    monsters[target].click(); }

CODE
cfg.hoverShiftAction();

CODE
hoverShiftAction: "Impulse(Cast('Imperil'))",

done==false
interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') == false
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
impulse == Cast('Imperil')

CODE
Hover() {...
monsters[target].click();}
Arcane Blow hit

next turn
like the last imp turn, imp hit
...

*****************

is it a bug?
or I make something bad?
(IMG:[invalid] style_emoticons/default/unsure.gif)

This post has been edited by 3534: Apr 27 2020, 09:24
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 28 2020, 03:47
Post #557
sickentide



sexromancer
*******
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
Level 500 (Ponyslayer)


QUOTE(okayno @ Apr 24 2020, 00:02) *

Apparently wiping all cookies (??) was the magical problem solver here. Despite the fact none of the cookies retained by the browser were newer than 22 days old. ¯\(o.°)/¯

looks like your binds were broken, causing the script to crash. clearing cookies fixes that, or hitting Reset on the settings page

QUOTE(AtotehZ @ Apr 26 2020, 02:34) *

Dunno it it's actually necessary, but in the first post it doesn't give an example of what you can use to execute the script.

true, fixed

QUOTE(3534 @ Apr 26 2020, 17:42) *

CODE
turnDividers: true, //         add horizontal row between turns
hoverShiftAction: "Impulse(Cast('Imperil'))", // alternate hover action when holding shift

is it a bug?
or I make something bad?

i'm not sure what you're trying to do, but when i test your settings, they work as intended: casting imperil exactly once per keypress. if you want to use imperil continuously, you need to use Cast('Imperil') without the Impulse
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 28 2020, 09:24
Post #558
Noni



Hataraku Noni-sama
***********
Group: Catgirl Camarilla
Posts: 13,142
Joined: 19-February 16
Level 500 (Ponyslayer)


QUOTE(sickentide @ Apr 28 2020, 03:47) *

looks like your binds were broken, causing the script to crash. clearing cookies fixes that, or hitting Reset on the settings page
true, fixed
i'm not sure what you're trying to do, but when i test your settings, they work as intended: casting imperil exactly once per keypress. if you want to use imperil continuously, you need to use Cast('Imperil') without the Impulse

yo sicken, I tried the impulse function to cast imperil at start of round of schoolgirls:



start round with over is ON
CODE

   hoverAltAction: Impulse(Cast('Imperil')), // alternate hover action when holding alt


Then I have the mouse outside the hover area at beginning of round. I press alt, keep it down. I move the mouse to monsters: presto!
1. I use arcane blow (?!) and deal void damage by whacking the monster over his head
2. I cast imperil

Wut? why the arcane blow?

User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 28 2020, 09:43
Post #559
uareader



Critter
*********
Group: Catgirl Camarilla
Posts: 5,592
Joined: 1-September 14
Level 500 (Ponyslayer)


If I understand right:
-Impulse allow to do the action once per keypress.
-Alternative hover allow to do an alternative action when key holding

There may be an incompatibility between the two
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Apr 28 2020, 11:33
Post #560
3534



Active Poster
*******
Group: Gold Star Club
Posts: 1,858
Joined: 14-March 11
Level 500 (Ponyslayer)


QUOTE(sickentide @ Apr 28 2020, 09:47) *

i'm not sure what you're trying to do, but when i test your settings, they work as intended: casting imperil exactly once per keypress. if you want to use imperil continuously, you need to use Cast('Imperil') without the Impulse

I knew if I want to use imperil continuously, need to use Cast('Imperil') without the Impulse,
but that is not my mean.
(IMG:[invalid] style_emoticons/default/unsure.gif)


let me try to tell clear what I did:
1) clean the "local storage"
2) setup 1.3.2.0, and only change these at the code, others are all same as original script
CODE
// @match        https://*.hentaiverse.org/*
turnDividers: true, //         add horizontal row between turns
hoverShiftAction: "Impulse(Cast('Imperil'))", // alternate hover action when holding shift

3) enter GF
4) my operation and what happend:
[a] when I enter GF, mouse is outside the hover area, nothing happend, I think it's normal
[b.] push "shift" and holding it
[c] mouse go in the hover area, with still holding "shift"
[e] first turn, Arcane Blow hit. (mouse still in the hover area, with still holding "shift")
[f] no stop, second turn, imp hit. (mouse still in the hover area, with still holding "shift")
[g] no stop, third turn, Arcane Blow hit. (mouse still in the hover area, with still holding "shift")
[h] no stop, fourth turn, Arcane Blow hit. (mouse still in the hover area, with still holding "shift")
...
[i] mouse go out of the hover area, release "shift"


another operation and what happend:
[a] when I enter GF, mouse is outside the hover area, nothing happend, I think it's normal
[b.] push "shift" and holding it
[c] mouse go in the hover area, with still holding "shift", but this time, mouse go out of the hover area at once.(move in and move out very quickly)
[e] first turn, Arcane Blow hit. (with still holding "shift")
[f] release "shift"
[g] push "shift" and holding it
[h] like [c], mouse move in and move out very quickly, with still holding "shift"
[i] second turn, imp hit. (with still holding "shift")
[j] release "shift"
[k] push "shift" and holding it
[l] like [c], mouse move in and move out very quickly, with still holding "shift"
[m] third turn, Arcane Blow hit.
[n] release "shift"
[o] push "shift" and holding it
[p] like [c], mouse move in and move out very quickly, with still holding "shift"
[q] fourth turn, imp hit. (with still holding "shift")
[r] release "shift"
...


I think it is not work as intended,
and it may should be:
[a] when I enter GF, mouse is outside the hover area, nothing happend
[b.] push "shift" and holding it
[c] mouse go in the hover area, with still holding "shift"
[e] first turn, imp hit. (mouse still in the hover area, with still holding "shift")
[f] action stop (mouse still in the hover area, with still holding "shift")
[g] mouse go out of the hover area (still holding "shift")
[h] mouse go in the hover area, with still holding "shift"
[i] second turn, imp hit. (mouse still in the hover area, with still holding "shift")
[j] action stop (mouse still in the hover area, with still holding "shift")
[k] mouse go out of the hover area (still holding "shift")
[l] mouse go in the hover area, with still holding "shift"
[m] third turn, imp hit. (mouse still in the hover area, with still holding "shift")
[n] action stop (mouse still in the hover area, with still holding "shift")
[o] mouse go out of the hover area (still holding "shift")
...
[p] mouse go out of the hover area, release "shift"

maybe a little look like use "onmouseenter" instead of "onmouseover"...?
addEventListener('mouseenter', function)
addEventListener('mouseover', function)


Due to I don't know the rules very well, maybe this usage is not allowed?
(IMG:[invalid] style_emoticons/default/unsure.gif)






***********************************************************************

and in my last post,
QUOTE(3534 @ Apr 26 2020, 23:42) *

Hi, sickentide. (IMG:[invalid] style_emoticons/default/smile.gif)

@1.3.2.0
setting:
...
I am trying to guess the reason of what happened in the code, so I add some 'console.log' and test.

and I think that here, there is a little strange,
actually, I am not very understand the code meaning at here (IMG:[invalid] style_emoticons/default/heh.gif)
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
here it is:
CODE
( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') )



first,
due to
CODE
startRoundWithHover: true, //    have hoverplay active at the beginning of each round
interruptHover = !cfg.startRoundWithHover;

"interruptHover" most of time is "false".

and "interruptAlert" is meaning the sparked or low vitals or something danger,
so, "interruptAlert" most of time is "false", too.

and then,
"!monsters[target]"
"!monsters[target].hasAttribute('onclick')"
these two is influence by "target",
and due to
CODE
function ClearTarget() { target = false; }

CODE
var cfg = {}, profile = JSON.parse(localStorage.HVmbp || '{ "p":0,"s1":0,"s2":0,"s3":0,"s4":0,"s5":0,"s6":0,"s7":0,"s8":0,"s9":0 }'),
    bindings = [], gem = [], target = false, cursor = -1, interruptHover, interruptAlert = false, hovering = false, override = false, impulse = false,

CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

CODE
function Disengage() { target = false; override = false; }

when "target" is "false", the "!monsters[target]" is "true", "!monsters[target].hasAttribute('onclick')" will be error.

CODE
( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') )
it become
CODE
( false || false || true || error )
though there is an "error", it still mean "true".

and then
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
here, most of time RUN
CODE
action(); done = true; impulse = false;


continue to track,
if "target" need to be something but not "false",
here it is:
CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}
yeah, here:
CODE
target = i;


and the "SetTarget(i)" will run in those 3 places:
(1)
CODE
function CursorHover() { if ( cursor >= 0 ) SetTarget(cursor)(); }
this is used by bind(), like that
CODE
// Bind(KEY_RIGHT, CursorHover);\ -- Hover on selected monster, recommended use with clearRound = true.



(2)
CODE
function BarEngage(i, actions) {
    return function() {
        if ( !monsters[i].hasAttribute('onclick') ) return;
        override = StrongestBar(actions);
        SetTarget(i)(); };}
this is used by MonsterBar(), like that
CODE
    // mobile settings
    clearRound: false, // clear target and reset hoverAction at round transition, to avoid lingering taps and make monsterBar safer
    spacedBar: false, //  increase spacing of quickbar and monster bar
    monsterBar: [], //    add skill/spell icons next to monsters, for single use or tap to engage/tap elsewhere to disengage, single skills and spell rotations



(3)
CODE
function Monsters() {
    var monster;
    for ( var i = 0; i < monsters.length; i++ ) {
        if ( (monster = monsters[i]) && monster.hasAttribute('onclick') ) {
            var area = monster.querySelector('.btm' + cfg.hoverArea) || monster;
            area.addEventListener('mouseout', ClearTarget, true);
            area.addEventListener('mouseover', SetTarget(i), true);
            monster.addEventListener('mousedown', HandleClick(i), true);
            monster.addEventListener('contextmenu', function(e) { e.preventDefault(); });
            monster.addEventListener('wheel', HandleWheel(i), true);
            if ( cursor >= 0 ) Cursor();
            if ( target === i && (cfg.hoverAction || override) && !interruptHover && !interruptAlert ) {
                Hover(); }
            if ( cfg.submitScans && monsterData.recent[i] === false ) {
                monster.querySelector('.btm2').style.background = cfg.colours.scan; }
            else if ( cfg.monsterKeywords && monsterData.highlight[i] ) {
                monster.querySelector('.btm2').style.background = cfg.colours.monster; }
            if ( (cfg.showMonsterHP || cfg.shortenHPbars) && monsterData.hp[i] ) {
                var bar = monster.querySelector('img[src$="nbargreen.png"]'),
                    ratio = parseInt(bar.style.width) / 120;
                if ( cfg.showMonsterHP && !cfg.quickbarBesideMonsters && !cfg.condenseLeft ) {
                    var div = monster.appendChild(document.createElement('div'));
                    div.className = 'monsterhp';
                    div.innerHTML = 'HP: ' + Math.round(ratio * monsterData.hp[i]).toLocaleString() + ' / ' + monsterData.hp[i].toLocaleString(); }
                if ( cfg.shortenHPbars && monsterData.hp[i] < monsterData.hp[10] ) {
                    var factor = monsterData.hp[i] / monsterData.hp[10],
                        border = monster.querySelector('img[src$="nbarfg.png"]'),
                        bg = monster.querySelector('.chbd');
                    bar.style.width = Math.round(ratio * factor * 120) + 'px';
                    border.style.width = Math.round(factor * 120) + 'px';
                    border.style.height = '12px';
                    bg.style.width = Math.round(factor * 120) + 'px'; }}
            if ( cfg.colours.stun || cfg.colours.imperil || cfg.colours.stunimperil ) {
                var status = monster.querySelector('.btm6'),
                    stun = status.innerHTML.indexOf('wpn_stun.png') > -1,
                    imperil = status.innerHTML.indexOf('imperil.png') > -1;
                if ( cfg.colours.stunimperil && stun && imperil ) {
                    monster.style.background = cfg.colours.stunimperil; }
                else if ( cfg.colours.stun && stun ) {
                    monster.style.background = cfg.colours.stun; }
                else if ( cfg.colours.imperil && imperil ) {
                    monster.style.background = cfg.colours.imperil; }}}}}
I think here is the key point,
CODE
    hoverArea: 6, // part of the monster that activates hover
                  // 1: whole box, 2: icon, 3: name, 4: vitals, 6: status effects
CODE
function Monsters() {
    var monster;
    for ( var i = 0; i < monsters.length; i++ ) {
        if ( (monster = monsters[i]) && monster.hasAttribute('onclick') ) {
            var area = monster.querySelector('.btm' + cfg.hoverArea) || monster;
            area.addEventListener('mouseout', ClearTarget, true);
            area.addEventListener('mouseover', SetTarget(i), true);


when
hoverArea == 6
i == 0
RUN
CODE
monster = monsters[0]

then
RUN
CODE
var area = monster.querySelector('.btm' + 6) || monster;

after this,
area == monster.querySelector('.btm' + 6)
then
RUN
CODE
area.addEventListener('mouseover', SetTarget(i), true);

after this,
when mouse move over the "hoverArea6",
SetTarget(0) will be runed,
CODE
function SetTarget(i) { return function() {
    target = i;
    if ( (cfg.hoverAction || override) && !interruptHover && !interruptAlert && monsters[target].hasAttribute('onclick') ) {
        Hover(); }};}

after this,
target == 0;
"!monsters[target]" become "false",
"!monsters[target].hasAttribute('onclick')" become "false"


so
CODE
( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') )
it become
CODE
( false || false || false || false )
it mean "false".

and then
CODE
function Impulse(action) {
    return function() {
        if ( done ) return;
        impulse = action;
        if ( interruptHover || interruptAlert || !monsters[target] || !monsters[target].hasAttribute('onclick') ) {
            action(); done = true; impulse = false; }};}
here, most of time NOT run
CODE
action(); done = true; impulse = false;


***

Sorry for so long.........

Maybe...
DJNoni and uareader are saying the same problem?..

This post has been edited by 3534: Apr 28 2020, 12:17
User is offlineProfile CardPM
Go to the top of the page
+Quote Post


44 Pages V « < 26 27 28 29 30 > » 
Reply to this topicStart new topic
3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)
0 Members:

 


Lo-Fi Version Time is now: 8th April 2025 - 19:46