How v3 Games Work
v3 Arcade games are a little different to those in the original Arcade and futureal's proArcade.
Instead of a simple getURL which sends all of the variables to the next page, the v3 Arcade uses a completely different system - a series of sendAndLoad events where data is sent and received between the Flash file and vBulletin. As a result, converting games for the v3 Arcade is a little more complicated.
To get games working with the v3 Arcade, a piece of code needs to be inserted which will run on every frame of the Flash movie. (I.e. one looped movieclip which is active across all frames.) A variable also needs to be set to tell the v3 Arcade code when to end the game.
EDIT: INSTRUCTIONS UPDATED TO MAKE THE PROCESS A LOT EASIER!
Converting Games
Converting a game is quite simple, providing you have some basic knowledge of Flash.
Step 1.
Create a blank movie clip, containing two keyframes.
Step 2.
On frame 1 of this blank movieclip, insert this code (not forgetting to change the gamename value to something unique - THIS PRESUMES THAT _root.score CONTAINS THE SCORE VALUE!):
Code:
// HERE THE ARCADE SESSION IS INITIATED
// DON'T FORGET TO CHANGE THE GAMENAME VALUE!
if (this.sessionstarted != 1) {
this.arcade = new LoadVars();
this.sessionvars = new LoadVars();
this.arcade.gamename = "towerball";
this.arcade.sessdo = "sessionstart";
this.arcade.sendAndLoad("arcade.php", sessionvars, "POST");
this.sessionstarted = 1;
}
// IF GAMEOVER=1, SUBMIT THE SCORE AND REDIRECT THE PAGE
if (_root.gameover == 1) {
if ((this.askpermission != 1) && (this.sessionvars.connStatus == 1)) {
this.prequestvars = new LoadVars();
this.pranswer = new LoadVars();
this.prequestvars.gametime = this.sessionvars.gametime;
this.prequestvars.fakekey = this.sessionvars.initbar;
if (_root.score == 0) {
this.prequestvars.score = -1;
} else {
this.prequestvars.score = _root.score;
}
this.prequestvars.id = this.sessionvars.lastid;
this.prequestvars.sessdo = "permrequest";
this.prequestvars.note = (this.prequestvars.id*this.prequestvars.score*this.prequestvars.fakekey);
this.prequestvars.sendAndLoad("./arcade.php", this.pranswer, "POST");
this.askpermission = 1;
}
if ((this.pranswer.validate == 1) && (this.finalsent != 1)) {
this.burnscore = new LoadVars();
this.burnscore.microone = this.pranswer.microone;
this.burnscore.gametime = this.prequestvars.gametime;
this.burnscore.id = this.prequestvars.id;
if (_root.score == 0) {
this.burnscore.noscore = 1;
}
this.burnscore.sessdo = "burn";
this.burnscore.send("./arcade.php", "_self", "POST");
this.finalsent = 1;
}
}
Step 3.
Now, you need to let the game know when to finish the game and redirect the page. This is done by the setting of a new variable, "gameover". When _root.gameover==1, the game will end.
Find the frame of the "Game Over" page, and add this actionscript to the frame:
Save, and export the SWF movie to the appropriate place.