Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Thinking About] GM ping

1430567381
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Vince sold me test copy of his "Invisible Stalker" token packs, and I am feeling a little ripped off, $19,99 for 400 Invisible Stalkers in various poses sounded like a bargain at the time... Anyhow... I guess that is on me... ;) ...the point is now I have the very similar completely transparent tokens to track. sendPing(StalkerX, StalkerY, Campaign().get('playerpageid'), null, false); Would be nice… but players can see that too. Going to write something for this, anyone have anything else this might be useful for? Or thoughts on an interface?
1430567554
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
(I thought about "bump" however already doing some linkage.... just thinking a "GM ping" is all that is needed.)
1430577825
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
This is an intersting problem. Path is "read only" so even if you scale the w/h of the path up.... you get no changes.
1430577847
The Aaron
Pro
API Scripter
That's an interesting idea. I've thought about this from an accessibility standpoint. (that was why I originally made the TurnTracker, for a blind friend of mine to have something larger and higher contrast to look for. So, the biggest problem I see is that you can't ping just the GM to a spot (without showing that spot to the players). I think having a circular aura on an invisible token that only the GM can see which gets successively smaller over several seconds would work for grabbing the GM's attention. You could use both auras and have them change colors as well. =D
1430577897
The Aaron
Pro
API Scripter
Stephen S. said: This is an intersting problem. Path is "read only" so even if you scale the w/h of the path up.... you get no changes. Really? You should be able to change the w/h and get it to scale...
1430578980
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
The Aaron said: That's an interesting idea. I've thought about this from an accessibility standpoint. (that was why I originally made the TurnTracker, for a blind friend of mine to have something larger and higher contrast to look for. So, the biggest problem I see is that you can't ping just the GM to a spot (without showing that spot to the players). I think having a circular aura on an invisible token that only the GM can see which gets successively smaller over several seconds would work for grabbing the GM's attention. You could use both auras and have them change colors as well. =D So thinking..... !GMping And all graphics on the objects layer are looped through and "pinged" by using and yellow circle PNG on the GM layer. The Aaron said: Stephen S. said: This is an intersting problem. Path is "read only" so even if you scale the w/h of the path up.... you get no changes. Really? You should be able to change the w/h and get it to scale... The path has points that are related to the top left corner and do not scale with h/w. You would have to remove and re-draw.
1430581496

Edited 1430582383
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
gmPingUrl = '<a href="https://s3.amazonaws.com/files.d20.io/images/9191101/pylh4RYgJPrwEuE0ZI5pVg/thumb.png?1430578296" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/9191101/pylh4RYgJPrwEuE0ZI5pVg/thumb.png?1430578296</a>' gmPing = function() { var currentPageGraphics = findObjs({ _pageid: Campaign().get('playerpageid'), _type: 'graphic', layer: 'objects', }); _.each(currentPageGraphics, function(obj) { gmPingeer(obj); }); }, gmPingeer = function(obj) { var objValues = getObjValue(obj), ping = createObj('graphic',{ imgsrc: gmPingUrl, layer: 'gmlayer', pageid: Campaign().get("playerpageid"), top: objValues.top, left: objValues.left, height: 70, width: 70 }); setTimeout(function() {ping.set({height: 70, width: 70 }); }, 100); setTimeout(function() {ping.set({height: 80, width: 80 }); }, 200); setTimeout(function() {ping.set({height: 90, width: 90 }); }, 300); setTimeout(function() {ping.set({height: 100, width: 100}); }, 400); setTimeout(function() {ping.set({height: 110, width: 110}); }, 500); setTimeout(function() {ping.set({height: 120, width: 120}); }, 600); setTimeout(function() {ping.set({height: 130, width: 130}); }, 700); setTimeout(function() {ping.set({height: 140, width: 140}); }, 800); setTimeout(function() {ping.remove(); }, 1000); },
1430581525
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
Somthing like that... animation is a pain with API as is.
1430582873
The Aaron
Pro
API Scripter
Try this.... gmPingeer = function(obj) { var objValues = getObjValue(obj), ping = createObj('graphic',{ imgsrc: gmPingUrl, layer: 'gmlayer', pageid: Campaign().get("playerpageid"), top: objValues.top, left: objValues.left, height: 70, width: 70 }); (function(){ var size = 140, delta = -10, threshold = 70, rate = 100, interval = setInterval(function(){ ping.set({ height: size, width: size }); size += delta; if(size &lt;= threshold) { clearInterval(interval); } }, rate); }()); },
1430583264
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
gmPingeer = function(obj) { var objValues = getObjValue(obj), ping = createObj('graphic',{ imgsrc: gmPingUrl, layer: 'gmlayer', pageid: Campaign().get("playerpageid"), top: objValues.top, left: objValues.left, height: 70, width: 70 }); (function(){ var size = 140, delta = -10, threshold = 70, rate = 100, interval = setInterval(function(){ ping.set({ height: size, width: size }); size += delta; if(size &lt;= threshold) { clearInterval(interval); } }, rate); }()); setTimeout(function() {ping.remove(); }, 1000); },
1430583288
Stephen S.
Pro
Marketplace Creator
Sheet Author
API Scripter
That worked... stuck a "remove() at the end.
1430590214
The Aaron
Pro
API Scripter
Ah, meant to add that here: gmPingeer = function(obj) { var objValues = getObjValue(obj), ping = createObj('graphic',{ imgsrc: gmPingUrl, layer: 'gmlayer', pageid: Campaign().get("playerpageid"), top: objValues.top, left: objValues.left, height: 70, width: 70 }); (function(){ var size = 140, delta = -10, threshold = 70, rate = 100, interval = setInterval(function(){ ping.set({ height: size, width: size }); size += delta; if(size &lt;= threshold) { clearInterval(interval); ping.remove(); } }, rate); }()); },
1430671321
vÍnce
Pro
Sheet Author
Stephen S. said: Vince sold me test copy of his "Invisible Stalker" token packs, and I am feeling a little ripped off, $19,99 for 400 Invisible Stalkers in various poses sounded like a bargain at the time... Anyhow... I guess that is on me... ;) ...the point is now I have the very similar completely transparent tokens to track. sendPing(StalkerX, StalkerY, Campaign().get('playerpageid'), null, false); Would be nice… but players can see that too. Going to write something for this, anyone have anything else this might be useful for? Or thoughts on an interface?
1430671378
The Aaron
Pro
API Scripter
HAHAHAHAHAHA
This is sweet btw :)