Thread: Update minimap
View Single Post
  #23  
Old 04-30-2011, 09:08 AM
xAndrewx xAndrewx is offline
Registered User
xAndrewx's Avatar
Join Date: Sep 2004
Posts: 5,260
xAndrewx has much to be proud ofxAndrewx has much to be proud ofxAndrewx has much to be proud ofxAndrewx has much to be proud ofxAndrewx has much to be proud ofxAndrewx has much to be proud ofxAndrewx has much to be proud of
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
__________________
Reply With Quote