HTML Code:
function onActionServerSide(action, mapx, mapy) {
if (action=="warpme") {
player.x = mapx*64+30;
player.y = mapy*64+30;
player.z = 0;
if (getz(player.x,player.y)>=30)
player.y += 64;
player.triggerclient("weapon",this.name,"warped");
}
}
//#CLIENTSIDE
const maptilew = 112;
function onPlayerChats() {
if (player.chat==":generatemap") {
player.chat = "";
generateMap();
}
}
//--- Map generation ---
function generateMap() {
this.generatemapx = 0;
this.generatemapy = 0;
this.generatemapw = 14;
this.generatemaph = 19;
// this.buffer = new TDrawingPanel();
// this.buffer.setsize(maptilew*this.generatemapw, maptilew*this.generatemaph);
this.buffer = new GuiDrawingPanel("MapGenerator_Panel");
this.buffer.resize(0, 0, maptilew*this.generatemapw, maptilew*this.generatemaph);
this.buffer.visible = false;
this.currentmapx = this.generatemapx;
this.currentmapy = this.generatemapy;
sendWarpRequest();
}
function onActionClientSide(action) {
if (action=="warped")
generateImagesForLevel();
}
function generateImagesForLevel() {
for (temp.x=0; temp.x<2; temp.x++) {
for (temp.y=0; temp.y<2; temp.y++)
saveScreenShot(this.currentmapx*64+temp.x*32,
this.currentmapy*64+temp.y*32);
}
this.currentmapx++;
if (this.currentmapx>=this.generatemapx+this.generatemapw) {
this.currentmapx = this.generatemapx;
this.currentmapy++;
}
if (this.currentmapy<this.generatemapy+this.generatemaph)
sendWarpRequest();
else {
// Done
player.z = -51;
this.buffer.saveimage("graalmap.png");
this.buffer.destroy();
}
}
function sendWarpRequest() {
triggerserver("weapon",this.name,"warpme",this.currentmapx,this.currentmapy);
}
function saveScreenShot(x, y) {
jpegquality = 90;
makescreenshot2("temp_mapgenerate.jpg", 0x4, x,y,0,512,512);
this.buffer.drawimagestretched(
(x - this.generatemapx*64)*maptilew/64,
(y - this.generatemapy*64)*maptilew/64,
maptilew/2,maptilew/2,
"temp_mapgenerate.jpg", 0,0,512,512);
}
use dis