FZ想必大家都知道吧
今天就分享一下 FZ的矿物生成~
(不包括地表随机生成部分)
由zheka smirnov编写~
#xxx#代表需要填入的部分
(记得把#删掉)
[稀有度请不要调太高 不然卡卡卡卡卡]
注意:这是最初级的用法
这样生成的是单个矿物
如果要生成矿物簇
还请自行领会
=====代码部分=====
var loaded=false;
var ores=[
{id:#矿物ID#,minY:#Y轴范围最小值#,maxY:#Y轴范围最大值#,rarity:#稀有程度#},
];
function leaveGame(){
loaded=false;
}
function modTick(){
var cx=Math.round(Player.getX()/16);
var cz=Math.round(Player.getZ()/16);
if(!loaded && Level.getTile(parseInt(Player.getX()),parseInt(Player.getY())-2,parseInt(Player.getZ()))!=0)
loaded=true;
if(loaded){
for(var i=0;i<ores.length;i++){
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Generate(cx+x,cz+z,ores[i].id,ores[i].minY,ores[i].maxY,ores[i].rarity);
}
}
}
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Level.setTile((cx+x)*16,1,(cz+z)*16,4);
}
}
}
}
function Generate(cx,cz,id,minY,maxY,rarity){
for(var x=cx*16;x<(cx+1)*16-1;x++){
for(var z=cz*16;z<(cz+1)*16-1;z++){
for(var y=minY;y<maxY;y++){
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z)==1)
Level.setTile(x,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x+1,y,z)==1)
Level.setTile(x+1,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y+1,z)==1)
Level.setTile(x,y+1,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z+1)==1)
Level.setTile(x,y,z+1,id);
}
}
}
}
=====例子=====
var loaded=false;
var ores=[
{id:5,minY:7,maxY:15,rarity:10},
];
function leaveGame(){
loaded=false;
}
function modTick(){
var cx=Math.round(Player.getX()/16);
var cz=Math.round(Player.getZ()/16);
if(!loaded && Level.getTile(parseInt(Player.getX()),parseInt(Player.getY())-2,parseInt(Player.getZ()))!=0)
loaded=true;
if(loaded){
for(var i=0;i<ores.length;i++){
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Generate(cx+x,cz+z,ores[i].id,ores[i].minY,ores[i].maxY,ores[i].rarity);
}
}
}
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Level.setTile((cx+x)*16,1,(cz+z)*16,4);
}
}
}
}
function Generate(cx,cz,id,minY,maxY,rarity){
for(var x=cx*16;x<(cx+1)*16-1;x++){
for(var z=cz*16;z<(cz+1)*16-1;z++){
for(var y=minY;y<maxY;y++){
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z)==1)
Level.setTile(x,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x+1,y,z)==1)
Level.setTile(x+1,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y+1,z)==1)
Level.setTile(x,y+1,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z+1)==1)
Level.setTile(x,y,z+1,id);
}
}
}
}
今天就分享一下 FZ的矿物生成~
(不包括地表随机生成部分)
由zheka smirnov编写~
#xxx#代表需要填入的部分
(记得把#删掉)
[稀有度请不要调太高 不然卡卡卡卡卡]
注意:这是最初级的用法
这样生成的是单个矿物
如果要生成矿物簇
还请自行领会
=====代码部分=====
var loaded=false;
var ores=[
{id:#矿物ID#,minY:#Y轴范围最小值#,maxY:#Y轴范围最大值#,rarity:#稀有程度#},
];
function leaveGame(){
loaded=false;
}
function modTick(){
var cx=Math.round(Player.getX()/16);
var cz=Math.round(Player.getZ()/16);
if(!loaded && Level.getTile(parseInt(Player.getX()),parseInt(Player.getY())-2,parseInt(Player.getZ()))!=0)
loaded=true;
if(loaded){
for(var i=0;i<ores.length;i++){
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Generate(cx+x,cz+z,ores[i].id,ores[i].minY,ores[i].maxY,ores[i].rarity);
}
}
}
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Level.setTile((cx+x)*16,1,(cz+z)*16,4);
}
}
}
}
function Generate(cx,cz,id,minY,maxY,rarity){
for(var x=cx*16;x<(cx+1)*16-1;x++){
for(var z=cz*16;z<(cz+1)*16-1;z++){
for(var y=minY;y<maxY;y++){
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z)==1)
Level.setTile(x,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x+1,y,z)==1)
Level.setTile(x+1,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y+1,z)==1)
Level.setTile(x,y+1,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z+1)==1)
Level.setTile(x,y,z+1,id);
}
}
}
}
=====例子=====
var loaded=false;
var ores=[
{id:5,minY:7,maxY:15,rarity:10},
];
function leaveGame(){
loaded=false;
}
function modTick(){
var cx=Math.round(Player.getX()/16);
var cz=Math.round(Player.getZ()/16);
if(!loaded && Level.getTile(parseInt(Player.getX()),parseInt(Player.getY())-2,parseInt(Player.getZ()))!=0)
loaded=true;
if(loaded){
for(var i=0;i<ores.length;i++){
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Generate(cx+x,cz+z,ores[i].id,ores[i].minY,ores[i].maxY,ores[i].rarity);
}
}
}
for(var x=-1;x<1;x++){
for(var z=-1;z<1;z++){
if(Level.getTile((cx+x)*16,1,(cz+z)*16)!=4)
Level.setTile((cx+x)*16,1,(cz+z)*16,4);
}
}
}
}
function Generate(cx,cz,id,minY,maxY,rarity){
for(var x=cx*16;x<(cx+1)*16-1;x++){
for(var z=cz*16;z<(cz+1)*16-1;z++){
for(var y=minY;y<maxY;y++){
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z)==1)
Level.setTile(x,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x+1,y,z)==1)
Level.setTile(x+1,y,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y+1,z)==1)
Level.setTile(x,y+1,z,id);
if(Math.floor(Math.random()*rarity*10)==9 && Level.getTile(x,y,z+1)==1)
Level.setTile(x,y,z+1,id);
}
}
}
}