Page 1 of 1

check macroing players

Posted: Sun Mar 09, 2008 5:26 am
by testerz
is there a script that checks whether a use is away popping a window ?

Posted: Thu May 08, 2008 10:15 pm
by tehelite
Yes there are many scripts that do that. If you are looking at making your own then read this topic, http://forums.polserver.com/ftopic2057.php, it has basic details that you will need.

For any further info, please say so and i'll help :D

Posted: Fri May 09, 2008 11:13 am
by Luth
I wrote a capcha system (as yes/no gumps can be macrod away as well). If you like, I could dig it out of mothballs and post it.

Posted: Fri May 09, 2008 1:05 pm
by ncrsn
Sharing is caring; annoying players = priceless.

Posted: Fri May 09, 2008 8:13 pm
by Luth
This txtcmd was written a hundred years ago and I make no claims to its quality. It worked then, I should hope it still works now. Spruce it up as you like.

txtcmd/coun/unattended.src

Code: Select all

use uo;
use os;
use util;
use basic;


program unattended( who )
  var gflayout := {
		"noclose",  
		"nodispose", 
		"nomove",    
		"page 0",
		"resizepic 10 10 2600 300 150",
		"text 70 25 32 0",
		"text 70 40 32 1",
		"text 70 55 32 2",
		"text 70 70 32 3",
		"text 70 85 32 4",
		"button 130 115 249 248 1 1 1"
		};
  var gfdata := { 
		"You have been suspected",
		"of unattended macroing.",
		"Use the command ",
		".macropass PASSWORD"
		};

  var targ := target(who);
  if (!targ.acct)
    sendsysmessage(who,"That is not a player. Choose again wise guy.");
    return(0);
  elseif(GetObjProperty(targ, "macroPW"))
    sendsysmessage(who,"That player is already marked for Macroing.");
    return(0);
  endif

  var size;
  var SRV := randomInt(30000);

  size := len(gfdata);
  gfdata[size+1] := "Your password is: "+SRV+".";

  SetObjProperty(targ, "macroPW", SRV);
  start_script("misc/timeout", targ);
  SendDialogGump( targ, gflayout, gfdata );
endprogram

misc/timeout.src

Code: Select all

use uo;
use os;
use util;
use basic;


include "include/damage";

program timeout(targ)
  var times := 0;
  for(times := 0; times < 30; times := times + 1)
    if(GetObjProperty(targ, "macroPW")) 
      SendSysMessage(targ, "" + CInt(300 - CInt(times * 10)) + " seconds left");
      sleep(10);
    else
      return;
    endif
  endfor
	
  if(GetObjProperty(targ, "macroPW")) 
    EraseObjProperty(targ, "macroPW");
    ApplyRawDamage_Modified(targ, targ, "macroing", 32000);
    DisconnectClient(targ);
  endif
endprogram

txtcmd/player/macropass.src

Code: Select all

use uo;
use os;
use util;
use basic;

program macropass( who, password )
  if(!GetObjProperty(who, "macroPW")) 
    sendsysmessage(who,"You have not been suspected of macroing.");
    return(0);
  endif

  var pw := CInt(GetObjProperty(who, "macroPW"));
  password := CInt(password);
  if(pw == password)
    sendsysmessage(who, "You have entered a correct password, you are saved.");
    EraseObjProperty(who, "macroPW"); 
  else
   sendsysmessage(who, "You have entered a incorrect password.");
  endif
endprogram

Posted: Sun May 18, 2008 9:04 am
by ncrsn
Thank you Luth.

Nice to see what others do come up with. Even if it's old stuff.

Little bit offtopic, I wonder if even the script Luth shared is hard to cheat. After all, all the potential AFK answer script needs to do is parse the text for codenumber and write ".macropass

Code: Select all

". Is it really that hard to do?

(Yeah, I know that a system that requires just a button pressing is way easier than the above version. I'm just curious.)

Posted: Tue May 20, 2008 12:16 pm
by Luth
I don't know if there are automatic parsing programs, but it wouldn't be hard (for me) to write a screen-capture and text-parsing bot to do it. However, what percentage of the UO playing population can do that? :-)

Posted: Thu May 22, 2008 6:05 am
by ncrsn
There only has to be one player with too much time in hands.

Posted: Thu May 22, 2008 6:41 pm
by *Edwards
Oh lol, you could be surprised.. "Old Memories" hehe ;)