Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[RELEASE]Map building functions
#1
This functions are made by Killingdyl in MW2, and later converted to BO by Met94.
They are not all working correctly and are not all done, so yeh have fun testing them and updating them but be sure to post updates in this topic =)


Code:
CreateBlocks(pos, angle)
{
    if(!level.CreateBunkers) return;
        block = spawn("script_model", pos, 1 );
        block setModel( level.crateModelFriendly );    
        block.angles = angle;
        wait 0.01;
}
Doors
Code:
CreateDoors(open, close, angle, size, height, hp, range)
{
    if(!level.CreateBunkers) return;
    level.doorwait = 0.7;
    offset = (((size / 2) - 0.5) * -1);
    center = spawn("script_model", open );
    for(j = 0; j < size; j++){
        door = spawn("script_model", open + (((0, 30, 0) * offset))*1.5, 1);
        door setModel( level.crateModelFriendly );    
        door EnableLinkTo();
        door LinkTo(center);
        for(h = 1; h < height; h++){
            door = spawn("script_model", open + (((0, 30, 0) * offset)*1.5) - ((55, 0, 0) * h), 1);
            door setModel( level.crateModelFriendly );    
            door EnableLinkTo();
            door LinkTo(center);
        }
        offset += 1;
    }
    center.angles = angle;
    center.state = "open";
    center.hp = hp;
    center.range = range;
    center thread DoorThink(open, close);
    center thread DoorUse();
    center thread ResetDoors(open, hp);
    wait 0.01;
}

DoorThink(open, close)
{
    while(1)
    {
        if(self.hp > 0){
            self waittill ( "triggeruse" , player );
            if(player.team == "axis"){
                if(self.state == "open"){
                    self MoveTo(close, level.doorwait);
                    wait level.doorwait;
                    self.state = "close";
                    continue;
                }
                if(self.state == "close"){
                    self MoveTo(open, level.doorwait);
                    wait level.doorwait;
                    self.state = "open";
                    continue;
                }
            }
            if(player.team == "allies"){
                if(self.state == "close"){
                    self.hp--;
                    player iPrintlnBold("HIT");
                    wait 1;
                    continue;
                }
            }
        } else {
            if(self.state == "close"){
                self MoveTo(open, level.doorwait);
            }
            self.state = "broken";
            wait .5;
            return;
        }
    }
}

DoorUse(range)
{
    self endon("disconnect");
    while(1)
    {
        for(i=0;i<level.players.size;i++)
        {
            player = level.players[i];
            if(Distance(self.origin, player.origin) <= self.range){
                if(player.team == "axis"){
                    if(self.state == "open"){
                        player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door";
                    }
                    if(self.state == "close"){
                        player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door";
                    }
                    if(self.state == "broken"){
                        player.hint = "^1Door is Broken";
                    }
                }
                if(player.team == "allies"){
                    if(self.state == "close"){
                        player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door";
                    }
                    if(self.state == "broken"){
                        player.hint = "^1Door is Broken";
                    }
                }
                //if(player isButtonPressed("X")){
                //        self notify( "triggeruse" , player);
                //}
            }
        }
        wait .045;
    }
}

ResetDoors(open, hp)
{
    while(1)
    {
        level waittill("RESETDOORS");
        self.hp = hp;
        self MoveTo(open, level.doorwait);
        self.state = "open";
    }
}
Teleportflags (Model not working correctly)
Code:
CreateElevator(enter, exit, angle, notantycamp, range)
{
    if(!level.CreateBunkers) return;
    if(!isDefined(notantycamp)) notantycamp = true;
    if(!isDefined(range)) range = 75;
    if(notantycamp) {
        flag = spawn( "script_model", enter );
        flag setModel( level.elevator_model["enter"] );
        wait 0.01;
        flag = spawn( "script_model", exit );
        flag setModel( level.elevator_model["exit"] );
    }
    wait 0.01;
    self thread ElevatorThink(enter, exit, angle, range);
}  

ElevatorThink(enter, exit, angle, range)
{
    self endon("disconnect");
    while(1)
    {
        for(i=0;i<level.players.size;i++)
        {
            player = level.players[i];
            if(Distance(enter, player.origin) <= range){
                    player SetOrigin(exit);
                    player SetPlayerAngles(angle);
            }
        }
        wait .25;
    }
}
Ramps
Code:
CreateRamps(top, bottom)
{
    if(!level.CreateBunkers) return;
    D = Distance(top, bottom);
    blocks = roundUp(D/30);
    CX = top[0] - bottom[0];
    CY = top[1] - bottom[1];
    CZ = top[2] - bottom[2];
    XA = CX/blocks;
    YA = CY/blocks;
    ZA = CZ/blocks;
    CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
    Temp = VectorToAngles(top - bottom);
    BA = (Temp[2], Temp[1] + 90, Temp[0]);
    for(b = 0; b < blocks; b++){
        block = spawn("script_model", (bottom + ((XA, YA, ZA) * B)), 1);
        block setModel( level.crateModelFriendly );    
        block.angles = BA;
        wait 0.01;
    }
    block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)), 1);
    block setModel( level.crateModelFriendly );    
    block.angles = (BA[0], BA[1], 0);
    wait 0.01;
}
Grids
Code:
CreateGrids(corner1, corner2, angle)
{
    if(!level.CreateBunkers) return;
    W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
    L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
    H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
    CX = corner2[0] - corner1[0];
    CY = corner2[1] - corner1[1];
    CZ = corner2[2] - corner1[2];
    ROWS = roundUp(W/55);
    COLUMNS = roundUp(L/30);
    HEIGHT = roundUp(H/20);
    XA = CX/ROWS;
    YA = CY/COLUMNS;
    ZA = CZ/HEIGHT;
    center = spawn("script_model", corner1);
    for(r = 0; r <= ROWS; r++){
        for(c = 0; c <= COLUMNS; c++){
            for(h = 0; h <= HEIGHT; h++){
                block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)), 1);
                block setModel( level.crateModelFriendly );    
                block.angles = (0, 0, 0);
                block LinkTo(center);
                wait 0.01;
            }
        }
    }
    center.angles = angle;
}
Walls
Code:
CreateWalls(start, end)
{
    if(!level.CreateBunkers) return;
    D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
    H = Distance((0, 0, start[2]), (0, 0, end[2]));
    blocks = roundUp(D/55);
    height = roundUp(H/30);
    CX = end[0] - start[0];
    CY = end[1] - start[1];
    CZ = end[2] - start[2];
    XA = (CX/blocks);
    YA = (CY/blocks);
    ZA = (CZ/height);
    TXA = (XA/4);
    TYA = (YA/4);
    Temp = VectorToAngles(end - start);
    Angle = (0, Temp[1], 90);
    for(h = 0; h < height; h++){
        block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)), 1);
        block setModel( level.crateModelFriendly );    
        block.angles = Angle;
        wait 0.001;
        for(i = 1; i < blocks; i++){
            block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)), 1);
            block setModel( level.crateModelFriendly );    
            block.angles = Angle;
            wait 0.001;
        }
        block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)), 1);
        block setModel( level.crateModelFriendly );    
        block.angles = Angle;
        wait 0.001;
    }
}
Cluster
Code:
CreateCluster(amount, pos, radius)
{
    for(i = 0; i < amount; i++)
    {
        half = radius / 2;
        power = ((randomInt(radius) - half), (randomInt(radius) - half), 500);
        block = spawn("script_model", pos + (0, 0, 1000), 1 );
        block setModel( level.crateModelFriendly );    
        block.angles = (90, 0, 0);
        //block PhysicsLaunchServer((0, 0, 0), power);
        block thread ResetCluster(pos, radius);
        wait 0.05;
    }
}

ResetCluster(pos, radius)
{
    wait 5;
    self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1);
    level waittill("RESETCLUSTER");
    self thread CreateCluster(1, pos, radius);
    self delete();
}

Floatval
Code:
roundUp( floatVal )
{
    if ( int( floatVal ) != floatVal )
        return int( floatVal+1 );
    else
        return int( floatVal );
}
--
Reply

#2
i allwas onederd were to put these codes lol
Reply

#3
wow! WTF MAN lol
Reply

#4
not bad, now there are many people releasing some new "maps"
Reply

#5
THX again Big Grin
Reply

#6
You don't need Solid()? O__o lol, I wonder what happens when I don't use it, never tried.
[Image: 30xhrep.png]

A casual conversation between barata and I about Nukem.
Reply

#7
It never makes your object solid.

AND FUCK THIS RETARDED CAREPACKAGE 'MAPS' AGAIN?
[Image: 1fxsnb.jpg]
Reply

#8
lol
--
Reply

#9
nice!
if you dig true the world... what comes up first your feet or your head ;qq
Reply

#10
lol i told u not to release
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  [Release] Huge Release.. Host lobbies with a BAN camxxcore 11 7,780 08-11-2013, 17:07
Last Post: SuperNovaAO
  [Release] Matrix Functions Yamato 1 2,532 07-29-2013, 20:14
Last Post: Rendflex
  kPromod 7 Release (Yes, its still going.) koil 0 3,425 07-27-2013, 10:01
Last Post: koil
  [Release] nCr and Factorial Functions Yamato 2 2,525 06-18-2013, 17:24
Last Post: Nekochan
Rainbow [Release] BadWords xtreme2010 9 8,005 06-13-2013, 12:57
Last Post: xtreme2010
Star [Release] xKMod LIVE v1.1 - Final Release | Competitive Mod XeroK 1,375 816,176 05-05-2013, 19:14
Last Post: ulli_123
Brick [Release] Health on HUD (no crash :D) xtreme2010 3 5,983 04-21-2013, 00:20
Last Post: CHRISLUVMSR
  [Release] Random Functions 1.1 Yamato 22 12,359 04-20-2013, 10:13
Last Post: Dominator56
Brick [Release] Updated server addon release (solid models) estebespt 51 24,456 12-10-2012, 20:24
Last Post: JariZ
  [release] Slender Mod tonymamoni1 6 7,242 12-10-2012, 18:06
Last Post: Stormzy123

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum Powered By MyBB, Theme by © 2002-2024 Melroy van den Berg.