Board ArchivesSite FeaturesActiveworlds SupportHistoric Archives |
codewarrior // User Search
codewarrior // User SearchSpecial AV's Question..hehJul 16, 2003, 2:15pm
The only real difference is that there is an actual entry in the avatars.dat
file for them. As the information on the page Stacee cites points out, the .seq for the special avatars as well as their names are not taken from the avatars.dat file at all, they are hard coded. So by putting the entries into the avatars.dat file, you are basically creating a non-special special avatar. The only thing really special about the standard special avatars is that you must be a public speaker to use them. Putting them into avatars.dat allows anyone to use them. [View Quote] Special AV's Question..hehJul 16, 2003, 3:29pm
Ahhh.. so there is now a 'special' tag in the avatars.dat that is
almost the same as the 'avatar' tag.. to the point that is must be matched up with an 'endavatar' tag, and avatars defined this way can only be used by public speakers? Cool! Document it :-) [View Quote] Re: Please read / AW HACKEDJul 17, 2003, 12:13pm
Yep... it works as well. Typically though, a couple of times a day the
connection will go down briefly for whatever reason, and then the bot can't log back in. You don't need to even have a PPW either. If I'm not doing anything that requires one.. I set it to nothing, and then noone can log in using any PPW. [View Quote] multipath scriptJul 24, 2003, 11:02am
if ($Content = strrchr ($QUERY_STRING, '.'))
{ if (stristr ($Content, ".zip")) Header ("Content-Type: application/zip"); else if (stristr ($Content, ".mp3")) Header ("Content-Type: application/mp3"); else Header ("Content-type: image/jpeg"); } > if ($Content = strrchr ($QUERY_STRING, '.')) > { > if (stristr ($Content, ".zip")) > Header ("Content-Type: application/zip"); > else > Header ("Content-type: image/jpeg"); > } multipath scriptJul 24, 2003, 12:05pm
This is an example of how the 3.4 browser referrer string can be
used to deny leeches the use of your object path. You must enable the referer string option for your world. If you can't read code, comprehend what applies to you, and ignore things that an experienced coder will see obviously need to be changed to work with your own OP, just ignore this post. Sorry about the formatting. I messed it up intentionally to bait the anal people into starting a flamefest. -- if (!empty($HTTP_REFERER)) { // potential 3.4 browser $a1 = explode("/", $HTTP_REFERER, 4); $a2 = explode(":", $a1[2], 3); $world = $a1[3]; $server = $a2[0]; $port = $a2[1]; // this switch needs to really be a // loop that checks a subscriber database switch($port) { case "5670": // Main AW Universe switch($world) { case "xxxxxxxx": $Leech = false; break; } break; case "5685": // Main OW Universe switch($world) { case "cwlab": $Leech = false; break; } break; case "5702": // AW Europe switch($world) { case "xxxx": case "cwlab": case "xxx": case "xxxxxxx": $Leech = false; break; } break; default: break; } // if it is not a leech, point the path at the real objects if ($Leech == false) { $ObPath = REAL_PATH; } } else { // probably a 3.3 browser // Let the megapath sort it all out header("Location: ". REDIRECT_PATH . $QUERY_STRING); exit; } if ($Leech == true) { // Record info about the request LeechLog(); Header('Status: 403 Not Authorized'); exit; } .... process the request normally multipath scriptJul 24, 2003, 1:11pm
Here is another snippet. This one checks to see if the request is coming
from an AW browser. This can easily be spoofed, but it will mean someone needs to actually do some work to rip you off. This will allow both 3.3 and 3.4 browsers to access your path. -- define(BROWSER_AGENT_ACCEPT, "ActiveWorlds"); define(BROWSER_AGENT_ACCEPT2, "Active Worlds Browser"); $agent = explode("/", $_SERVER['HTTP_USER_AGENT']); if ($agent[0] != BROWSER_AGENT_ACCEPT) { if ($agent[0] != BROWSER_AGENT_ACCEPT2) { Snooper(); // log this and then die } } ... process the request normally multipath scriptJul 25, 2003, 11:32am
There was another thing noone mentioned. My previous code should have
defined $Leech = true at the beginning before any of the other code. [View Quote] The method shown will log each attempt to access your path by inreasing the log file size. This introduces a vulnerability to a type of DOS attack. A malicious person could simply hammer your OP repeatedly, causing the log file to increase in size in an unbounded manner until your OP space is all used up, and your performance would begin to degrade well in advance as the log file gets bigger and bigger. Here is a function (sorry about the formatting again) that will record leech attempts in a log file, but will only record one line for each world that is trying to leech. This will keep the leech log file from growing unbounded. Notice also that it is the REFERER that should be logged. The REMOTE_ADDR in this case is just someone who is visiting a world that is trying to leech off your path. The REFERER will be blank if the leech is not a 3.4 world, or it will actually tell you which world is trying to leech your objects if it is a 3.4 world. Also note the use of the ' at ' in front of many functions to prevent them from printing errors into your HTML document if they fail for some reason. PHP functions often print information you don't want people to see, and if the script wishes to do something more such as creating 'fake' objects or textures to give to leech attempts, error messages in the HTTP stream will corrupt the stream and cause them to be unrecognized as valid MIME objects. The code is loosely based of some page hit counter code. It really should use a database to record this kind of thing. -- function LeechLog() { $cnt = 0; $found = "false"; $filename = LOG_PATH."leech.counter"; // potential 3.4 browser $a1 = explode("/", $_SERVER['HTTP_REFERER'], 4); $a2 = explode(":", $a1[2], 3); $world = $a1[3]; $server = $a2[0]; $port = $a2[1]; $agent = explode("/", $_SERVER['HTTP_USER_AGENT'], 2); // it's good practice to limit the size of any string that came from the // outside world so as to protect against buffer overrun based hacks // we plan to sprintf these all into a buffer, so clean them up a bit if (strlen($agent) > 16) $agent = substr($agent, 0, 16); if (strlen($world) > 16) $world = substr($world, 0, 16); if (strlen($server) > 16) $server = substr($server, 0, 16); if (strlen($port) > 5) $port = substr($port, 0, 5); $key = sprintf("%16s%5s%16s", $server, $port, $world); if (file_exists ($filename)) { $fp = at fopen($filename,"r+"); } else { $fp = at fopen($filename,"w"); } if ($fp) { $offset = 0; $cnt = 1; while (($found == "false") && ($row = at fgets($fp,4096))) { $cols = explode(";",$row); $cols[1] = trim($cols[1]); if ($cols[0] == $key) { $cnt = ++$cols[1]; $record = sprintf("%s;%8d;%16s\n", $key, $cnt, $_SERVER['HTTP_USER_AGENT']); at fseek($fp,$offset); at fputs($fp, $record); $found = "true"; } $offset = at ftell($fp); } at fclose($fp); } if ($found=="false") { // no record found $fp = at fopen($filename,"a"); if ($fp) { // record 1 offense $record = sprintf("%s;%8d;%16s\n", $key, 1, $_SERVER['HTTP_USER_AGENT']); at fputs($fp, $record); at fclose($fp); } } } multipath scriptJul 25, 2003, 12:28pm
<note the use of "sandwich" posting>
[View Quote] My strategy for dealing with the avatars.zip and the terrains is to do as I think Alex suggested... Refuse to do anything at all to try to fix them :-P AW needs to simply add a per world name for the avatars.zip file, and a per world prefix for the terrain texture names. I suspect it's ugly to do the avatars.dat file because I think it may be built into the browser. If this info starts to come from the server in some future version, they will not have an easy choice of what to do when the browser enters an older world whose server doesn't provide the info. They could make the browser try to read a file called avatar_config.dat from your OP path though. It doesn't exist on older OPs, so if it doesn't exist, they can go ahead and do what they do now. If said file does exist, it could contain a list of names of files associated with particular worlds such that the browser could determine if it was in one of the worlds listed, and load the appropriate files. If the user is in none of the listed worlds, then it would fall back to loading the avatars.dat as it does now, and using 'terrain' as the prefix for the terrain textures. An alternative would be to extend the capabilities within the existing avatars.dat file format to allow each avatar listed to have a list of worlds it may appear in. This would be a very ugly way to do it, but it would be better than nothing, although it doesn't at all address the issue of all the terrain texture names being the same. Another alternative would simply be to pre-pend the world name in front of the filename with an underscore and just try to read that file first... i.e. look for cwlab_avatars.dat first, and try to load cwlab_terrainXX.jpg. This is a bit ugly too.. an actual configuration file would be much more preferable. Many of the things that would make life easier for OP path hosters and people trying to make dynamic content based on server side scripting could be done without having to expose GUI based methods to set up and control them. There is no built in GUI based mechanism for editing the avatars.dat file for example, so the precedent has already been set for controlling aspects of your world via a text file on your OP path with no GUI tools for doing so provided in the browser. In addition to not requiring GUI tools for such things, the *world* server would not need to keep track of this information. I suspect that AW is loathe to do anything with the world server code and protocols, and I don't blame them. Changing the way that works should not be treated lightly, but adding additional text files to your OP path to control some new features should be a pretty simple and safe way to go about some things. > sorry > So how would the mutlipath deal with the avatar.zips? Man im being a pain.. news:3f209886 at server1.Activeworlds.com... [View Quote] <note the use of "sandwich" posting> Help Please?Aug 26, 2003, 1:59am
Whatever someone ends up convincing you to use, just don't put your
credit card numbers on it, and don't let it play with your other computers if you have any. I didn't know they had a KF Server... if it's anything like their chicken it sounds tasty. Don't go near the MacServer... it can serve billions, but you probably want to have some idea what they're actually being served. [View Quote] How to Prove ItAug 30, 2003, 4:52pm
Does he mention proof by "while you twits were arguing
around the blackboard I built one and it works"? :-) PS - "it's now patented"! [View Quote] too much tensionSep 21, 2003, 2:51am
There is far too much tension in these newsgroups, so I thought
I would do my little part to try to help out. I have hired a masseuse and a masseur to give everyone a massage... Helga... Benito... do your stuff.... WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA WHAPPA There.. now doesn't everyone feel better? 3.4 Users?Oct 16, 2003, 3:31pm
A lot of world owners are very eager to see everyone using 3.4 when you
demonstrate that some if it's features can go a long way toward deterring other worlds from leeching from your object path. [View Quote] TrueSpace-accutrans errors in AWOct 19, 2003, 3:13pm
You've actually uploaded the .cob file
It may even be sitting in your cache if you put the wrong kind there and then wrote the right kind on top after. Rename the model (add a 0 at the end or something) and redo the translation in Accutrans, and make sure that it's really the .rwx file you upload. Alternatively, just use the .cob model directly (put it in a .zip of course), and in the build dialog make sure you put object.cob as it's name. [View Quote] Something's not right!Oct 31, 2003, 11:18am
Since the 'float' depends on what you set your 'don't let the framerate
go below ??', why not try setting your desired framerate very high. Also, why not look into using the Settings->Advanced->Local Path feature so that the browser will look for objects on your local hard disk before trying to get them from your actual HTTP server. If you are willing to do what you are doing backing up your cache, using the "Local Path" option is definitely what you should do instead. Finally, if your object path is serving objects out through a PHP script, there is a pretty good chance that no matter what you do, objects will be downloaded every time you go into your world. This isn't AW's fault.. it's the server and script's fault. [View Quote] This is a really silly questionNov 30, 2003, 11:21am
Wait in line until one is empty, then put a quarter in the door and
enter. Don't forget to flush! [View Quote] AW Map scriptDec 5, 2003, 2:46pm
The teleport mechanism is not documented anywhere.
Send email to support at activeworlds.com They will give you the same info they gave me a while ago. Essentially, it's a MIME type and a file association in your Windows registry that allows you to invoke the browser and send it a DDX message telling it where you want it to go. The DDX message could actually be used from any windows app to send you somewhere, and you can even create little text files with teleport targets in them and just double click them from your desktop to go to a specific place. Since it's not documented though, it's not really official. I stopped wasting time on it because the email from their support essentially said that it's 'unsupported'. The mechanism also does not work in other Universes. It can be made to work, but as said.. it's an unsupported feature. Why spend time on something when the company that made it doesn't even support it? I guess they are happy enough that it works for them in their own worlds in their own Universe.... like the "Search" tab in AW and no other universe. [View Quote] AW Map scriptDec 6, 2003, 1:05am
This tells you how to get your browser to invoke AWorlds and take you
to a certain place in AW when you go to this particular server. This does not tell you how to teleport someone to somewhere in your own world using your own server. For this you need to know what is actually inside a MIME attachment of type application/x-activeworld, and I don't think that information is documented anywhere. And when you figure out how it works, you realize that it will only work for the main Active Worlds Universe without a lot of manual fiddling around and/or creating additional MIME types for each universe. [View Quote] Thanks to AWDec 5, 2003, 2:49pm
Amidst all the griping (of which I am certainly guilty), it's nice to hear
something positive about what they are doing. Very encouraging to hear them assisting Universe owners like that. [View Quote] Microsoft and Borland Join Forces to Protect CompilersDec 8, 2003, 9:57pm
In a surprise move that stunned the industry and left Borland
representatives slack jawed. M$ announced it will sidestep the virus with a scopeless language. "It's really just the logical extension of the .NET framework" said Mike Tiggins, chief architect at the software giants computer language research division. "Our research has shown that lining up brackets is what gives people the most trouble so we remeoved them from the language entirely" Gone also is the position dependence of code. Every line in a Visual C+- (pronounced Visual C give or take a little) can be positioned anywhere in the code without affecting the programs operation. "People always remember code they should have put somewhere well after they have moved to another section of the program. Now they can just type in the appropriate source as they remember it and we'll move it to where we think it should go" Programmers will not be the only ones to enjoy the benefits of Visual C+-. Users as well will find it easier to use programs created with the new set of tools slated to ship early in the new year. "Users complain about having to learn new tools with each application. Using our tools guarantees that your app looks exactly the same as any other app, so users will quickly learn how to invoke the spell checking function" When asked about applications in which a spell checking function makes no sense, the spokesperson declined to answer and called a quick end to the press conference. [View Quote] Microsoft and Borland Join Forces to Protect CompilersDec 9, 2003, 4:16am
[View Quote]
I invoked my internal AppWizard.. answered some simple questions.. and
out it came. Of course it's all BS just like an AppWizard framework. If you look closely it's not real. Men and Housework...Dec 15, 2003, 6:04am
You can't use that as an excuse if you *intentionally* break
it just to avoid cleaning.... [View Quote] GK'sDec 19, 2003, 9:47am
[View Quote]
Even truck drivers have the courtesy to either eat at truck stops
where the rules are a little looser or to watch their language when they eat at a 'family' restaurant. Find a bunch of truck drivers, and then curse out some child in front of them and see if they don't take you aside and educate you about the 'rules' of swearing.... I was not raised with a 'strict Catholic upbringing'. Cross me the wrong way and profanity can come out of my mouth that would make a truck driver blush. If you overheard me when I'm alone and working on something, you'd wonder if it wasn't Andrew Dice Clay sometimes. But when I'm in a public place like AWGate, I watch my language. It's called 'common courtesy'. It's a form of respect. Going into AWGate and hassling the GK's is disrespectful. I have no respect for any of you who do it. You have 1000 worlds to hang out in and do whatever you want. The only reason for you to hang out in the gate is to flaunt your disrespect, and it's BS to say that you've tried hanging out in other worlds but they are empty. Maybe they are empty because people don't *want* to hang out with a bunch of disrespectful people. Maybe not everyone *wants* to swear.. even if they are not Catholic. It's possible to hang at the gate and have fun, and even have some fun joking around *with* the GK's. Note that I said *with* them and not *at* them. GK's are people and all people deserve respect. I suspect a lot of you who don't believe that will learn it when you get your first job at McDonalds, and people start to treat you like a piece of shit simply because you are wearing a particular uniform and you say "would you like fries with that" a lot. An idea, for everyoneDec 19, 2003, 3:43pm
An idea, for everyoneDec 20, 2003, 1:39am
Actually Rossyboy.. you have the right idea with what you're
saying here. AW is a business, and they are trying to be a place where people with many different levels of tolerance for language and discussion topics can hang out. It only makes sense to rank those tolerance levels from least tolerant to most tolerant, and to have the people who have not chosen yet's first experience be the least 'risky' place. People who can tolerate foul language or sensitive discussion topics can certainly also tolerate the lack of foul language or sensitive topics, so there shouldn't be a problem if they enter and don't see a lot of swearing or rude behaviour. You know as well as I do that they won't have to look far to find it. But you can't bring people who might be offended by that kind of thing in to a place where it will be happening and then tell them to go somewhere else. It just won't work. So what you are saying is the most sensible thing to do, and if you are the new leader at vwtv, then I don't think you'll have too tough a time turning it into a great VR station. You seem to have the ability to think clearly, and you seem to be able to see the other persons side of an issue. If you ever want to be a journalist, then both of those abilties are vital. [View Quote] An idea, for everyoneDec 20, 2003, 1:41am
An idea, for everyoneDec 20, 2003, 9:57pm
An idea, for everyoneDec 20, 2003, 9:58pm
Aha!!
I've been looking for that angst for days. I need to make some angst pudding to put out for Santa on XMas eve [View Quote] Regarding GK'sDec 20, 2003, 11:14pm
[View Quote]
At least the marketing weenies had the sense to make him
remove the "impregnate virgin" button. PRIVATE POST:Do not read this post!Dec 18, 2003, 12:29am
|