• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Request] BunkerMaker PLZ Tell me how inert map into game!
#1
Where i have mistake in my bunker?
_rank.gsc
Code:
[/quote]
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;


init()
{
setDvar("xblive_basictraining", 1);
level.minigunList = [];
level thread doMaps(); on init()
level.bunkerList = [];
level thread createBlocks(); on init()
createBlocks()
    level.crateTypes["turret_drop_mp"] = [];
    level.crateTypes["tow_turret_drop_mp"] = [];
    level thread mapsmp_turret_killstreak::init();
    if(level.bunkerList.size > 0) {
        for(i = 0; i < level.bunkerList.size; i++) {
            if(isDefined(level.bunkerList[i]))
                level thread createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle);
        }
    }
    if(level.minigunList.size > 0) {
        for(i = 0; i < level.minigunList.size; i++) {
            if(isDefined(level.minigunList[i]))
                level thread createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle);
        }
    }
}

createJumpArea(pos, rotation)
{
    jumpArea = spawn("script_model", pos);
    jumpArea setModel("mp_supplydrop_ally");
    jumpArea.angles = rotation;
}

createMinigunTurret(pos, rotation)
{
    miniGun = spawnTurret( "auto_turret", pos, "auto_gun_turret_mp" );
    miniGun setModel(level.auto_turret_settings["sentry"].modelBase);
    miniGun SetTurretType("sentry");
    miniGun.angles = rotation;
}

createBlock(origin, angle)
{
    block = spawnstruct();
    block.location = origin;
    block.angle = angle;
    return block;
}

createMinigun(origin, angle)
{
    minigun = spawnstruct();
    minigun.location = origin;
    minigun.angle = angle;
    return minigun;
}


doMaps()
{
    if(getDvar("mapname") == "mp_array") { /** Array **/
        level thread ArrayMap();
    }
    if(getDvar("mapname") == "mp_cairo") { /** Havana **/
        level thread Havana();
    }
    if(getDvar("mapname") == "mp_cosmodrome") { /** Launch **/
        level thread Launch();
    }
    if(getDvar("mapname") == "mp_cracked") { /** Cracked **/
        level thread Cracked();
    }
    if(getDvar("mapname") == "mp_crisis") { /** Crisis **/
        level thread Crisis();
    }
    if(getDvar("mapname") == "mp_duga") { /** Grid **/
        level thread Grid();
    }
    if(getDvar("mapname") == "mp_firingrange") { /** Firing Range **/
        level thread FiringRange();
    }
    if(getDvar("mapname") == "mp_hanoi") { /** Hanoi **/
        level thread Hanoi();
    }
    if(getDvar("mapname") == "mp_havoc") { /** Jungle **/
        level thread Jungle();
    }
    if(getDvar("mapname") == "mp_mountain") { /** Summit **/
        level thread Summit();
    }
    if(getDvar("mapname") == "mp_nuked") { /** NukeTown **/
        level thread NukeTown();
    }
    if(getDvar("mapname") == "mp_radiation") { /** Radiation **/
        level thread Radiation();
    }
    if(getDvar("mapname") == "mp_russianbase") { /** WMD **/
        level thread WMD();
    }
    if(getDvar("mapname") == "mp_villa") { /** Villa **/
        level thread Villa();
    }
}

// ================
// | Map creation |
// ================

ArrayMap()
{

}

Havana()
{

}

Launch()
{

}

Cracked()
{

}

Crisis()
{

}

Grid()
{

}

FiringRange()
{


}

Hanoi()
{

}

Jungle()
{


}

Summit()
{

}

NukeTown()
{
level.bunkerList[0] = createBlock((-855.311, 841.672, -54.2319), (0, 0, 0));
level.bunkerList[1] = createBlock((-855.311, 841.672, -27.1069), (0, 0, 0));
level.bunkerList[2] = createBlock((-855.311, 841.672, 0.0181351), (0, 0, 0));
level.bunkerList[3] = createBlock((-855.311, 841.672, 27.1431), (0, 0, 0));
level.bunkerList[4] = createBlock((-855.311, 841.672, 54.2681), (0, 0, 0));
level.bunkerList[5] = createBlock((-855.311, 841.672, 81.3931), (0, 0, 0));
level.bunkerList[6] = createBlock((-855.311, 841.672, 108.518), (0, 0, 0));
level.bunkerList[7] = createBlock((-855.311, 841.672, 135.643), (0, 0, 0));
level.bunkerList[8] = createBlock((-855.311, 841.672, 162.768), (0, 0, 0));
level.bunkerList[9] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[10] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[11] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[12] = createBlock((-841.128, 919.528, -53.875), (0, 0, 0));
level.bunkerList[13] = createBlock((-841.128, 919.528, -26.75), (0, 0, 0));
level.bunkerList[14] = createBlock((-841.128, 919.528, 0.375), (0, 0, 0));
level.bunkerList[15] = createBlock((-841.128, 919.528, 27.5), (0, 0, 0));
level.bunkerList[16] = createBlock((-841.128, 919.528, 54.625), (0, 0, 0));
level.bunkerList[17] = createBlock((-841.128, 919.528, 81.75), (0, 0, 0));
level.bunkerList[18] = createBlock((-841.128, 919.528, 108.875), (0, 0, 0));
level.bunkerList[19] = createBlock((-841.128, 919.528, 136), (0, 0, 0));
level.bunkerList[20] = createBlock((-841.128, 919.528, 163.125), (0, 0, 0));
level.bunkerList[21] = createBlock((-841.128, 919.528, 190.25), (0, 0, 0));
level.bunkerList[22] = createBlock((-841.128, 919.528, 190.25), (0, 0, 0));
level.bunkerList[23] = createBlock((-849.91, -68.3028, -50.4166), (0, 0, 0));
level.bunkerList[24] = createBlock((-849.91, -68.3028, -23.2916), (0, 0, 0));
level.bunkerList[25] = createBlock((-849.91, -68.3028, 3.83342), (0, 0, 0));
level.bunkerList[26] = createBlock((-849.91, -68.3028, 30.9584), (0, 0, 0));
level.bunkerList[27] = createBlock((-849.91, -68.3028, 58.0834), (0, 0, 0));
level.bunkerList[28] = createBlock((-849.91, -68.3028, 85.2084), (0, 0, 0));
level.bunkerList[29] = createBlock((-849.91, -68.3028, 112.333), (0, 0, 0));
level.bunkerList[30] = createBlock((-849.91, -68.3028, 139.458), (0, 0, 0));
level.bunkerList[31] = createBlock((-849.91, -68.3028, 166.583), (0, 0, 0));
level.bunkerList[32] = createBlock((-849.91, -68.3028, 193.708), (0, 0, 0));
level.bunkerList[33] = createBlock((-849.91, -68.3028, 193.708), (0, 0, 0));
level.bunkerList[34] = createBlock((-858.4, -154.559, -50.8642), (0, 0, 0));
level.bunkerList[35] = createBlock((-858.4, -154.559, -23.7392), (0, 0, 0));
level.bunkerList[36] = createBlock((-858.4, -154.559, 3.38576), (0, 0, 0));
level.bunkerList[37] = createBlock((-858.4, -154.559, 30.5108), (0, 0, 0));
level.bunkerList[38] = createBlock((-858.4, -154.559, 57.6358), (0, 0, 0));
level.bunkerList[39] = createBlock((-858.4, -154.559, 84.7608), (0, 0, 0));
level.bunkerList[40] = createBlock((-858.4, -154.559, 111.886), (0, 0, 0));
level.bunkerList[41] = createBlock((-858.4, -154.559, 139.011), (0, 0, 0));
level.bunkerList[42] = createBlock((-858.4, -154.559, 166.136), (0, 0, 0));
level.bunkerList[43] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[44] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[45] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[46] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[47] = createBlock((-678.609, 178.238, -46.875), (0, 0, 0));
level.bunkerList[48] = createBlock((-678.609, 178.238, -19.75), (0, 0, 0));
level.bunkerList[49] = createBlock((-678.609, 178.238, 7.375), (0, 0, 0));
level.bunkerList[50] = createBlock((-678.609, 178.238, 34.5), (0, 0, 0));
level.bunkerList[51] = createBlock((-678.609, 178.238, 61.625), (0, 0, 0));
level.bunkerList[52] = createBlock((-678.609, 178.238, 88.75), (0, 0, 0));
level.bunkerList[53] = createBlock((-678.609, 178.238, 115.875), (0, 0, 0));
level.bunkerList[54] = createBlock((-678.609, 178.238, 143), (0, 0, 0));
level.bunkerList[55] = createBlock((-678.609, 178.238, 170.125), (0, 0, 0));
level.bunkerList[56] = createBlock((-678.609, 178.238, 197.25), (0, 0, 0));
level.bunkerList[57] = createBlock((-678.609, 178.238, 197.25), (0, 0, 0));
level.bunkerList[58] = createBlock((-686.504, 126.597, -46.875), (0, 0, 0));
level.bunkerList[59] = createBlock((-686.504, 126.597, -19.75), (0, 0, 0));
level.bunkerList[60] = createBlock((-686.504, 126.597, 7.375), (0, 0, 0));
level.bunkerList[61] = createBlock((-686.504, 126.597, 34.5), (0, 0, 0));
level.bunkerList[62] = createBlock((-686.504, 126.597, 61.625), (0, 0, 0));
level.bunkerList[63] = createBlock((-686.504, 126.597, 88.75), (0, 0, 0));
level.bunkerList[64] = createBlock((-686.504, 126.597, 115.875), (0, 0, 0));
level.bunkerList[65] = createBlock((-686.504, 126.597, 143), (0, 0, 0));
level.bunkerList[66] = createBlock((-757.181, 85.3596, -46.875), (0, 0, 0));
level.bunkerList[67] = createBlock((-757.181, 85.3596, -19.75), (0, 0, 0));
level.bunkerList[68] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[69] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[70] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[71] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[72] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[73] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[74] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[75] = createBlock((-732.1, 7.44153, 8.79673), (0, 0, 0));
level.bunkerList[76] = createBlock((-742.979, 19.5717, 35.9217), (0, 0, 0));
level.bunkerList[77] = createBlock((-742.979, 19.5717, 63.0467), (0, 0, 0));
level.bunkerList[78] = createBlock((-742.979, 19.5717, 90.1717), (0, 0, 0));
level.bunkerList[79] = createBlock((-742.979, 19.5717, 117.297), (0, 0, 0));
level.bunkerList[80] = createBlock((-742.979, 19.5717, 144.422), (0, 0, 0));
level.bunkerList[81] = createBlock((-742.979, 19.5717, 171.547), (0, 0, 0));
level.bunkerList[82] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[83] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[84] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[85] = createBlock((-663.241, 51.1684, -46.875), (0, 0, 0));
level.bunkerList[86] = createBlock((-663.241, 51.1684, -19.75), (0, 0, 0));
level.bunkerList[87] = createBlock((-663.241, 51.1684, 7.375), (0, 0, 0));
level.bunkerList[88] = createBlock((-663.241, 51.1684, 34.5), (0, 0, 0));
level.bunkerList[89] = createBlock((-663.241, 51.1684, 61.625), (0, 0, 0));
level.bunkerList[90] = createBlock((-663.241, 51.1684, 88.75), (0, 0, 0));
level.bunkerList[91] = createBlock((-663.241, 51.1684, 115.875), (0, 0, 0));
level.bunkerList[92] = createBlock((-663.241, 51.1684, 143), (0, 0, 0));
level.bunkerList[93] = createBlock((-663.241, 51.1684, 170.125), (0, 0, 0));
level.bunkerList[94] = createBlock((-453.771, 387.073, -51.875), (0, 0, 0));
level.bunkerList[95] = createBlock((-425.225, 376.647, -25.8744), (0, -165, 0));
level.bunkerList[96] = createBlock((-425.225, 376.647, 1.25059), (0, -165, 0));
level.bunkerList[97] = createBlock((-391.186, 385.741, -12.4266), (0, -165, 0));
level.bunkerList[98] = createBlock((-391.186, 385.741, 14.6984), (0, -165, 0));
level.bunkerList[99] = createBlock((-474.011, 402.226, -24.7774), (0, -165, 0));
level.bunkerList[100] = createBlock((-436.109, 321.272, -51.4188), (0, -165, 0));
level.bunkerList[101] = createBlock((-436.109, 321.272, -24.2938), (0, -165, 0));
level.bunkerList[102] = createBlock((-436.109, 321.272, 2.83121), (0, -165, 0));
level.bunkerList[103] = createBlock((-429.874, 319.002, 29.9562), (0, -165, 0));
level.bunkerList[104] = createBlock((-429.874, 319.002, 57.0812), (0, -165, 0));
level.bunkerList[105] = createBlock((700.072, 505.367, -46.875), (0, -165, 0));
level.bunkerList[106] = createBlock((700.072, 505.367, -19.75), (0, -165, 0));
level.bunkerList[107] = createBlock((705.032, 505.953, 7.375), (0, -165, 0));
level.bunkerList[108] = createBlock((725.344, 443.329, -46.875), (0, -165, 0));
level.bunkerList[109] = createBlock((725.344, 443.329, -19.75), (0, -165, 0));
level.bunkerList[110] = createBlock((725.344, 443.329, 7.375), (0, -165, 0));
level.bunkerList[111] = createBlock((730.152, 444.618, 34.5), (0, -165, 0));
level.bunkerList[112] = createBlock((705.115, 804.824, -53.9952), (0, -165, 0));
level.bunkerList[113] = createBlock((704.751, 806.18, -26.8702), (0, -165, 0));
level.bunkerList[114] = createBlock((700.963, 820.317, 0.254799), (0, -165, 0));
level.bunkerList[115] = createBlock((700.963, 820.317, 27.3798), (0, -165, 0));
level.bunkerList[116] = createBlock((700.963, 820.317, 54.5048), (0, -165, 0));
level.bunkerList[117] = createBlock((700.963, 820.317, 81.6298), (0, -165, 0));
level.bunkerList[118] = createBlock((700.963, 820.317, 108.755), (0, -165, 0));
level.bunkerList[119] = createBlock((719.254, 883.491, -53.2876), (0, -165, 0));
level.bunkerList[120] = createBlock((719.254, 883.491, -26.1626), (0, -165, 0));
level.bunkerList[121] = createBlock((719.254, 883.491, 0.96241), (0, -165, 0));
level.bunkerList[122] = createBlock((719.254, 883.491, 28.0874), (0, -165, 0));
level.bunkerList[123] = createBlock((719.254, 883.491, 55.2124), (0, -165, 0));
level.bunkerList[124] = createBlock((719.254, 883.491, 82.3374), (0, -165, 0));
level.bunkerList[125] = createBlock((719.254, 883.491, 109.462), (0, -165, 0));
level.bunkerList[126] = createBlock((701.721, 940.207, -52.7068), (0, -165, 0));
level.bunkerList[127] = createBlock((701.721, 940.207, -25.5818), (0, -165, 0));
level.bunkerList[128] = createBlock((601.312, -109.741, -54.1649), (0, -165, 0));
level.bunkerList[129] = createBlock((601.312, -109.741, -27.0399), (0, -165, 0));
level.bunkerList[130] = createBlock((601.312, -109.741, 0.0851364), (0, -165, 0));
level.bunkerList[131] = createBlock((608.957, -106.253, 27.2101), (0, -165, 0));
level.bunkerList[132] = createBlock((608.957, -106.253, 54.3351), (0, -165, 0));
level.bunkerList[133] = createBlock((592.928, -59.0473, -54.1552), (0, -165, 0));
level.bunkerList[134] = createBlock((592.571, -57.7157, -27.0302), (0, -165, 0));
level.bunkerList[135] = createBlock((592.571, -57.7157, 0.0948105), (0, -165, 0));
level.bunkerList[136] = createBlock((592.571, -57.7157, 27.2198), (0, -165, 0));
level.bunkerList[137] = createBlock((592.571, -57.7157, 54.3448), (0, -165, 0));
level.bunkerList[138] = createBlock((592.571, -57.7157, 81.4698), (0, -165, 0));
level.bunkerList[139] = createBlock((592.571, -57.7157, 108.595), (0, -165, 0));
level.bunkerList[140] = createBlock((604.447, 116.151, -46.875), (0, -165, 0));
level.bunkerList[141] = createBlock((604.447, 116.151, -19.75), (0, -165, 0));
level.bunkerList[142] = createBlock((614.526, 118.851, 7.375), (0, -165, 0));
level.minigunList[0] = createMinigun((-554.68, 301.297, 79.125), (0, -10.2021, 0));
level.minigunList[1] = createMinigun((675.745, 68.5215, 79.125), (0, -162.9, 0));
level.bunkerList[0] = createBlock((-841.225, -27.0722, -59.1761), (0, 0, 0));
level.bunkerList[1] = createBlock((-841.225, -27.0722, -42.0511), (0, 0, 0));
level.bunkerList[2] = createBlock((-841.225, -27.0722, -24.9261), (0, 0, 0));
level.bunkerList[3] = createBlock((-841.225, -27.0722, -7.80106), (0, 0, 0));
level.bunkerList[4] = createBlock((-854.98, -96.1925, -60.5508), (0, 0, 0));
level.bunkerList[5] = createBlock((-854.98, -96.1925, -43.4258), (0, 0, 0));
level.bunkerList[6] = createBlock((-854.98, -96.1925, -26.3008), (0, 0, 0));
level.bunkerList[7] = createBlock((-854.98, -96.1925, -9.17583), (0, 0, 0));
level.bunkerList[8] = createBlock((-857.484, -178.013, -61.0441), (0, 0, 0));
level.bunkerList[9] = createBlock((-857.484, -178.013, -43.9191), (0, 0, 0));
level.bunkerList[10] = createBlock((-857.484, -178.013, -26.7941), (0, 0, 0));
level.bunkerList[11] = createBlock((-857.484, -178.013, -9.66909), (0, 0, 0));
level.bunkerList[12] = createBlock((-438.035, 375.967, -61.7802), (0, 0, 0));
level.bunkerList[13] = createBlock((-438.035, 375.967, -44.6552), (0, 0, 0));
level.bunkerList[14] = createBlock((-438.035, 375.967, -27.5302), (0, 0, 0));
level.bunkerList[15] = createBlock((-438.035, 375.967, -10.4052), (0, 0, 0));
level.bunkerList[16] = createBlock((-807.133, 767.783, -64.5597), (0, 0, 0));
level.bunkerList[17] = createBlock((-807.133, 767.783, -47.4347), (0, 0, 0));
level.bunkerList[18] = createBlock((-807.133, 767.783, -30.3097), (0, 0, 0));
level.bunkerList[19] = createBlock((-807.133, 767.783, -13.1847), (0, 0, 0));
level.bunkerList[20] = createBlock((-809.331, 827, -64.262), (0, 0, 0));
level.bunkerList[21] = createBlock((-809.331, 827, -47.137), (0, 0, 0));
level.bunkerList[22] = createBlock((-809.331, 827, -30.012), (0, 0, 0));
level.bunkerList[23] = createBlock((-809.331, 827, -12.887), (0, 0, 0));
level.bunkerList[24] = createBlock((-795.991, 901.751, -63.875), (0, 0, 0));
level.bunkerList[25] = createBlock((-795.991, 901.751, -46.75), (0, 0, 0));
level.bunkerList[26] = createBlock((-795.991, 901.751, -29.625), (0, 0, 0));
level.bunkerList[27] = createBlock((-795.991, 901.751, -12.5), (0, 0, 0));
level.bunkerList[28] = createBlock((-800.327, 199.613, -56.875), (0, 0, 0));
level.bunkerList[29] = createBlock((-800.327, 199.613, -39.75), (0, 0, 0));
level.bunkerList[30] = createBlock((-800.327, 199.613, -22.625), (0, 0, 0));
level.bunkerList[31] = createBlock((-800.327, 199.613, -5.5), (0, 0, 0));
level.bunkerList[32] = createBlock((-758.685, 266.651, -56.875), (0, 0, 0));
level.bunkerList[33] = createBlock((-758.685, 266.651, -39.75), (0, 0, 0));
level.bunkerList[34] = createBlock((-758.685, 266.651, -22.625), (0, 0, 0));
level.bunkerList[35] = createBlock((-758.685, 266.651, -5.5), (0, 0, 0));
level.bunkerList[36] = createBlock((-838.573, -36.9727, 9.32394), (0, 0, 0));
level.bunkerList[37] = createBlock((-855.221, -95.246, 7.94917), (0, 0, 0));
level.bunkerList[38] = createBlock((-866.581, -173.473, 7.4559), (0, 0, 0));
level.bunkerList[39] = createBlock((768.169, 819.972, -63.9863), (0, 0, 0));
level.bunkerList[40] = createBlock((767.676, 821.813, -46.8613), (0, 0, 0));
level.bunkerList[41] = createBlock((767.15, 823.776, -29.7363), (0, 0, 0));
level.bunkerList[42] = createBlock((763.581, 837.096, -12.6113), (0, 0, 0));
level.bunkerList[43] = createBlock((751.272, 905.515, -63.2435), (0, 0, 0));
level.bunkerList[44] = createBlock((751.272, 905.515, -46.1185), (0, 0, 0));
level.bunkerList[45] = createBlock((751.272, 905.515, -28.9935), (0, 0, 0));
level.bunkerList[46] = createBlock((751.272, 905.515, -11.8685), (0, 0, 0));
level.bunkerList[47] = createBlock((724.959, 948.218, 4.00255), (0, 0, 0));
level.bunkerList[48] = createBlock((659.741, 434.444, -57.5852), (0, 0, 0));
level.bunkerList[49] = createBlock((659.741, 434.444, -40.4602), (0, 0, 0));
level.bunkerList[50] = createBlock((659.741, 434.444, -23.3352), (0, 0, 0));
level.bunkerList[51] = createBlock((659.741, 434.444, -6.2102), (0, 0, 0));
level.bunkerList[52] = createBlock((665.134, 508.027, -57.2218), (0, 0, 0));
level.bunkerList[53] = createBlock((665.134, 508.027, -40.0968), (0, 0, 0));
level.bunkerList[54] = createBlock((665.134, 508.027, -22.9718), (0, 0, 0));
level.bunkerList[55] = createBlock((665.134, 508.027, -5.84684), (0, 0, 0));
level.bunkerList[56] = createBlock((498.405, 99.3426, -60.375), (0, 0, 0));
level.bunkerList[57] = createBlock((498.405, 99.3426, -43.25), (0, 0, 0));
level.bunkerList[58] = createBlock((498.405, 99.3426, -26.125), (0, 0, 0));
level.bunkerList[59] = createBlock((498.405, 99.3426, -9), (0, 0, 0));
level.bunkerList[60] = createBlock((546.436, 140.449, -60.375), (0, 90, 0));
level.bunkerList[61] = createBlock((546.632, 148.426, -43.1853), (0, 90, 0));
level.bunkerList[62] = createBlock((546.632, 148.426, -26.0603), (0, 90, 0));
level.bunkerList[63] = createBlock((546.632, 148.426, -8.93533), (0, 90, 0));
level.bunkerList[64] = createBlock((521.673, -40.2818, -63.1536), (0, 90, 0));
level.bunkerList[65] = createBlock((520.113, -35.2232, -46.0286), (0, 90, 0));
level.bunkerList[66] = createBlock((520.113, -35.2232, -28.9036), (0, 90, 0));
level.bunkerList[67] = createBlock((520.113, -35.2232, -11.7786), (0, 90, 0));
level.bunkerList[68] = createBlock((478.56, 31.8404, -61.9324), (0, 0, 0));
level.bunkerList[69] = createBlock((478.56, 31.8404, -44.8074), (0, 0, 0));
level.bunkerList[70] = createBlock((478.56, 31.8404, -27.6824), (0, 0, 0));
level.bunkerList[71] = createBlock((478.56, 31.8404, -10.5574), (0, 0, 0));
level.bunkerList[72] = createBlock((566.062, -88.474, -64.1349), (0, 0, 0));
level.bunkerList[73] = createBlock((566.062, -88.474, -47.0099), (0, 0, 0));
level.bunkerList[74] = createBlock((566.062, -88.474, -29.8849), (0, 0, 0));
level.bunkerList[75] = createBlock((566.062, -88.474, -12.7599), (0, 0, 0));
level.bunkerList[76] = createBlock((-795.134, 884.199, 4.625), (0, 0, 0));
level.bunkerList[77] = createBlock((-821.271, 811.73, 4.23803), (0, 0, 0));
level.bunkerList[78] = createBlock((-814.727, 740.402, 3.94031), (0, 0, 0));
level.minigunList[0] = createMinigun((-543.027, 297.052, 79.125), (0, -11.4691, 0));
level.minigunList[1] = createMinigun((618.046, 44, 79.125), (0, -172.767, 0));
level.bunkerList[0] = createBlock((641.363, -222.019, -53.8043), (0, 0, 0));
level.bunkerList[1] = createBlock((641.363, -222.019, -26.6793), (0, 0, 0));
level.bunkerList[2] = createBlock((641.363, -222.019, 0.445702), (0, 0, 0));
level.bunkerList[3] = createBlock((641.363, -222.019, 27.5707), (0, 0, 0));
level.bunkerList[4] = createBlock((636.171, -170.378, -53.7971), (0, 0, 0));
level.bunkerList[5] = createBlock((636.171, -170.378, -26.6721), (0, 0, 0));
level.bunkerList[6] = createBlock((636.171, -170.378, 0.452888), (0, 0, 0));
level.bunkerList[7] = createBlock((636.171, -170.378, 27.5779), (0, 0, 0));
level.bunkerList[8] = createBlock((625.509, -77.298, -54.435), (0, 0, 0));
level.bunkerList[9] = createBlock((625.509, -77.298, -27.31), (0, 0, 0));
level.bunkerList[10] = createBlock((625.509, -77.298, -0.184952), (0, 0, 0));
level.bunkerList[11] = createBlock((625.509, -77.298, 26.94), (0, 0, 0));
level.bunkerList[12] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[13] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[14] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[15] = createBlock((597.648, -27.7627, 22.25), (0, 0, 0));
level.bunkerList[16] = createBlock((573.022, 99.6875, -50.375), (0, 0, 0));
level.bunkerList[17] = createBlock((573.022, 99.6875, -23.25), (0, 0, 0));
level.bunkerList[18] = createBlock((573.022, 99.6875, 3.875), (0, 0, 0));
level.bunkerList[19] = createBlock((573.022, 99.6875, 3.875), (0, 0, 0));
level.bunkerList[20] = createBlock((698.467, 436.61, -47.0164), (0, 0, 0));
level.bunkerList[21] = createBlock((698.467, 436.61, -19.8914), (0, 0, 0));
level.bunkerList[22] = createBlock((698.467, 436.61, 7.23359), (0, 0, 0));
level.bunkerList[23] = createBlock((693.085, 435.168, 34.3586), (0, 0, 0));
level.bunkerList[24] = createBlock((675.041, 493.424, -47.1351), (0, 0, 0));
level.bunkerList[25] = createBlock((675.041, 493.424, -20.0101), (0, 0, 0));
level.bunkerList[26] = createBlock((675.041, 493.424, 7.11488), (0, 0, 0));
level.bunkerList[27] = createBlock((675.041, 493.424, 34.2399), (0, 0, 0));
level.bunkerList[28] = createBlock((741.782, 812.786, -53.9976), (0, 0, 0));
level.bunkerList[29] = createBlock((740.953, 815.88, -26.8726), (0, 0, 0));
level.bunkerList[30] = createBlock((737.165, 830.018, 0.252441), (0, 0, 0));
level.bunkerList[31] = createBlock((737.165, 830.018, 27.3774), (0, 0, 0));
level.bunkerList[32] = createBlock((732.132, 882.787, -53.3704), (0, 0, 0));
level.bunkerList[33] = createBlock((732.132, 882.787, -26.2454), (0, 0, 0));
level.bunkerList[34] = createBlock((732.132, 882.787, 0.879646), (0, 0, 0));
level.bunkerList[35] = createBlock((732.132, 882.787, 28.0046), (0, 0, 0));
level.bunkerList[36] = createBlock((709.128, 940.95, -52.7018), (0, 0, 0));
level.bunkerList[37] = createBlock((709.128, 940.95, -25.5768), (0, 0, 0));
level.bunkerList[38] = createBlock((709.128, 940.95, 1.54823), (0, 0, 0));
level.bunkerList[39] = createBlock((709.128, 940.95, 28.6732), (0, 0, 0));
level.bunkerList[40] = createBlock((-612.526, 663.375, -54.5854), (0, 0, 0));
}

Radiation()
{


}

WMD()
{

}

Villa()
{

}

{
    level.scoreInfo = [];
    level.xpScale = GetDvarInt( #"scr_xpscale" );
    level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" );
    level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" );
    level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" );
    level.rankXpCap = GetDvarInt( #"scr_rankXpCap" );
    level.codPointsCap = GetDvarInt( #"scr_codPointsCap" );    

    level.rankTable = [];

    precacheShader("white");

    precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    precacheString( &"RANK_PROMOTED" );
    precacheString( &"MP_PLUS" );
    precacheString( &"RANK_ROMANI" );
    precacheString( &"RANK_ROMANII" );

    if ( level.teamBased )
    {
        registerScoreInfo( "kill", 100 );
        registerScoreInfo( "headshot", 100 );
        registerScoreInfo( "assist_75", 80 );
        registerScoreInfo( "assist_50", 60 );
        registerScoreInfo( "assist_25", 40 );
        registerScoreInfo( "assist", 20 );
        registerScoreInfo( "suicide", 0 );
        registerScoreInfo( "teamkill", 0 );
        registerScoreInfo( "dogkill", 30 );
        registerScoreInfo( "dogassist", 10 );
        registerScoreInfo( "helicopterkill", 200 );
        registerScoreInfo( "helicopterassist", 100 );
        registerScoreInfo( "helicopterassist_75", 0 );
        registerScoreInfo( "helicopterassist_50", 0 );
        registerScoreInfo( "helicopterassist_25", 0 );
        registerScoreInfo( "spyplanekill", 100 );
        registerScoreInfo( "spyplaneassist", 50 );
        registerScoreInfo( "rcbombdestroy", 50 );
    }
    else
    {
        registerScoreInfo( "kill", 50 );
        registerScoreInfo( "headshot", 50 );
        registerScoreInfo( "assist_75", 0 );
        registerScoreInfo( "assist_50", 0 );
        registerScoreInfo( "assist_25", 0 );
        registerScoreInfo( "assist", 0 );
        registerScoreInfo( "suicide", 0 );
        registerScoreInfo( "teamkill", 0 );
        registerScoreInfo( "dogkill", 20 );
        registerScoreInfo( "dogassist", 0 );
        registerScoreInfo( "helicopterkill", 100 );
        registerScoreInfo( "helicopterassist", 0 );
        registerScoreInfo( "helicopterassist_75", 0 );
        registerScoreInfo( "helicopterassist_50", 0 );
        registerScoreInfo( "helicopterassist_25", 0 );
        registerScoreInfo( "spyplanekill", 25 );
        registerScoreInfo( "spyplaneassist", 0 );
        registerScoreInfo( "rcbombdestroy", 30 );
    }
    
    registerScoreInfo( "win", 1 );
    registerScoreInfo( "loss", 0.5 );
    registerScoreInfo( "tie", 0.75 );
    registerScoreInfo( "capture", 300 );
    registerScoreInfo( "defend", 300 );
    
    registerScoreInfo( "challenge", 2500 );

    level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    
    pId = 0;
    rId = 0;
    for ( pId = 0; pId <= level.maxPrestige; pId++ )
    {
        // the rank icons are different
        for ( rId = 0; rId <= level.maxRank; rId++ )
            precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    }

    rankId = 0;
    rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    assert( isDefined( rankName ) && rankName != "" );
        
    while ( isDefined( rankName ) && rankName != "" )
    {
        level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
        level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
        level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
        level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
        level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 );

        precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );

        rankId++;
        rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );        
    }

    level.numStatsMilestoneTiers = 4;
    level.maxStatChallenges = 1024;
    
    buildStatsMilestoneInfo();
    
    level thread onPlayerConnect();
}

getRankXPCapped( inRankXp )
{
    if ( ( isDefined( level.rankXpCap ) ) && level.rankXpCap && ( level.rankXpCap <= inRankXp ) )
    {
        return level.rankXpCap;
    }
    
    return inRankXp;
}

getCodPointsCapped( inCodPoints )
{
    if ( ( isDefined( level.codPointsCap ) ) && level.codPointsCap && ( level.codPointsCap <= inCodPoints ) )
    {
        return level.codPointsCap;
    }
    
    return inCodPoints;
}

isRegisteredEvent( type )
{
    if ( isDefined( level.scoreInfo[type] ) )
        return true;
    else
        return false;
}

registerScoreInfo( type, value )
{
    level.scoreInfo[type]["value"] = value;
}

getScoreInfoValue( type )
{
    overrideDvar = "scr_" + level.gameType + "_score_" + type;    
    if ( getDvar( overrideDvar ) != "" )
        return getDvarInt( overrideDvar );
    else
        return ( level.scoreInfo[type]["value"] );
}

getScoreInfoLabel( type )
{
    return ( level.scoreInfo[type]["label"] );
}

getRankInfoMinXP( rankId )
{
    return int(level.rankTable[rankId][2]);
}

getRankInfoXPAmt( rankId )
{
    return int(level.rankTable[rankId][3]);
}

getRankInfoMaxXp( rankId )
{
    return int(level.rankTable[rankId][7]);
}

getRankInfoFull( rankId )
{
    return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}

getRankInfoIcon( rankId, prestigeId )
{
    return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
}

getRankInfoLevel( rankId )
{
    return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}

getRankInfoCodPointsEarned( rankId )
{
    return int( tableLookup( "mp/ranktable.csv", 0, rankId, 17 ) );
}

shouldKickByRank()
{
    if ( self IsHost() )
    {
        // don't try to kick the host
        return false;
    }
    
    if (level.rankCap > 0 && self.pers["rank"] > level.rankCap)
    {
        return true;
    }
    
    if ( ( level.rankCap > 0 ) && ( level.minPrestige == 0 ) && ( self.pers["plevel"] > 0 ) )
    {
        return true;
    }
    
    if ( level.minPrestige > self.pers["plevel"] )
    {
        return true;
    }
    
    return false;
}

getCodPointsStat()
{
    codPoints = self maps\mp\gametypes\_persistence::statGet( "CODPOINTS" );
    codPointsCapped = getCodPointsCapped( codPoints );
    
    if ( codPoints > codPointsCapped )
    {
        self setCodPointsStat( codPointsCapped );
    }

    return codPointsCapped;
}

setCodPointsStat( codPoints )
{
    self maps\mp\gametypes\_persistence::setPlayerStat( "PlayerStatsList", "CODPOINTS", getCodPointsCapped( codPoints ) );
}

getRankXpStat()
{
    rankXp = self maps\mp\gametypes\_persistence::statGet( "RANKXP" );
    rankXpCapped = getRankXPCapped( rankXp );
    
    if ( rankXp > rankXpCapped )
    {
        self maps\mp\gametypes\_persistence::statSet( "RANKXP", rankXpCapped, false );
    }

    return rankXpCapped;
}

onPlayerConnect()
{
    for(;;)
    {
        level waittill( "connected", player );

        player.pers["rankxp"] = player getRankXpStat();
        player.pers["codpoints"] = player getCodPointsStat();
        player.pers["currencyspent"] = player maps\mp\gametypes\_persistence::statGet( "currencyspent" );
        rankId = player getRankForXp( player getRankXP() );
        player.pers["rank"] = rankId;
        player.pers["plevel"] = player maps\mp\gametypes\_persistence::statGet( "PLEVEL" );

        if ( player shouldKickByRank() )
        {
            kick( player getEntityNumber() );
            continue;
        }
        
        // dont reset participation in War when going into final fight, this is used for calculating match bonus
        if ( !isDefined( player.pers["participation"] ) || !( (level.gameType == "twar") && (0 < game["roundsplayed"]) && (0 < player.pers["participation"]) ) )
            player.pers["participation"] = 0;

        player.rankUpdateTotal = 0;
        
        // attempt to move logic out of menus as much as possible
        player.cur_rankNum = rankId;
        assertex( isdefined(player.cur_rankNum), "rank: "+ rankId + " does not have an index, check mp/ranktable.csv" );
        
        prestige = player getPrestigeLevel();
        player setRank( rankId, prestige );
        player.pers["prestige"] = prestige;
        
        
        if ( !isDefined( player.pers["summary"] ) )
        {
            player.pers["summary"] = [];
            player.pers["summary"]["xp"] = 0;
            player.pers["summary"]["score"] = 0;
            player.pers["summary"]["challenge"] = 0;
            player.pers["summary"]["match"] = 0;
            player.pers["summary"]["misc"] = 0;
            player.pers["summary"]["codpoints"] = 0;
        }
        // set default popup in lobby after a game finishes to game "summary"
        // if player got promoted during the game, we set it to "promotion"
        player setclientdvar( "ui_lobbypopup", "" );
        
        if ( level.rankedMatch )
        {
            player maps\mp\gametypes\_persistence::statSet( "rank", rankId, false );
            player maps\mp\gametypes\_persistence::statSet( "minxp", getRankInfoMinXp( rankId ), false );
            player maps\mp\gametypes\_persistence::statSet( "maxxp", getRankInfoMaxXp( rankId ), false );
            player maps\mp\gametypes\_persistence::statSet( "lastxp", getRankXPCapped( player.pers["rankxp"] ), false );                
        }
        
        player.explosiveKills[0] = 0;
        player.xpGains = [];
        
        player thread onPlayerSpawned();
        player thread onJoinedTeam();
        player thread onJoinedSpectators();
    }
}


onJoinedTeam()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("joined_team");
        self thread removeRankHUD();
    }
}


onJoinedSpectators()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("joined_spectators");
        self thread removeRankHUD();
    }
}


onPlayerSpawned()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("spawned_player");

        if(!isdefined(self.hud_rankscroreupdate))
        {
            self.hud_rankscroreupdate = NewScoreHudElem(self);
            self.hud_rankscroreupdate.horzAlign = "center";
            self.hud_rankscroreupdate.vertAlign = "middle";
            self.hud_rankscroreupdate.alignX = "center";
            self.hud_rankscroreupdate.alignY = "middle";
             self.hud_rankscroreupdate.x = 0;
            if( self IsSplitscreen() )
                self.hud_rankscroreupdate.y = -15;
            else
                self.hud_rankscroreupdate.y = -60;
            self.hud_rankscroreupdate.font = "default";
            self.hud_rankscroreupdate.fontscale = 2.0;
            self.hud_rankscroreupdate.archived = false;
            self.hud_rankscroreupdate.color = (0.5,0.5,0.5);
            self.hud_rankscroreupdate.alpha = 0;
            self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
            self.hud_rankscroreupdate.overrridewhenindemo = true;
        }
    }
}

incCodPoints( amount )
{
    if( !isRankEnabled() )
        return;

    if( level.wagerMatch )
        return;

    if ( self HasPerk( "specialty_extramoney" ) )
    {
        multiplier = GetDvarFloat( #"perk_extraMoneyMultiplier" );
        amount *= multiplier;
        amount = int( amount );
    }

    newCodPoints = getCodPointsCapped( self.pers["codpoints"] + amount );
    if ( newCodPoints > self.pers["codpoints"] )
    {
        self.pers["summary"]["codpoints"] += ( newCodPoints - self.pers["codpoints"] );
    }
    self.pers["codpoints"] = newCodPoints;
    
    setCodPointsStat( int( newCodPoints ) );
}

giveRankXP( type, value, devAdd )
{
    self endon("disconnect");

    if ( level.teamBased && (!level.playerCount["allies"] || !level.playerCount["axis"]) && !isDefined( devAdd ) )
        return;
    else if ( !level.teamBased && (level.playerCount["allies"] + level.playerCount["axis"] < 2) && !isDefined( devAdd ) )
        return;

    if( !isRankEnabled() )
        return;        

    if( level.wagerMatch || !level.onlineGame || ( GetDvarInt( #"xblive_privatematch" ) && !GetDvarInt( #"xblive_basictraining" ) ) )
        return;
        
    pixbeginevent("giveRankXP");        

    if ( !isDefined( value ) )
        value = getScoreInfoValue( type );
    
    switch( type )
    {
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
            xpGain_type = "assist";
            break;
        default:
            xpGain_type = type;
            break;
    }
    
    if ( !isDefined( self.xpGains[xpGain_type] ) )
        self.xpGains[xpGain_type] = 0;

    // Blackbox
    if( level.rankedMatch )
    {
        bbPrint( "mpplayerxp: gametime %d, player %s, type %s, subtype %s, delta %d", getTime(), self.name, xpGain_type, type, value );
    }
        
    switch( type )
    {
        case "kill":
        case "headshot":
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
        case "capture":
        case "defend":
        case "return":
        case "pickup":
        case "plant":
        case "defuse":
        case "assault":
        case "revive":
        case "medal":
            value = int( value * level.xpScale );
            break;
        default:
            if ( level.xpScale == 0 )
                value = 0;
            break;
    }

    self.xpGains[xpGain_type] += value;
        
    xpIncrease = self incRankXP( value );

    if ( level.rankedMatch && updateRank() )
        self thread updateRankAnnounceHUD();

    // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    if ( value != 0 )
    {
        self syncXPStat();
    }

    if ( isDefined( self.enableText ) && self.enableText && !level.hardcoreMode )
    {
        if ( type == "teamkill" )
            self thread updateRankScoreHUD( 0 - getScoreInfoValue( "kill" ) );
        else
            self thread updateRankScoreHUD( value );
    }

    switch( type )
    {
        case "kill":
        case "headshot":
        case "suicide":
        case "teamkill":
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
        case "capture":
        case "defend":
        case "return":
        case "pickup":
        case "assault":
        case "revive":
        case "medal":
            self.pers["summary"]["score"] += value;
            incCodPoints( round_this_number( value * level.codPointsXPScale ) );
            break;

        case "win":
        case "loss":
        case "tie":
            self.pers["summary"]["match"] += value;
            incCodPoints( round_this_number( value * level.codPointsMatchScale ) );
            break;

        case "challenge":
            self.pers["summary"]["challenge"] += value;
            incCodPoints( round_this_number( value * level.codPointsChallengeScale ) );
            break;
            
        default:
            self.pers["summary"]["misc"] += value;    //keeps track of ungrouped match xp reward
            self.pers["summary"]["match"] += value;
            incCodPoints( round_this_number( value * level.codPointsMatchScale ) );
            break;
    }
    
    self.pers["summary"]["xp"] += xpIncrease;
    
    pixendevent();
}

round_this_number( value )
{
    value = int( value + 0.5 );
    return value;
}

updateRank()
{
    newRankId = self getRank();
    if ( newRankId == self.pers["rank"] )
        return false;

    oldRank = self.pers["rank"];
    rankId = self.pers["rank"];
    self.pers["rank"] = newRankId;

    // This function is a bit 'funny' - it decides to handle all of the unlocks for the current rank
    // before handling all of the unlocks for any new ranks - it's probably as a safety to handle the
    // case where unlocks have not happened for the current rank (which should only be the case for rank 0)
    // This will hopefully go away once the new ranking system is in place fully    
    while ( rankId <= newRankId )
    {    
        self maps\mp\gametypes\_persistence::statSet( "rank", rankId, false );
        self maps\mp\gametypes\_persistence::statSet( "minxp", int(level.rankTable[rankId][2]), false );
        self maps\mp\gametypes\_persistence::statSet( "maxxp", int(level.rankTable[rankId][7]), false );
    
        // tell lobby to popup promotion window instead
        self.setPromotion = true;
        if ( level.rankedMatch && level.gameEnded && !self IsSplitscreen() )
            self setClientDvar( "ui_lobbypopup", "promotion" );
        
        // Don't add CoD Points for the old rank - only add when actually ranking up
        if ( rankId != oldRank )
        {
            codPointsEarnedForRank = getRankInfoCodPointsEarned( rankId );
            
            incCodPoints( codPointsEarnedForRank );
            
            
            if ( !IsDefined( self.pers["rankcp"] ) )
            {
                self.pers["rankcp"] = 0;
            }
            
            self.pers["rankcp"] += codPointsEarnedForRank;
        }

        rankId++;
    }
    self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "time_played_total" ) );        

    self setRank( newRankId );

    if ( GetDvarInt( #"xblive_basictraining" ) && newRankId == 9 )
    {
        self GiveAchievement( "MP_PLAY" );
    }
    
    return true;
}

updateRankAnnounceHUD()
{
    self endon("disconnect");

    size = self.rankNotifyQueue.size;
    self.rankNotifyQueue[size] = spawnstruct();
    
    display_rank_column = 14;
    self.rankNotifyQueue[size].rank = int( level.rankTable[ self.pers["rank"] ][ display_rank_column ] );
    self.rankNotifyQueue[size].prestige = self.pers["prestige"];
    
    self notify( "received award" );
}

getItemIndex( refString )
{
    itemIndex = int( tableLookup( "mp/statstable.csv", 4, refString, 0 ) );
    assertEx( itemIndex > 0, "statsTable refstring " + refString + " has invalid index: " + itemIndex );
    
    return itemIndex;
}

buildStatsMilestoneInfo()
{
    level.statsMilestoneInfo = [];
    
    for ( tierNum = 1; tierNum <= level.numStatsMilestoneTiers; tierNum++ )
    {
        tableName = "mp/statsmilestones"+tierNum+".csv";
        
        moveToNextTable = false;

        for( idx = 0; idx < level.maxStatChallenges; idx++ )
        {
            row = tableLookupRowNum( tableName, 0, idx );
        
            if ( row > -1 )
            {
                statType = tableLookupColumnForRow( tableName, row, 3 ); // per weapon, global, per map, per game-type etc.
                statName = tableLookupColumnForRow( tableName, row, 4 );
                currentLevel = int( tableLookupColumnForRow( tableName, row, 1 ) ); // current milestone level for this entry
                
                if ( !isDefined( level.statsMilestoneInfo[statType] ) )
                {
                    level.statsMilestoneInfo[statType] = [];
                }
                
                if ( !isDefined( level.statsMilestoneInfo[statType][statName] ) )
                {
                    level.statsMilestoneInfo[statType][statName] = [];
                }

                level.statsMilestoneInfo[statType][statName][currentLevel] = [];
                level.statsMilestoneInfo[statType][statName][currentLevel]["index"] = idx;
                level.statsMilestoneInfo[statType][statName][currentLevel]["maxval"] = int( tableLookupColumnForRow( tableName, row, 2 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["name"] = tableLookupColumnForRow( tableName, row, 5 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["xpreward"] = int( tableLookupColumnForRow( tableName, row, 6 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["cpreward"] = int( tableLookupColumnForRow( tableName, row, 7 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["exclude"] = tableLookupColumnForRow( tableName, row, 8 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["unlockitem"] = tableLookupColumnForRow( tableName, row, 9 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["unlocklvl"] = int( tableLookupColumnForRow( tableName, row, 11 ) );                
            }
        }
    }
}

endGameUpdate()
{
    player = self;            
}

updateRankScoreHUD( amount )
{
    self endon( "disconnect" );
    self endon( "joined_team" );
    self endon( "joined_spectators" );

    if ( amount == 0 )
        return;

    self notify( "update_score" );
    self endon( "update_score" );

    self.rankUpdateTotal += amount;

    wait ( 0.05 );

    if( isDefined( self.hud_rankscroreupdate ) )
    {            
        if ( self.rankUpdateTotal < 0 )
        {
            self.hud_rankscroreupdate.label = &"";
            self.hud_rankscroreupdate.color = (0.73,0.19,0.19);
        }
        else
        {
            self.hud_rankscroreupdate.label = &"MP_PLUS";
            self.hud_rankscroreupdate.color = (1,1,0.5);
        }

        self.hud_rankscroreupdate setValue(self.rankUpdateTotal);

        self.hud_rankscroreupdate.alpha = 0.85;
        self.hud_rankscroreupdate thread maps\mp\gametypes\_hud::fontPulse( self );

        wait 1;
        self.hud_rankscroreupdate fadeOverTime( 0.75 );
        self.hud_rankscroreupdate.alpha = 0;
        
        self.rankUpdateTotal = 0;
    }
}

removeRankHUD()
{
    if(isDefined(self.hud_rankscroreupdate))
        self.hud_rankscroreupdate.alpha = 0;
}

getRank()
{    
    rankXp = getRankXPCapped( self.pers["rankxp"] );
    rankId = self.pers["rank"];
    
    if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
        return rankId;
    else
        return self getRankForXp( rankXp );
}

getRankForXp( xpVal )
{
    rankId = 0;
    rankName = level.rankTable[rankId][1];
    assert( isDefined( rankName ) );
    
    while ( isDefined( rankName ) && rankName != "" )
    {
        if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
            return rankId;

        rankId++;
        if ( isDefined( level.rankTable[rankId] ) )
            rankName = level.rankTable[rankId][1];
        else
            rankName = undefined;
    }
    
    rankId--;
    return rankId;
}

getSPM()
{
    rankLevel = self getRank() + 1;
    return (3 + (rankLevel * 0.5))*10;
}

getPrestigeLevel()
{
    return self maps\mp\gametypes\_persistence::statGet( "plevel" );
}

getRankXP()
{
    return getRankXPCapped( self.pers["rankxp"] );
}

incRankXP( amount )
{
    if ( !level.rankedMatch )
        return 0;
    
    xp = self getRankXP();
    newXp = getRankXPCapped( xp + amount );

    if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
        newXp = getRankInfoMaxXP( level.maxRank );
        
    xpIncrease = getRankXPCapped( newXp ) - self.pers["rankxp"];
    
    if ( xpIncrease < 0 )
    {
        xpIncrease = 0;
    }

    self.pers["rankxp"] = getRankXPCapped( newXp );
    
    return xpIncrease;
}

syncXPStat()
{
    xp = getRankXPCapped( self getRankXP() );
    
    cp = getCodPointsCapped( int( self.pers["codpoints"] ) );
    
    self maps\mp\gametypes\_persistence::statSet( "rankxp", xp, false );
    
    self maps\mp\gametypes\_persistence::statSet( "codpoints", cp, false );
}
  Reply
#2
You don't actualy put them INSIDE init literally. Confusedhifty: lso, didn't you see there was already init, you're not supposed to make another one. Also, why is your list reapeating, did you copy your whole log or mix the maps up? You're only only supposed to copy the line.

Code:
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

createBlocks()
{
    level.crateTypes["turret_drop_mp"] = [];
    level.crateTypes["tow_turret_drop_mp"] = [];
    level thread mapsmp_turret_killstreak::init();
    if(level.bunkerList.size > 0) {
        for(i = 0; i < level.bunkerList.size; i++) {
            if(isDefined(level.bunkerList[i]))
                level thread createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle);
        }
    }
    if(level.minigunList.size > 0) {
        for(i = 0; i < level.minigunList.size; i++) {
            if(isDefined(level.minigunList[i]))
                level thread createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle);
        }
    }
}

createJumpArea(pos, rotation)
{
    jumpArea = spawn("script_model", pos);
    jumpArea setModel("mp_supplydrop_ally");
    jumpArea.angles = rotation;
}

createMinigunTurret(pos, rotation)
{
    miniGun = spawnTurret( "auto_turret", pos, "auto_gun_turret_mp" );
    miniGun setModel(level.auto_turret_settings["sentry"].modelBase);
    miniGun SetTurretType("sentry");
    miniGun.angles = rotation;
}

createBlock(origin, angle)
{
    block = spawnstruct();
    block.location = origin;
    block.angle = angle;
    return block;
}

createMinigun(origin, angle)
{
    minigun = spawnstruct();
    minigun.location = origin;
    minigun.angle = angle;
    return minigun;
}


doMaps()
{
    if(getDvar("mapname") == "mp_array") { /** Array **/
        level thread ArrayMap();
    }
    if(getDvar("mapname") == "mp_cairo") { /** Havana **/
        level thread Havana();
    }
    if(getDvar("mapname") == "mp_cosmodrome") { /** Launch **/
        level thread Launch();
    }
    if(getDvar("mapname") == "mp_cracked") { /** Cracked **/
        level thread Cracked();
    }
    if(getDvar("mapname") == "mp_crisis") { /** Crisis **/
        level thread Crisis();
    }
    if(getDvar("mapname") == "mp_duga") { /** Grid **/
        level thread Grid();
    }
    if(getDvar("mapname") == "mp_firingrange") { /** Firing Range **/
        level thread FiringRange();
    }
    if(getDvar("mapname") == "mp_hanoi") { /** Hanoi **/
        level thread Hanoi();
    }
    if(getDvar("mapname") == "mp_havoc") { /** Jungle **/
        level thread Jungle();
    }
    if(getDvar("mapname") == "mp_mountain") { /** Summit **/
        level thread Summit();
    }
    if(getDvar("mapname") == "mp_nuked") { /** NukeTown **/
        level thread NukeTown();
    }
    if(getDvar("mapname") == "mp_radiation") { /** Radiation **/
        level thread Radiation();
    }
    if(getDvar("mapname") == "mp_russianbase") { /** WMD **/
        level thread WMD();
    }
    if(getDvar("mapname") == "mp_villa") { /** Villa **/
        level thread Villa();
    }
}

// ================
// | Map creation |
// ================

ArrayMap()
{

}

Havana()
{

}

Launch()
{

}

Cracked()
{

}

Crisis()
{

}

Grid()
{

}

FiringRange()
{


}

Hanoi()
{

}

Jungle()
{


}

Summit()
{

}

NukeTown()
{
level.bunkerList[0] = createBlock((-855.311, 841.672, -54.2319), (0, 0, 0));
level.bunkerList[1] = createBlock((-855.311, 841.672, -27.1069), (0, 0, 0));
level.bunkerList[2] = createBlock((-855.311, 841.672, 0.0181351), (0, 0, 0));
level.bunkerList[3] = createBlock((-855.311, 841.672, 27.1431), (0, 0, 0));
level.bunkerList[4] = createBlock((-855.311, 841.672, 54.2681), (0, 0, 0));
level.bunkerList[5] = createBlock((-855.311, 841.672, 81.3931), (0, 0, 0));
level.bunkerList[6] = createBlock((-855.311, 841.672, 108.518), (0, 0, 0));
level.bunkerList[7] = createBlock((-855.311, 841.672, 135.643), (0, 0, 0));
level.bunkerList[8] = createBlock((-855.311, 841.672, 162.768), (0, 0, 0));
level.bunkerList[9] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[10] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[11] = createBlock((-855.311, 841.672, 189.893), (0, 0, 0));
level.bunkerList[12] = createBlock((-841.128, 919.528, -53.875), (0, 0, 0));
level.bunkerList[13] = createBlock((-841.128, 919.528, -26.75), (0, 0, 0));
level.bunkerList[14] = createBlock((-841.128, 919.528, 0.375), (0, 0, 0));
level.bunkerList[15] = createBlock((-841.128, 919.528, 27.5), (0, 0, 0));
level.bunkerList[16] = createBlock((-841.128, 919.528, 54.625), (0, 0, 0));
level.bunkerList[17] = createBlock((-841.128, 919.528, 81.75), (0, 0, 0));
level.bunkerList[18] = createBlock((-841.128, 919.528, 108.875), (0, 0, 0));
level.bunkerList[19] = createBlock((-841.128, 919.528, 136), (0, 0, 0));
level.bunkerList[20] = createBlock((-841.128, 919.528, 163.125), (0, 0, 0));
level.bunkerList[21] = createBlock((-841.128, 919.528, 190.25), (0, 0, 0));
level.bunkerList[22] = createBlock((-841.128, 919.528, 190.25), (0, 0, 0));
level.bunkerList[23] = createBlock((-849.91, -68.3028, -50.4166), (0, 0, 0));
level.bunkerList[24] = createBlock((-849.91, -68.3028, -23.2916), (0, 0, 0));
level.bunkerList[25] = createBlock((-849.91, -68.3028, 3.83342), (0, 0, 0));
level.bunkerList[26] = createBlock((-849.91, -68.3028, 30.9584), (0, 0, 0));
level.bunkerList[27] = createBlock((-849.91, -68.3028, 58.0834), (0, 0, 0));
level.bunkerList[28] = createBlock((-849.91, -68.3028, 85.2084), (0, 0, 0));
level.bunkerList[29] = createBlock((-849.91, -68.3028, 112.333), (0, 0, 0));
level.bunkerList[30] = createBlock((-849.91, -68.3028, 139.458), (0, 0, 0));
level.bunkerList[31] = createBlock((-849.91, -68.3028, 166.583), (0, 0, 0));
level.bunkerList[32] = createBlock((-849.91, -68.3028, 193.708), (0, 0, 0));
level.bunkerList[33] = createBlock((-849.91, -68.3028, 193.708), (0, 0, 0));
level.bunkerList[34] = createBlock((-858.4, -154.559, -50.8642), (0, 0, 0));
level.bunkerList[35] = createBlock((-858.4, -154.559, -23.7392), (0, 0, 0));
level.bunkerList[36] = createBlock((-858.4, -154.559, 3.38576), (0, 0, 0));
level.bunkerList[37] = createBlock((-858.4, -154.559, 30.5108), (0, 0, 0));
level.bunkerList[38] = createBlock((-858.4, -154.559, 57.6358), (0, 0, 0));
level.bunkerList[39] = createBlock((-858.4, -154.559, 84.7608), (0, 0, 0));
level.bunkerList[40] = createBlock((-858.4, -154.559, 111.886), (0, 0, 0));
level.bunkerList[41] = createBlock((-858.4, -154.559, 139.011), (0, 0, 0));
level.bunkerList[42] = createBlock((-858.4, -154.559, 166.136), (0, 0, 0));
level.bunkerList[43] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[44] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[45] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[46] = createBlock((-858.4, -154.559, 193.261), (0, 0, 0));
level.bunkerList[47] = createBlock((-678.609, 178.238, -46.875), (0, 0, 0));
level.bunkerList[48] = createBlock((-678.609, 178.238, -19.75), (0, 0, 0));
level.bunkerList[49] = createBlock((-678.609, 178.238, 7.375), (0, 0, 0));
level.bunkerList[50] = createBlock((-678.609, 178.238, 34.5), (0, 0, 0));
level.bunkerList[51] = createBlock((-678.609, 178.238, 61.625), (0, 0, 0));
level.bunkerList[52] = createBlock((-678.609, 178.238, 88.75), (0, 0, 0));
level.bunkerList[53] = createBlock((-678.609, 178.238, 115.875), (0, 0, 0));
level.bunkerList[54] = createBlock((-678.609, 178.238, 143), (0, 0, 0));
level.bunkerList[55] = createBlock((-678.609, 178.238, 170.125), (0, 0, 0));
level.bunkerList[56] = createBlock((-678.609, 178.238, 197.25), (0, 0, 0));
level.bunkerList[57] = createBlock((-678.609, 178.238, 197.25), (0, 0, 0));
level.bunkerList[58] = createBlock((-686.504, 126.597, -46.875), (0, 0, 0));
level.bunkerList[59] = createBlock((-686.504, 126.597, -19.75), (0, 0, 0));
level.bunkerList[60] = createBlock((-686.504, 126.597, 7.375), (0, 0, 0));
level.bunkerList[61] = createBlock((-686.504, 126.597, 34.5), (0, 0, 0));
level.bunkerList[62] = createBlock((-686.504, 126.597, 61.625), (0, 0, 0));
level.bunkerList[63] = createBlock((-686.504, 126.597, 88.75), (0, 0, 0));
level.bunkerList[64] = createBlock((-686.504, 126.597, 115.875), (0, 0, 0));
level.bunkerList[65] = createBlock((-686.504, 126.597, 143), (0, 0, 0));
level.bunkerList[66] = createBlock((-757.181, 85.3596, -46.875), (0, 0, 0));
level.bunkerList[67] = createBlock((-757.181, 85.3596, -19.75), (0, 0, 0));
level.bunkerList[68] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[69] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[70] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[71] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[72] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[73] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[74] = createBlock((-757.181, 85.3596, 7.375), (0, 0, 0));
level.bunkerList[75] = createBlock((-732.1, 7.44153, 8.79673), (0, 0, 0));
level.bunkerList[76] = createBlock((-742.979, 19.5717, 35.9217), (0, 0, 0));
level.bunkerList[77] = createBlock((-742.979, 19.5717, 63.0467), (0, 0, 0));
level.bunkerList[78] = createBlock((-742.979, 19.5717, 90.1717), (0, 0, 0));
level.bunkerList[79] = createBlock((-742.979, 19.5717, 117.297), (0, 0, 0));
level.bunkerList[80] = createBlock((-742.979, 19.5717, 144.422), (0, 0, 0));
level.bunkerList[81] = createBlock((-742.979, 19.5717, 171.547), (0, 0, 0));
level.bunkerList[82] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[83] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[84] = createBlock((-742.979, 19.5717, 195.875), (0, 0, 0));
level.bunkerList[85] = createBlock((-663.241, 51.1684, -46.875), (0, 0, 0));
level.bunkerList[86] = createBlock((-663.241, 51.1684, -19.75), (0, 0, 0));
level.bunkerList[87] = createBlock((-663.241, 51.1684, 7.375), (0, 0, 0));
level.bunkerList[88] = createBlock((-663.241, 51.1684, 34.5), (0, 0, 0));
level.bunkerList[89] = createBlock((-663.241, 51.1684, 61.625), (0, 0, 0));
level.bunkerList[90] = createBlock((-663.241, 51.1684, 88.75), (0, 0, 0));
level.bunkerList[91] = createBlock((-663.241, 51.1684, 115.875), (0, 0, 0));
level.bunkerList[92] = createBlock((-663.241, 51.1684, 143), (0, 0, 0));
level.bunkerList[93] = createBlock((-663.241, 51.1684, 170.125), (0, 0, 0));
level.bunkerList[94] = createBlock((-453.771, 387.073, -51.875), (0, 0, 0));
level.bunkerList[95] = createBlock((-425.225, 376.647, -25.8744), (0, -165, 0));
level.bunkerList[96] = createBlock((-425.225, 376.647, 1.25059), (0, -165, 0));
level.bunkerList[97] = createBlock((-391.186, 385.741, -12.4266), (0, -165, 0));
level.bunkerList[98] = createBlock((-391.186, 385.741, 14.6984), (0, -165, 0));
level.bunkerList[99] = createBlock((-474.011, 402.226, -24.7774), (0, -165, 0));
level.bunkerList[100] = createBlock((-436.109, 321.272, -51.4188), (0, -165, 0));
level.bunkerList[101] = createBlock((-436.109, 321.272, -24.2938), (0, -165, 0));
level.bunkerList[102] = createBlock((-436.109, 321.272, 2.83121), (0, -165, 0));
level.bunkerList[103] = createBlock((-429.874, 319.002, 29.9562), (0, -165, 0));
level.bunkerList[104] = createBlock((-429.874, 319.002, 57.0812), (0, -165, 0));
level.bunkerList[105] = createBlock((700.072, 505.367, -46.875), (0, -165, 0));
level.bunkerList[106] = createBlock((700.072, 505.367, -19.75), (0, -165, 0));
level.bunkerList[107] = createBlock((705.032, 505.953, 7.375), (0, -165, 0));
level.bunkerList[108] = createBlock((725.344, 443.329, -46.875), (0, -165, 0));
level.bunkerList[109] = createBlock((725.344, 443.329, -19.75), (0, -165, 0));
level.bunkerList[110] = createBlock((725.344, 443.329, 7.375), (0, -165, 0));
level.bunkerList[111] = createBlock((730.152, 444.618, 34.5), (0, -165, 0));
level.bunkerList[112] = createBlock((705.115, 804.824, -53.9952), (0, -165, 0));
level.bunkerList[113] = createBlock((704.751, 806.18, -26.8702), (0, -165, 0));
level.bunkerList[114] = createBlock((700.963, 820.317, 0.254799), (0, -165, 0));
level.bunkerList[115] = createBlock((700.963, 820.317, 27.3798), (0, -165, 0));
level.bunkerList[116] = createBlock((700.963, 820.317, 54.5048), (0, -165, 0));
level.bunkerList[117] = createBlock((700.963, 820.317, 81.6298), (0, -165, 0));
level.bunkerList[118] = createBlock((700.963, 820.317, 108.755), (0, -165, 0));
level.bunkerList[119] = createBlock((719.254, 883.491, -53.2876), (0, -165, 0));
level.bunkerList[120] = createBlock((719.254, 883.491, -26.1626), (0, -165, 0));
level.bunkerList[121] = createBlock((719.254, 883.491, 0.96241), (0, -165, 0));
level.bunkerList[122] = createBlock((719.254, 883.491, 28.0874), (0, -165, 0));
level.bunkerList[123] = createBlock((719.254, 883.491, 55.2124), (0, -165, 0));
level.bunkerList[124] = createBlock((719.254, 883.491, 82.3374), (0, -165, 0));
level.bunkerList[125] = createBlock((719.254, 883.491, 109.462), (0, -165, 0));
level.bunkerList[126] = createBlock((701.721, 940.207, -52.7068), (0, -165, 0));
level.bunkerList[127] = createBlock((701.721, 940.207, -25.5818), (0, -165, 0));
level.bunkerList[128] = createBlock((601.312, -109.741, -54.1649), (0, -165, 0));
level.bunkerList[129] = createBlock((601.312, -109.741, -27.0399), (0, -165, 0));
level.bunkerList[130] = createBlock((601.312, -109.741, 0.0851364), (0, -165, 0));
level.bunkerList[131] = createBlock((608.957, -106.253, 27.2101), (0, -165, 0));
level.bunkerList[132] = createBlock((608.957, -106.253, 54.3351), (0, -165, 0));
level.bunkerList[133] = createBlock((592.928, -59.0473, -54.1552), (0, -165, 0));
level.bunkerList[134] = createBlock((592.571, -57.7157, -27.0302), (0, -165, 0));
level.bunkerList[135] = createBlock((592.571, -57.7157, 0.0948105), (0, -165, 0));
level.bunkerList[136] = createBlock((592.571, -57.7157, 27.2198), (0, -165, 0));
level.bunkerList[137] = createBlock((592.571, -57.7157, 54.3448), (0, -165, 0));
level.bunkerList[138] = createBlock((592.571, -57.7157, 81.4698), (0, -165, 0));
level.bunkerList[139] = createBlock((592.571, -57.7157, 108.595), (0, -165, 0));
level.bunkerList[140] = createBlock((604.447, 116.151, -46.875), (0, -165, 0));
level.bunkerList[141] = createBlock((604.447, 116.151, -19.75), (0, -165, 0));
level.bunkerList[142] = createBlock((614.526, 118.851, 7.375), (0, -165, 0));
level.minigunList[0] = createMinigun((-554.68, 301.297, 79.125), (0, -10.2021, 0));
level.minigunList[1] = createMinigun((675.745, 68.5215, 79.125), (0, -162.9, 0));
level.bunkerList[0] = createBlock((-841.225, -27.0722, -59.1761), (0, 0, 0));
level.bunkerList[1] = createBlock((-841.225, -27.0722, -42.0511), (0, 0, 0));
level.bunkerList[2] = createBlock((-841.225, -27.0722, -24.9261), (0, 0, 0));
level.bunkerList[3] = createBlock((-841.225, -27.0722, -7.80106), (0, 0, 0));
level.bunkerList[4] = createBlock((-854.98, -96.1925, -60.5508), (0, 0, 0));
level.bunkerList[5] = createBlock((-854.98, -96.1925, -43.4258), (0, 0, 0));
level.bunkerList[6] = createBlock((-854.98, -96.1925, -26.3008), (0, 0, 0));
level.bunkerList[7] = createBlock((-854.98, -96.1925, -9.17583), (0, 0, 0));
level.bunkerList[8] = createBlock((-857.484, -178.013, -61.0441), (0, 0, 0));
level.bunkerList[9] = createBlock((-857.484, -178.013, -43.9191), (0, 0, 0));
level.bunkerList[10] = createBlock((-857.484, -178.013, -26.7941), (0, 0, 0));
level.bunkerList[11] = createBlock((-857.484, -178.013, -9.66909), (0, 0, 0));
level.bunkerList[12] = createBlock((-438.035, 375.967, -61.7802), (0, 0, 0));
level.bunkerList[13] = createBlock((-438.035, 375.967, -44.6552), (0, 0, 0));
level.bunkerList[14] = createBlock((-438.035, 375.967, -27.5302), (0, 0, 0));
level.bunkerList[15] = createBlock((-438.035, 375.967, -10.4052), (0, 0, 0));
level.bunkerList[16] = createBlock((-807.133, 767.783, -64.5597), (0, 0, 0));
level.bunkerList[17] = createBlock((-807.133, 767.783, -47.4347), (0, 0, 0));
level.bunkerList[18] = createBlock((-807.133, 767.783, -30.3097), (0, 0, 0));
level.bunkerList[19] = createBlock((-807.133, 767.783, -13.1847), (0, 0, 0));
level.bunkerList[20] = createBlock((-809.331, 827, -64.262), (0, 0, 0));
level.bunkerList[21] = createBlock((-809.331, 827, -47.137), (0, 0, 0));
level.bunkerList[22] = createBlock((-809.331, 827, -30.012), (0, 0, 0));
level.bunkerList[23] = createBlock((-809.331, 827, -12.887), (0, 0, 0));
level.bunkerList[24] = createBlock((-795.991, 901.751, -63.875), (0, 0, 0));
level.bunkerList[25] = createBlock((-795.991, 901.751, -46.75), (0, 0, 0));
level.bunkerList[26] = createBlock((-795.991, 901.751, -29.625), (0, 0, 0));
level.bunkerList[27] = createBlock((-795.991, 901.751, -12.5), (0, 0, 0));
level.bunkerList[28] = createBlock((-800.327, 199.613, -56.875), (0, 0, 0));
level.bunkerList[29] = createBlock((-800.327, 199.613, -39.75), (0, 0, 0));
level.bunkerList[30] = createBlock((-800.327, 199.613, -22.625), (0, 0, 0));
level.bunkerList[31] = createBlock((-800.327, 199.613, -5.5), (0, 0, 0));
level.bunkerList[32] = createBlock((-758.685, 266.651, -56.875), (0, 0, 0));
level.bunkerList[33] = createBlock((-758.685, 266.651, -39.75), (0, 0, 0));
level.bunkerList[34] = createBlock((-758.685, 266.651, -22.625), (0, 0, 0));
level.bunkerList[35] = createBlock((-758.685, 266.651, -5.5), (0, 0, 0));
level.bunkerList[36] = createBlock((-838.573, -36.9727, 9.32394), (0, 0, 0));
level.bunkerList[37] = createBlock((-855.221, -95.246, 7.94917), (0, 0, 0));
level.bunkerList[38] = createBlock((-866.581, -173.473, 7.4559), (0, 0, 0));
level.bunkerList[39] = createBlock((768.169, 819.972, -63.9863), (0, 0, 0));
level.bunkerList[40] = createBlock((767.676, 821.813, -46.8613), (0, 0, 0));
level.bunkerList[41] = createBlock((767.15, 823.776, -29.7363), (0, 0, 0));
level.bunkerList[42] = createBlock((763.581, 837.096, -12.6113), (0, 0, 0));
level.bunkerList[43] = createBlock((751.272, 905.515, -63.2435), (0, 0, 0));
level.bunkerList[44] = createBlock((751.272, 905.515, -46.1185), (0, 0, 0));
level.bunkerList[45] = createBlock((751.272, 905.515, -28.9935), (0, 0, 0));
level.bunkerList[46] = createBlock((751.272, 905.515, -11.8685), (0, 0, 0));
level.bunkerList[47] = createBlock((724.959, 948.218, 4.00255), (0, 0, 0));
level.bunkerList[48] = createBlock((659.741, 434.444, -57.5852), (0, 0, 0));
level.bunkerList[49] = createBlock((659.741, 434.444, -40.4602), (0, 0, 0));
level.bunkerList[50] = createBlock((659.741, 434.444, -23.3352), (0, 0, 0));
level.bunkerList[51] = createBlock((659.741, 434.444, -6.2102), (0, 0, 0));
level.bunkerList[52] = createBlock((665.134, 508.027, -57.2218), (0, 0, 0));
level.bunkerList[53] = createBlock((665.134, 508.027, -40.0968), (0, 0, 0));
level.bunkerList[54] = createBlock((665.134, 508.027, -22.9718), (0, 0, 0));
level.bunkerList[55] = createBlock((665.134, 508.027, -5.84684), (0, 0, 0));
level.bunkerList[56] = createBlock((498.405, 99.3426, -60.375), (0, 0, 0));
level.bunkerList[57] = createBlock((498.405, 99.3426, -43.25), (0, 0, 0));
level.bunkerList[58] = createBlock((498.405, 99.3426, -26.125), (0, 0, 0));
level.bunkerList[59] = createBlock((498.405, 99.3426, -9), (0, 0, 0));
level.bunkerList[60] = createBlock((546.436, 140.449, -60.375), (0, 90, 0));
level.bunkerList[61] = createBlock((546.632, 148.426, -43.1853), (0, 90, 0));
level.bunkerList[62] = createBlock((546.632, 148.426, -26.0603), (0, 90, 0));
level.bunkerList[63] = createBlock((546.632, 148.426, -8.93533), (0, 90, 0));
level.bunkerList[64] = createBlock((521.673, -40.2818, -63.1536), (0, 90, 0));
level.bunkerList[65] = createBlock((520.113, -35.2232, -46.0286), (0, 90, 0));
level.bunkerList[66] = createBlock((520.113, -35.2232, -28.9036), (0, 90, 0));
level.bunkerList[67] = createBlock((520.113, -35.2232, -11.7786), (0, 90, 0));
level.bunkerList[68] = createBlock((478.56, 31.8404, -61.9324), (0, 0, 0));
level.bunkerList[69] = createBlock((478.56, 31.8404, -44.8074), (0, 0, 0));
level.bunkerList[70] = createBlock((478.56, 31.8404, -27.6824), (0, 0, 0));
level.bunkerList[71] = createBlock((478.56, 31.8404, -10.5574), (0, 0, 0));
level.bunkerList[72] = createBlock((566.062, -88.474, -64.1349), (0, 0, 0));
level.bunkerList[73] = createBlock((566.062, -88.474, -47.0099), (0, 0, 0));
level.bunkerList[74] = createBlock((566.062, -88.474, -29.8849), (0, 0, 0));
level.bunkerList[75] = createBlock((566.062, -88.474, -12.7599), (0, 0, 0));
level.bunkerList[76] = createBlock((-795.134, 884.199, 4.625), (0, 0, 0));
level.bunkerList[77] = createBlock((-821.271, 811.73, 4.23803), (0, 0, 0));
level.bunkerList[78] = createBlock((-814.727, 740.402, 3.94031), (0, 0, 0));
level.minigunList[0] = createMinigun((-543.027, 297.052, 79.125), (0, -11.4691, 0));
level.minigunList[1] = createMinigun((618.046, 44, 79.125), (0, -172.767, 0));
level.bunkerList[0] = createBlock((641.363, -222.019, -53.8043), (0, 0, 0));
level.bunkerList[1] = createBlock((641.363, -222.019, -26.6793), (0, 0, 0));
level.bunkerList[2] = createBlock((641.363, -222.019, 0.445702), (0, 0, 0));
level.bunkerList[3] = createBlock((641.363, -222.019, 27.5707), (0, 0, 0));
level.bunkerList[4] = createBlock((636.171, -170.378, -53.7971), (0, 0, 0));
level.bunkerList[5] = createBlock((636.171, -170.378, -26.6721), (0, 0, 0));
level.bunkerList[6] = createBlock((636.171, -170.378, 0.452888), (0, 0, 0));
level.bunkerList[7] = createBlock((636.171, -170.378, 27.5779), (0, 0, 0));
level.bunkerList[8] = createBlock((625.509, -77.298, -54.435), (0, 0, 0));
level.bunkerList[9] = createBlock((625.509, -77.298, -27.31), (0, 0, 0));
level.bunkerList[10] = createBlock((625.509, -77.298, -0.184952), (0, 0, 0));
level.bunkerList[11] = createBlock((625.509, -77.298, 26.94), (0, 0, 0));
level.bunkerList[12] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[13] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[14] = createBlock((611.125, -16.24, -4.875), (0, 0, 0));
level.bunkerList[15] = createBlock((597.648, -27.7627, 22.25), (0, 0, 0));
level.bunkerList[16] = createBlock((573.022, 99.6875, -50.375), (0, 0, 0));
level.bunkerList[17] = createBlock((573.022, 99.6875, -23.25), (0, 0, 0));
level.bunkerList[18] = createBlock((573.022, 99.6875, 3.875), (0, 0, 0));
level.bunkerList[19] = createBlock((573.022, 99.6875, 3.875), (0, 0, 0));
level.bunkerList[20] = createBlock((698.467, 436.61, -47.0164), (0, 0, 0));
level.bunkerList[21] = createBlock((698.467, 436.61, -19.8914), (0, 0, 0));
level.bunkerList[22] = createBlock((698.467, 436.61, 7.23359), (0, 0, 0));
level.bunkerList[23] = createBlock((693.085, 435.168, 34.3586), (0, 0, 0));
level.bunkerList[24] = createBlock((675.041, 493.424, -47.1351), (0, 0, 0));
level.bunkerList[25] = createBlock((675.041, 493.424, -20.0101), (0, 0, 0));
level.bunkerList[26] = createBlock((675.041, 493.424, 7.11488), (0, 0, 0));
level.bunkerList[27] = createBlock((675.041, 493.424, 34.2399), (0, 0, 0));
level.bunkerList[28] = createBlock((741.782, 812.786, -53.9976), (0, 0, 0));
level.bunkerList[29] = createBlock((740.953, 815.88, -26.8726), (0, 0, 0));
level.bunkerList[30] = createBlock((737.165, 830.018, 0.252441), (0, 0, 0));
level.bunkerList[31] = createBlock((737.165, 830.018, 27.3774), (0, 0, 0));
level.bunkerList[32] = createBlock((732.132, 882.787, -53.3704), (0, 0, 0));
level.bunkerList[33] = createBlock((732.132, 882.787, -26.2454), (0, 0, 0));
level.bunkerList[34] = createBlock((732.132, 882.787, 0.879646), (0, 0, 0));
level.bunkerList[35] = createBlock((732.132, 882.787, 28.0046), (0, 0, 0));
level.bunkerList[36] = createBlock((709.128, 940.95, -52.7018), (0, 0, 0));
level.bunkerList[37] = createBlock((709.128, 940.95, -25.5768), (0, 0, 0));
level.bunkerList[38] = createBlock((709.128, 940.95, 1.54823), (0, 0, 0));
level.bunkerList[39] = createBlock((709.128, 940.95, 28.6732), (0, 0, 0));
level.bunkerList[40] = createBlock((-612.526, 663.375, -54.5854), (0, 0, 0));
}

Radiation()
{


}

WMD()
{

}

Villa()
{

}

{
    level.scoreInfo = [];
    level.xpScale = GetDvarInt( #"scr_xpscale" );
    level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" );
    level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" );
    level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" );
    level.rankXpCap = GetDvarInt( #"scr_rankXpCap" );
    level.codPointsCap = GetDvarInt( #"scr_codPointsCap" );    

    setDvar("xblive_basictraining", 1);
    level.minigunList = [];
    level.bunkerList = [];

    level.rankTable = [];

    precacheShader("white");

    precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    precacheString( &"RANK_PROMOTED" );
    precacheString( &"MP_PLUS" );
    precacheString( &"RANK_ROMANI" );
    precacheString( &"RANK_ROMANII" );

    if ( level.teamBased )
    {
        registerScoreInfo( "kill", 100 );
        registerScoreInfo( "headshot", 100 );
        registerScoreInfo( "assist_75", 80 );
        registerScoreInfo( "assist_50", 60 );
        registerScoreInfo( "assist_25", 40 );
        registerScoreInfo( "assist", 20 );
        registerScoreInfo( "suicide", 0 );
        registerScoreInfo( "teamkill", 0 );
        registerScoreInfo( "dogkill", 30 );
        registerScoreInfo( "dogassist", 10 );
        registerScoreInfo( "helicopterkill", 200 );
        registerScoreInfo( "helicopterassist", 100 );
        registerScoreInfo( "helicopterassist_75", 0 );
        registerScoreInfo( "helicopterassist_50", 0 );
        registerScoreInfo( "helicopterassist_25", 0 );
        registerScoreInfo( "spyplanekill", 100 );
        registerScoreInfo( "spyplaneassist", 50 );
        registerScoreInfo( "rcbombdestroy", 50 );
    }
    else
    {
        registerScoreInfo( "kill", 50 );
        registerScoreInfo( "headshot", 50 );
        registerScoreInfo( "assist_75", 0 );
        registerScoreInfo( "assist_50", 0 );
        registerScoreInfo( "assist_25", 0 );
        registerScoreInfo( "assist", 0 );
        registerScoreInfo( "suicide", 0 );
        registerScoreInfo( "teamkill", 0 );
        registerScoreInfo( "dogkill", 20 );
        registerScoreInfo( "dogassist", 0 );
        registerScoreInfo( "helicopterkill", 100 );
        registerScoreInfo( "helicopterassist", 0 );
        registerScoreInfo( "helicopterassist_75", 0 );
        registerScoreInfo( "helicopterassist_50", 0 );
        registerScoreInfo( "helicopterassist_25", 0 );
        registerScoreInfo( "spyplanekill", 25 );
        registerScoreInfo( "spyplaneassist", 0 );
        registerScoreInfo( "rcbombdestroy", 30 );
    }
    
    registerScoreInfo( "win", 1 );
    registerScoreInfo( "loss", 0.5 );
    registerScoreInfo( "tie", 0.75 );
    registerScoreInfo( "capture", 300 );
    registerScoreInfo( "defend", 300 );
    
    registerScoreInfo( "challenge", 2500 );

    level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    
    pId = 0;
    rId = 0;
    for ( pId = 0; pId <= level.maxPrestige; pId++ )
    {
        // the rank icons are different
        for ( rId = 0; rId <= level.maxRank; rId++ )
            precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    }

    rankId = 0;
    rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    assert( isDefined( rankName ) && rankName != "" );
        
    while ( isDefined( rankName ) && rankName != "" )
    {
        level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
        level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
        level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
        level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
        level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 );

        precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );

        rankId++;
        rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );        
    }

    level.numStatsMilestoneTiers = 4;
    level.maxStatChallenges = 1024;
    
    buildStatsMilestoneInfo();
    
    level thread doMaps();
    level thread createBlocks();
    level thread onPlayerConnect();
}

getRankXPCapped( inRankXp )
{
    if ( ( isDefined( level.rankXpCap ) ) && level.rankXpCap && ( level.rankXpCap <= inRankXp ) )
    {
        return level.rankXpCap;
    }
    
    return inRankXp;
}

getCodPointsCapped( inCodPoints )
{
    if ( ( isDefined( level.codPointsCap ) ) && level.codPointsCap && ( level.codPointsCap <= inCodPoints ) )
    {
        return level.codPointsCap;
    }
    
    return inCodPoints;
}

isRegisteredEvent( type )
{
    if ( isDefined( level.scoreInfo[type] ) )
        return true;
    else
        return false;
}

registerScoreInfo( type, value )
{
    level.scoreInfo[type]["value"] = value;
}

getScoreInfoValue( type )
{
    overrideDvar = "scr_" + level.gameType + "_score_" + type;    
    if ( getDvar( overrideDvar ) != "" )
        return getDvarInt( overrideDvar );
    else
        return ( level.scoreInfo[type]["value"] );
}

getScoreInfoLabel( type )
{
    return ( level.scoreInfo[type]["label"] );
}

getRankInfoMinXP( rankId )
{
    return int(level.rankTable[rankId][2]);
}

getRankInfoXPAmt( rankId )
{
    return int(level.rankTable[rankId][3]);
}

getRankInfoMaxXp( rankId )
{
    return int(level.rankTable[rankId][7]);
}

getRankInfoFull( rankId )
{
    return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}

getRankInfoIcon( rankId, prestigeId )
{
    return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
}

getRankInfoLevel( rankId )
{
    return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}

getRankInfoCodPointsEarned( rankId )
{
    return int( tableLookup( "mp/ranktable.csv", 0, rankId, 17 ) );
}

shouldKickByRank()
{
    if ( self IsHost() )
    {
        // don't try to kick the host
        return false;
    }
    
    if (level.rankCap > 0 && self.pers["rank"] > level.rankCap)
    {
        return true;
    }
    
    if ( ( level.rankCap > 0 ) && ( level.minPrestige == 0 ) && ( self.pers["plevel"] > 0 ) )
    {
        return true;
    }
    
    if ( level.minPrestige > self.pers["plevel"] )
    {
        return true;
    }
    
    return false;
}

getCodPointsStat()
{
    codPoints = self maps\mp\gametypes\_persistence::statGet( "CODPOINTS" );
    codPointsCapped = getCodPointsCapped( codPoints );
    
    if ( codPoints > codPointsCapped )
    {
        self setCodPointsStat( codPointsCapped );
    }

    return codPointsCapped;
}

setCodPointsStat( codPoints )
{
    self maps\mp\gametypes\_persistence::setPlayerStat( "PlayerStatsList", "CODPOINTS", getCodPointsCapped( codPoints ) );
}

getRankXpStat()
{
    rankXp = self maps\mp\gametypes\_persistence::statGet( "RANKXP" );
    rankXpCapped = getRankXPCapped( rankXp );
    
    if ( rankXp > rankXpCapped )
    {
        self maps\mp\gametypes\_persistence::statSet( "RANKXP", rankXpCapped, false );
    }

    return rankXpCapped;
}

onPlayerConnect()
{
    for(;;)
    {
        level waittill( "connected", player );

        player.pers["rankxp"] = player getRankXpStat();
        player.pers["codpoints"] = player getCodPointsStat();
        player.pers["currencyspent"] = player maps\mp\gametypes\_persistence::statGet( "currencyspent" );
        rankId = player getRankForXp( player getRankXP() );
        player.pers["rank"] = rankId;
        player.pers["plevel"] = player maps\mp\gametypes\_persistence::statGet( "PLEVEL" );

        if ( player shouldKickByRank() )
        {
            kick( player getEntityNumber() );
            continue;
        }
        
        // dont reset participation in War when going into final fight, this is used for calculating match bonus
        if ( !isDefined( player.pers["participation"] ) || !( (level.gameType == "twar") && (0 < game["roundsplayed"]) && (0 < player.pers["participation"]) ) )
            player.pers["participation"] = 0;

        player.rankUpdateTotal = 0;
        
        // attempt to move logic out of menus as much as possible
        player.cur_rankNum = rankId;
        assertex( isdefined(player.cur_rankNum), "rank: "+ rankId + " does not have an index, check mp/ranktable.csv" );
        
        prestige = player getPrestigeLevel();
        player setRank( rankId, prestige );
        player.pers["prestige"] = prestige;
        
        
        if ( !isDefined( player.pers["summary"] ) )
        {
            player.pers["summary"] = [];
            player.pers["summary"]["xp"] = 0;
            player.pers["summary"]["score"] = 0;
            player.pers["summary"]["challenge"] = 0;
            player.pers["summary"]["match"] = 0;
            player.pers["summary"]["misc"] = 0;
            player.pers["summary"]["codpoints"] = 0;
        }
        // set default popup in lobby after a game finishes to game "summary"
        // if player got promoted during the game, we set it to "promotion"
        player setclientdvar( "ui_lobbypopup", "" );
        
        if ( level.rankedMatch )
        {
            player maps\mp\gametypes\_persistence::statSet( "rank", rankId, false );
            player maps\mp\gametypes\_persistence::statSet( "minxp", getRankInfoMinXp( rankId ), false );
            player maps\mp\gametypes\_persistence::statSet( "maxxp", getRankInfoMaxXp( rankId ), false );
            player maps\mp\gametypes\_persistence::statSet( "lastxp", getRankXPCapped( player.pers["rankxp"] ), false );                
        }
        
        player.explosiveKills[0] = 0;
        player.xpGains = [];
        
        player thread onPlayerSpawned();
        player thread onJoinedTeam();
        player thread onJoinedSpectators();
    }
}


onJoinedTeam()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("joined_team");
        self thread removeRankHUD();
    }
}


onJoinedSpectators()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("joined_spectators");
        self thread removeRankHUD();
    }
}


onPlayerSpawned()
{
    self endon("disconnect");

    for(;;)
    {
        self waittill("spawned_player");

        if(!isdefined(self.hud_rankscroreupdate))
        {
            self.hud_rankscroreupdate = NewScoreHudElem(self);
            self.hud_rankscroreupdate.horzAlign = "center";
            self.hud_rankscroreupdate.vertAlign = "middle";
            self.hud_rankscroreupdate.alignX = "center";
            self.hud_rankscroreupdate.alignY = "middle";
             self.hud_rankscroreupdate.x = 0;
            if( self IsSplitscreen() )
                self.hud_rankscroreupdate.y = -15;
            else
                self.hud_rankscroreupdate.y = -60;
            self.hud_rankscroreupdate.font = "default";
            self.hud_rankscroreupdate.fontscale = 2.0;
            self.hud_rankscroreupdate.archived = false;
            self.hud_rankscroreupdate.color = (0.5,0.5,0.5);
            self.hud_rankscroreupdate.alpha = 0;
            self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
            self.hud_rankscroreupdate.overrridewhenindemo = true;
        }
    }
}

incCodPoints( amount )
{
    if( !isRankEnabled() )
        return;

    if( level.wagerMatch )
        return;

    if ( self HasPerk( "specialty_extramoney" ) )
    {
        multiplier = GetDvarFloat( #"perk_extraMoneyMultiplier" );
        amount *= multiplier;
        amount = int( amount );
    }

    newCodPoints = getCodPointsCapped( self.pers["codpoints"] + amount );
    if ( newCodPoints > self.pers["codpoints"] )
    {
        self.pers["summary"]["codpoints"] += ( newCodPoints - self.pers["codpoints"] );
    }
    self.pers["codpoints"] = newCodPoints;
    
    setCodPointsStat( int( newCodPoints ) );
}

giveRankXP( type, value, devAdd )
{
    self endon("disconnect");

    if ( level.teamBased && (!level.playerCount["allies"] || !level.playerCount["axis"]) && !isDefined( devAdd ) )
        return;
    else if ( !level.teamBased && (level.playerCount["allies"] + level.playerCount["axis"] < 2) && !isDefined( devAdd ) )
        return;

    if( !isRankEnabled() )
        return;        

    if( level.wagerMatch || !level.onlineGame || ( GetDvarInt( #"xblive_privatematch" ) && !GetDvarInt( #"xblive_basictraining" ) ) )
        return;
        
    pixbeginevent("giveRankXP");        

    if ( !isDefined( value ) )
        value = getScoreInfoValue( type );
    
    switch( type )
    {
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
            xpGain_type = "assist";
            break;
        default:
            xpGain_type = type;
            break;
    }
    
    if ( !isDefined( self.xpGains[xpGain_type] ) )
        self.xpGains[xpGain_type] = 0;

    // Blackbox
    if( level.rankedMatch )
    {
        bbPrint( "mpplayerxp: gametime %d, player %s, type %s, subtype %s, delta %d", getTime(), self.name, xpGain_type, type, value );
    }
        
    switch( type )
    {
        case "kill":
        case "headshot":
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
        case "capture":
        case "defend":
        case "return":
        case "pickup":
        case "plant":
        case "defuse":
        case "assault":
        case "revive":
        case "medal":
            value = int( value * level.xpScale );
            break;
        default:
            if ( level.xpScale == 0 )
                value = 0;
            break;
    }

    self.xpGains[xpGain_type] += value;
        
    xpIncrease = self incRankXP( value );

    if ( level.rankedMatch && updateRank() )
        self thread updateRankAnnounceHUD();

    // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    if ( value != 0 )
    {
        self syncXPStat();
    }

    if ( isDefined( self.enableText ) && self.enableText && !level.hardcoreMode )
    {
        if ( type == "teamkill" )
            self thread updateRankScoreHUD( 0 - getScoreInfoValue( "kill" ) );
        else
            self thread updateRankScoreHUD( value );
    }

    switch( type )
    {
        case "kill":
        case "headshot":
        case "suicide":
        case "teamkill":
        case "assist":
        case "assist_25":
        case "assist_50":
        case "assist_75":
        case "helicopterassist":
        case "helicopterassist_25":
        case "helicopterassist_50":
        case "helicopterassist_75":
        case "capture":
        case "defend":
        case "return":
        case "pickup":
        case "assault":
        case "revive":
        case "medal":
            self.pers["summary"]["score"] += value;
            incCodPoints( round_this_number( value * level.codPointsXPScale ) );
            break;

        case "win":
        case "loss":
        case "tie":
            self.pers["summary"]["match"] += value;
            incCodPoints( round_this_number( value * level.codPointsMatchScale ) );
            break;

        case "challenge":
            self.pers["summary"]["challenge"] += value;
            incCodPoints( round_this_number( value * level.codPointsChallengeScale ) );
            break;
            
        default:
            self.pers["summary"]["misc"] += value;    //keeps track of ungrouped match xp reward
            self.pers["summary"]["match"] += value;
            incCodPoints( round_this_number( value * level.codPointsMatchScale ) );
            break;
    }
    
    self.pers["summary"]["xp"] += xpIncrease;
    
    pixendevent();
}

round_this_number( value )
{
    value = int( value + 0.5 );
    return value;
}

updateRank()
{
    newRankId = self getRank();
    if ( newRankId == self.pers["rank"] )
        return false;

    oldRank = self.pers["rank"];
    rankId = self.pers["rank"];
    self.pers["rank"] = newRankId;

    // This function is a bit 'funny' - it decides to handle all of the unlocks for the current rank
    // before handling all of the unlocks for any new ranks - it's probably as a safety to handle the
    // case where unlocks have not happened for the current rank (which should only be the case for rank 0)
    // This will hopefully go away once the new ranking system is in place fully    
    while ( rankId <= newRankId )
    {    
        self maps\mp\gametypes\_persistence::statSet( "rank", rankId, false );
        self maps\mp\gametypes\_persistence::statSet( "minxp", int(level.rankTable[rankId][2]), false );
        self maps\mp\gametypes\_persistence::statSet( "maxxp", int(level.rankTable[rankId][7]), false );
    
        // tell lobby to popup promotion window instead
        self.setPromotion = true;
        if ( level.rankedMatch && level.gameEnded && !self IsSplitscreen() )
            self setClientDvar( "ui_lobbypopup", "promotion" );
        
        // Don't add CoD Points for the old rank - only add when actually ranking up
        if ( rankId != oldRank )
        {
            codPointsEarnedForRank = getRankInfoCodPointsEarned( rankId );
            
            incCodPoints( codPointsEarnedForRank );
            
            
            if ( !IsDefined( self.pers["rankcp"] ) )
            {
                self.pers["rankcp"] = 0;
            }
            
            self.pers["rankcp"] += codPointsEarnedForRank;
        }

        rankId++;
    }
    self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "time_played_total" ) );        

    self setRank( newRankId );

    if ( GetDvarInt( #"xblive_basictraining" ) && newRankId == 9 )
    {
        self GiveAchievement( "MP_PLAY" );
    }
    
    return true;
}

updateRankAnnounceHUD()
{
    self endon("disconnect");

    size = self.rankNotifyQueue.size;
    self.rankNotifyQueue[size] = spawnstruct();
    
    display_rank_column = 14;
    self.rankNotifyQueue[size].rank = int( level.rankTable[ self.pers["rank"] ][ display_rank_column ] );
    self.rankNotifyQueue[size].prestige = self.pers["prestige"];
    
    self notify( "received award" );
}

getItemIndex( refString )
{
    itemIndex = int( tableLookup( "mp/statstable.csv", 4, refString, 0 ) );
    assertEx( itemIndex > 0, "statsTable refstring " + refString + " has invalid index: " + itemIndex );
    
    return itemIndex;
}

buildStatsMilestoneInfo()
{
    level.statsMilestoneInfo = [];
    
    for ( tierNum = 1; tierNum <= level.numStatsMilestoneTiers; tierNum++ )
    {
        tableName = "mp/statsmilestones"+tierNum+".csv";
        
        moveToNextTable = false;

        for( idx = 0; idx < level.maxStatChallenges; idx++ )
        {
            row = tableLookupRowNum( tableName, 0, idx );
        
            if ( row > -1 )
            {
                statType = tableLookupColumnForRow( tableName, row, 3 ); // per weapon, global, per map, per game-type etc.
                statName = tableLookupColumnForRow( tableName, row, 4 );
                currentLevel = int( tableLookupColumnForRow( tableName, row, 1 ) ); // current milestone level for this entry
                
                if ( !isDefined( level.statsMilestoneInfo[statType] ) )
                {
                    level.statsMilestoneInfo[statType] = [];
                }
                
                if ( !isDefined( level.statsMilestoneInfo[statType][statName] ) )
                {
                    level.statsMilestoneInfo[statType][statName] = [];
                }

                level.statsMilestoneInfo[statType][statName][currentLevel] = [];
                level.statsMilestoneInfo[statType][statName][currentLevel]["index"] = idx;
                level.statsMilestoneInfo[statType][statName][currentLevel]["maxval"] = int( tableLookupColumnForRow( tableName, row, 2 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["name"] = tableLookupColumnForRow( tableName, row, 5 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["xpreward"] = int( tableLookupColumnForRow( tableName, row, 6 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["cpreward"] = int( tableLookupColumnForRow( tableName, row, 7 ) );
                level.statsMilestoneInfo[statType][statName][currentLevel]["exclude"] = tableLookupColumnForRow( tableName, row, 8 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["unlockitem"] = tableLookupColumnForRow( tableName, row, 9 );
                level.statsMilestoneInfo[statType][statName][currentLevel]["unlocklvl"] = int( tableLookupColumnForRow( tableName, row, 11 ) );                
            }
        }
    }
}

endGameUpdate()
{
    player = self;            
}

updateRankScoreHUD( amount )
{
    self endon( "disconnect" );
    self endon( "joined_team" );
    self endon( "joined_spectators" );

    if ( amount == 0 )
        return;

    self notify( "update_score" );
    self endon( "update_score" );

    self.rankUpdateTotal += amount;

    wait ( 0.05 );

    if( isDefined( self.hud_rankscroreupdate ) )
    {            
        if ( self.rankUpdateTotal < 0 )
        {
            self.hud_rankscroreupdate.label = &"";
            self.hud_rankscroreupdate.color = (0.73,0.19,0.19);
        }
        else
        {
            self.hud_rankscroreupdate.label = &"MP_PLUS";
            self.hud_rankscroreupdate.color = (1,1,0.5);
        }

        self.hud_rankscroreupdate setValue(self.rankUpdateTotal);

        self.hud_rankscroreupdate.alpha = 0.85;
        self.hud_rankscroreupdate thread maps\mp\gametypes\_hud::fontPulse( self );

        wait 1;
        self.hud_rankscroreupdate fadeOverTime( 0.75 );
        self.hud_rankscroreupdate.alpha = 0;
        
        self.rankUpdateTotal = 0;
    }
}

removeRankHUD()
{
    if(isDefined(self.hud_rankscroreupdate))
        self.hud_rankscroreupdate.alpha = 0;
}

getRank()
{    
    rankXp = getRankXPCapped( self.pers["rankxp"] );
    rankId = self.pers["rank"];
    
    if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
        return rankId;
    else
        return self getRankForXp( rankXp );
}

getRankForXp( xpVal )
{
    rankId = 0;
    rankName = level.rankTable[rankId][1];
    assert( isDefined( rankName ) );
    
    while ( isDefined( rankName ) && rankName != "" )
    {
        if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
            return rankId;

        rankId++;
        if ( isDefined( level.rankTable[rankId] ) )
            rankName = level.rankTable[rankId][1];
        else
            rankName = undefined;
    }
    
    rankId--;
    return rankId;
}

getSPM()
{
    rankLevel = self getRank() + 1;
    return (3 + (rankLevel * 0.5))*10;
}

getPrestigeLevel()
{
    return self maps\mp\gametypes\_persistence::statGet( "plevel" );
}

getRankXP()
{
    return getRankXPCapped( self.pers["rankxp"] );
}

incRankXP( amount )
{
    if ( !level.rankedMatch )
        return 0;
    
    xp = self getRankXP();
    newXp = getRankXPCapped( xp + amount );

    if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
        newXp = getRankInfoMaxXP( level.maxRank );
        
    xpIncrease = getRankXPCapped( newXp ) - self.pers["rankxp"];
    
    if ( xpIncrease < 0 )
    {
        xpIncrease = 0;
    }

    self.pers["rankxp"] = getRankXPCapped( newXp );
    
    return xpIncrease;
}

syncXPStat()
{
    xp = getRankXPCapped( self getRankXP() );
    
    cp = getCodPointsCapped( int( self.pers["codpoints"] ) );
    
    self maps\mp\gametypes\_persistence::statSet( "rankxp", xp, false );
    
    self maps\mp\gametypes\_persistence::statSet( "codpoints", cp, false );
}
[Image: 30xhrep.png]

A casual conversation between barata and I about Nukem.
  Reply
#3
still bad syntax error...
  Reply
#4
Hi Kornik755,

I am not the best modder but this I do know this.
You got Level.bunkerList [0] and a pair of 40 bunkers later I see Level.bunkerList [0] again.
So I think u would probably mean this :

PHP Code:
level.bunkerList[0] = createBlock((-855.311841.672, -54.2319), (000));
level.bunkerList[1] = createBlock((-855.311841.672, -27.1069), (000));
level.bunkerList[2] = createBlock((-855.311841.6720.0181351), (000));
level.bunkerList[3] = createBlock((-855.311841.67227.1431), (000));
level.bunkerList[4] = createBlock((-855.311841.67254.2681), (000));
level.bunkerList[5] = createBlock((-855.311841.67281.3931), (000));
level.bunkerList[6] = createBlock((-855.311841.672108.518), (000));
level.bunkerList[7] = createBlock((-855.311841.672135.643), (000));
level.bunkerList[8] = createBlock((-855.311841.672162.768), (000));
level.bunkerList[9] = createBlock((-855.311841.672189.893), (000));
level.bunkerList[10] = createBlock((-855.311841.672189.893), (000));
level.bunkerList[11] = createBlock((-855.311841.672189.893), (000));
level.bunkerList[12] = createBlock((-841.128919.528, -53.875), (000));
level.bunkerList[13] = createBlock((-841.128919.528, -26.75), (000));
level.bunkerList[14] = createBlock((-841.128919.5280.375), (000));
level.bunkerList[15] = createBlock((-841.128919.52827.5), (000));
level.bunkerList[16] = createBlock((-841.128919.52854.625), (000));
level.bunkerList[17] = createBlock((-841.128919.52881.75), (000));
level.bunkerList[18] = createBlock((-841.128919.528108.875), (000));
level.bunkerList[19] = createBlock((-841.128919.528136), (000));
level.bunkerList[20] = createBlock((-841.128919.528163.125), (000));
level.bunkerList[21] = createBlock((-841.128919.528190.25), (000));
level.bunkerList[22] = createBlock((-841.128919.528190.25), (000));
level.bunkerList[23] = createBlock((-849.91, -68.3028, -50.4166), (000));
level.bunkerList[24] = createBlock((-849.91, -68.3028, -23.2916), (000));
level.bunkerList[25] = createBlock((-849.91, -68.30283.83342), (000));
level.bunkerList[26] = createBlock((-849.91, -68.302830.9584), (000));
level.bunkerList[27] = createBlock((-849.91, -68.302858.0834), (000));
level.bunkerList[28] = createBlock((-849.91, -68.302885.2084), (000));
level.bunkerList[29] = createBlock((-849.91, -68.3028112.333), (000));
level.bunkerList[30] = createBlock((-849.91, -68.3028139.458), (000));
level.bunkerList[31] = createBlock((-849.91, -68.3028166.583), (000));
level.bunkerList[32] = createBlock((-849.91, -68.3028193.708), (000));
level.bunkerList[33] = createBlock((-849.91, -68.3028193.708), (000));
level.bunkerList[34] = createBlock((-858.4, -154.559, -50.8642), (000));
level.bunkerList[35] = createBlock((-858.4, -154.559, -23.7392), (000));
level.bunkerList[36] = createBlock((-858.4, -154.5593.38576), (000));
level.bunkerList[37] = createBlock((-858.4, -154.55930.5108), (000));
level.bunkerList[38] = createBlock((-858.4, -154.55957.6358), (000));
level.bunkerList[39] = createBlock((-858.4, -154.55984.7608), (000));
level.bunkerList[40] = createBlock((-858.4, -154.559111.886), (000));
level.bunkerList[41] = createBlock((-858.4, -154.559139.011), (000));
level.bunkerList[42] = createBlock((-858.4, -154.559166.136), (000));
level.bunkerList[43] = createBlock((-858.4, -154.559193.261), (000));
level.bunkerList[44] = createBlock((-858.4, -154.559193.261), (000));
level.bunkerList[45] = createBlock((-858.4, -154.559193.261), (000));
level.bunkerList[46] = createBlock((-858.4, -154.559193.261), (000));
level.bunkerList[47] = createBlock((-678.609178.238, -46.875), (000));
level.bunkerList[48] = createBlock((-678.609178.238, -19.75), (000));
level.bunkerList[49] = createBlock((-678.609178.2387.375), (000));
level.bunkerList[50] = createBlock((-678.609178.23834.5), (000));
level.bunkerList[51] = createBlock((-678.609178.23861.625), (000));
level.bunkerList[52] = createBlock((-678.609178.23888.75), (000));
level.bunkerList[53] = createBlock((-678.609178.238115.875), (000));
level.bunkerList[54] = createBlock((-678.609178.238143), (000));
level.bunkerList[55] = createBlock((-678.609178.238170.125), (000));
level.bunkerList[56] = createBlock((-678.609178.238197.25), (000));
level.bunkerList[57] = createBlock((-678.609178.238197.25), (000));
level.bunkerList[58] = createBlock((-686.504126.597, -46.875), (000));
level.bunkerList[59] = createBlock((-686.504126.597, -19.75), (000));
level.bunkerList[60] = createBlock((-686.504126.5977.375), (000));
level.bunkerList[61] = createBlock((-686.504126.59734.5), (000));
level.bunkerList[62] = createBlock((-686.504126.59761.625), (000));
level.bunkerList[63] = createBlock((-686.504126.59788.75), (000));
level.bunkerList[64] = createBlock((-686.504126.597115.875), (000));
level.bunkerList[65] = createBlock((-686.504126.597143), (000));
level.bunkerList[66] = createBlock((-757.18185.3596, -46.875), (000));
level.bunkerList[67] = createBlock((-757.18185.3596, -19.75), (000));
level.bunkerList[68] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[69] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[70] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[71] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[72] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[73] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[74] = createBlock((-757.18185.35967.375), (000));
level.bunkerList[75] = createBlock((-732.17.441538.79673), (000));
level.bunkerList[76] = createBlock((-742.97919.571735.9217), (000));
level.bunkerList[77] = createBlock((-742.97919.571763.0467), (000));
level.bunkerList[78] = createBlock((-742.97919.571790.1717), (000));
level.bunkerList[79] = createBlock((-742.97919.5717117.297), (000));
level.bunkerList[80] = createBlock((-742.97919.5717144.422), (000));
level.bunkerList[81] = createBlock((-742.97919.5717171.547), (000));
level.bunkerList[82] = createBlock((-742.97919.5717195.875), (000));
level.bunkerList[83] = createBlock((-742.97919.5717195.875), (000));
level.bunkerList[84] = createBlock((-742.97919.5717195.875), (000));
level.bunkerList[85] = createBlock((-663.24151.1684, -46.875), (000));
level.bunkerList[86] = createBlock((-663.24151.1684, -19.75), (000));
level.bunkerList[87] = createBlock((-663.24151.16847.375), (000));
level.bunkerList[88] = createBlock((-663.24151.168434.5), (000));
level.bunkerList[89] = createBlock((-663.24151.168461.625), (000));
level.bunkerList[90] = createBlock((-663.24151.168488.75), (000));
level.bunkerList[91] = createBlock((-663.24151.1684115.875), (000));
level.bunkerList[92] = createBlock((-663.24151.1684143), (000));
level.bunkerList[93] = createBlock((-663.24151.1684170.125), (000));
level.bunkerList[94] = createBlock((-453.771387.073, -51.875), (000));
level.bunkerList[95] = createBlock((-425.225376.647, -25.8744), (0, -1650));
level.bunkerList[96] = createBlock((-425.225376.6471.25059), (0, -1650));
level.bunkerList[97] = createBlock((-391.186385.741, -12.4266), (0, -1650));
level.bunkerList[98] = createBlock((-391.186385.74114.6984), (0, -1650));
level.bunkerList[99] = createBlock((-474.011402.226, -24.7774), (0, -1650));
level.bunkerList[100] = createBlock((-436.109321.272, -51.4188), (0, -1650));
level.bunkerList[101] = createBlock((-436.109321.272, -24.2938), (0, -1650));
level.bunkerList[102] = createBlock((-436.109321.2722.83121), (0, -1650));
level.bunkerList[103] = createBlock((-429.874319.00229.9562), (0, -1650));
level.bunkerList[104] = createBlock((-429.874319.00257.0812), (0, -1650));
level.bunkerList[105] = createBlock((700.072505.367, -46.875), (0, -1650));
level.bunkerList[106] = createBlock((700.072505.367, -19.75), (0, -1650));
level.bunkerList[107] = createBlock((705.032505.9537.375), (0, -1650));
level.bunkerList[108] = createBlock((725.344443.329, -46.875), (0, -1650));
level.bunkerList[109] = createBlock((725.344443.329, -19.75), (0, -1650));
level.bunkerList[110] = createBlock((725.344443.3297.375), (0, -1650));
level.bunkerList[111] = createBlock((730.152444.61834.5), (0, -1650));
level.bunkerList[112] = createBlock((705.115804.824, -53.9952), (0, -1650));
level.bunkerList[113] = createBlock((704.751806.18, -26.8702), (0, -1650));
level.bunkerList[114] = createBlock((700.963820.3170.254799), (0, -1650));
level.bunkerList[115] = createBlock((700.963820.31727.3798), (0, -1650));
level.bunkerList[116] = createBlock((700.963820.31754.5048), (0, -1650));
level.bunkerList[117] = createBlock((700.963820.31781.6298), (0, -1650));
level.bunkerList[118] = createBlock((700.963820.317108.755), (0, -1650));
level.bunkerList[119] = createBlock((719.254883.491, -53.2876), (0, -1650));
level.bunkerList[120] = createBlock((719.254883.491, -26.1626), (0, -1650));
level.bunkerList[121] = createBlock((719.254883.4910.96241), (0, -1650));
level.bunkerList[122] = createBlock((719.254883.49128.0874), (0, -1650));
level.bunkerList[123] = createBlock((719.254883.49155.2124), (0, -1650));
level.bunkerList[124] = createBlock((719.254883.49182.3374), (0, -1650));
level.bunkerList[125] = createBlock((719.254883.491109.462), (0, -1650));
level.bunkerList[126] = createBlock((701.721940.207, -52.7068), (0, -1650));
level.bunkerList[127] = createBlock((701.721940.207, -25.5818), (0, -1650));
level.bunkerList[128] = createBlock((601.312, -109.741, -54.1649), (0, -1650));
level.bunkerList[129] = createBlock((601.312, -109.741, -27.0399), (0, -1650));
level.bunkerList[130] = createBlock((601.312, -109.7410.0851364), (0, -1650));
level.bunkerList[131] = createBlock((608.957, -106.25327.2101), (0, -1650));
level.bunkerList[132] = createBlock((608.957, -106.25354.3351), (0, -1650));
level.bunkerList[133] = createBlock((592.928, -59.0473, -54.1552), (0, -1650));
level.bunkerList[134] = createBlock((592.571, -57.7157, -27.0302), (0, -1650));
level.bunkerList[135] = createBlock((592.571, -57.71570.0948105), (0, -1650));
level.bunkerList[136] = createBlock((592.571, -57.715727.2198), (0, -1650));
level.bunkerList[137] = createBlock((592.571, -57.715754.3448), (0, -1650));
level.bunkerList[138] = createBlock((592.571, -57.715781.4698), (0, -1650));
level.bunkerList[139] = createBlock((592.571, -57.7157108.595), (0, -1650));
level.bunkerList[140] = createBlock((604.447116.151, -46.875), (0, -1650));
level.bunkerList[141] = createBlock((604.447116.151, -19.75), (0, -1650));
level.bunkerList[142] = createBlock((614.526118.8517.375), (0, -1650));
level.minigunList[0] = createMinigun((-554.68301.29779.125), (0, -10.20210));
level.minigunList[1] = createMinigun((675.74568.521579.125), (0, -162.90)); 
  Reply
#5
(01-10-2011, 08:51)Kornik755 Wrote: still bad syntax error...

dude it should not start over like i said.

u got level.bunkerList [0] to [140] and level.minigunList [0] to [1] only take that one

when the amount of level.bunkerList start at [0] u should choose. cuz it are different bunkers i prefer for u to choose the last one from level.bunkerList [0] to [...] + the level.minigunList [0] + [1] but when u got twice the same level.bunkerList [0] or another number he would give syntax error cuz u can't load twice the same while both number [0] are on a different place.

so if i where u, i should delete that bunch of bunkers of u and replace it with this.
PHP Code:
level.bunkerList[0] = createBlock((-841.225, -27.0722, -59.1761), (000));
level.bunkerList[1] = createBlock((-841.225, -27.0722, -42.0511), (000));
level.bunkerList[2] = createBlock((-841.225, -27.0722, -24.9261), (000));
level.bunkerList[3] = createBlock((-841.225, -27.0722, -7.80106), (000));
level.bunkerList[4] = createBlock((-854.98, -96.1925, -60.5508), (000));
level.bunkerList[5] = createBlock((-854.98, -96.1925, -43.4258), (000));
level.bunkerList[6] = createBlock((-854.98, -96.1925, -26.3008), (000));
level.bunkerList[7] = createBlock((-854.98, -96.1925, -9.17583), (000));
level.bunkerList[8] = createBlock((-857.484, -178.013, -61.0441), (000));
level.bunkerList[9] = createBlock((-857.484, -178.013, -43.9191), (000));
level.bunkerList[10] = createBlock((-857.484, -178.013, -26.7941), (000));
level.bunkerList[11] = createBlock((-857.484, -178.013, -9.66909), (000));
level.bunkerList[12] = createBlock((-438.035375.967, -61.7802), (000));
level.bunkerList[13] = createBlock((-438.035375.967, -44.6552), (000));
level.bunkerList[14] = createBlock((-438.035375.967, -27.5302), (000));
level.bunkerList[15] = createBlock((-438.035375.967, -10.4052), (000));
level.bunkerList[16] = createBlock((-807.133767.783, -64.5597), (000));
level.bunkerList[17] = createBlock((-807.133767.783, -47.4347), (000));
level.bunkerList[18] = createBlock((-807.133767.783, -30.3097), (000));
level.bunkerList[19] = createBlock((-807.133767.783, -13.1847), (000));
level.bunkerList[20] = createBlock((-809.331827, -64.262), (000));
level.bunkerList[21] = createBlock((-809.331827, -47.137), (000));
level.bunkerList[22] = createBlock((-809.331827, -30.012), (000));
level.bunkerList[23] = createBlock((-809.331827, -12.887), (000));
level.bunkerList[24] = createBlock((-795.991901.751, -63.875), (000));
level.bunkerList[25] = createBlock((-795.991901.751, -46.75), (000));
level.bunkerList[26] = createBlock((-795.991901.751, -29.625), (000));
level.bunkerList[27] = createBlock((-795.991901.751, -12.5), (000));
level.bunkerList[28] = createBlock((-800.327199.613, -56.875), (000));
level.bunkerList[29] = createBlock((-800.327199.613, -39.75), (000));
level.bunkerList[30] = createBlock((-800.327199.613, -22.625), (000));
level.bunkerList[31] = createBlock((-800.327199.613, -5.5), (000));
level.bunkerList[32] = createBlock((-758.685266.651, -56.875), (000));
level.bunkerList[33] = createBlock((-758.685266.651, -39.75), (000));
level.bunkerList[34] = createBlock((-758.685266.651, -22.625), (000));
level.bunkerList[35] = createBlock((-758.685266.651, -5.5), (000));
level.bunkerList[36] = createBlock((-838.573, -36.97279.32394), (000));
level.bunkerList[37] = createBlock((-855.221, -95.2467.94917), (000));
level.bunkerList[38] = createBlock((-866.581, -173.4737.4559), (000));
level.bunkerList[39] = createBlock((768.169819.972, -63.9863), (000));
level.bunkerList[40] = createBlock((767.676821.813, -46.8613), (000));
level.bunkerList[41] = createBlock((767.15823.776, -29.7363), (000));
level.bunkerList[42] = createBlock((763.581837.096, -12.6113), (000));
level.bunkerList[43] = createBlock((751.272905.515, -63.2435), (000));
level.bunkerList[44] = createBlock((751.272905.515, -46.1185), (000));
level.bunkerList[45] = createBlock((751.272905.515, -28.9935), (000));
level.bunkerList[46] = createBlock((751.272905.515, -11.8685), (000));
level.bunkerList[47] = createBlock((724.959948.2184.00255), (000));
level.bunkerList[48] = createBlock((659.741434.444, -57.5852), (000));
level.bunkerList[49] = createBlock((659.741434.444, -40.4602), (000));
level.bunkerList[50] = createBlock((659.741434.444, -23.3352), (000));
level.bunkerList[51] = createBlock((659.741434.444, -6.2102), (000));
level.bunkerList[52] = createBlock((665.134508.027, -57.2218), (000));
level.bunkerList[53] = createBlock((665.134508.027, -40.0968), (000));
level.bunkerList[54] = createBlock((665.134508.027, -22.9718), (000));
level.bunkerList[55] = createBlock((665.134508.027, -5.84684), (000));
level.bunkerList[56] = createBlock((498.40599.3426, -60.375), (000));
level.bunkerList[57] = createBlock((498.40599.3426, -43.25), (000));
level.bunkerList[58] = createBlock((498.40599.3426, -26.125), (000));
level.bunkerList[59] = createBlock((498.40599.3426, -9), (000));
level.bunkerList[60] = createBlock((546.436140.449, -60.375), (0900));
level.bunkerList[61] = createBlock((546.632148.426, -43.1853), (0900));
level.bunkerList[62] = createBlock((546.632148.426, -26.0603), (0900));
level.bunkerList[63] = createBlock((546.632148.426, -8.93533), (0900));
level.bunkerList[64] = createBlock((521.673, -40.2818, -63.1536), (0900));
level.bunkerList[65] = createBlock((520.113, -35.2232, -46.0286), (0900));
level.bunkerList[66] = createBlock((520.113, -35.2232, -28.9036), (0900));
level.bunkerList[67] = createBlock((520.113, -35.2232, -11.7786), (0900));
level.bunkerList[68] = createBlock((478.5631.8404, -61.9324), (000));
level.bunkerList[69] = createBlock((478.5631.8404, -44.8074), (000));
level.bunkerList[70] = createBlock((478.5631.8404, -27.6824), (000));
level.bunkerList[71] = createBlock((478.5631.8404, -10.5574), (000));
level.bunkerList[72] = createBlock((566.062, -88.474, -64.1349), (000));
level.bunkerList[73] = createBlock((566.062, -88.474, -47.0099), (000));
level.bunkerList[74] = createBlock((566.062, -88.474, -29.8849), (000));
level.bunkerList[75] = createBlock((566.062, -88.474, -12.7599), (000));
level.bunkerList[76] = createBlock((-795.134884.1994.625), (000));
level.bunkerList[77] = createBlock((-821.271811.734.23803), (000));
level.bunkerList[78] = createBlock((-814.727740.4023.94031), (000));
level.minigunList[0] = createMinigun((-543.027297.05279.125), (0, -11.46910));
level.minigunList[1] = createMinigun((618.0464479.125), (0, -172.7670)); 

greetz Ferry Adams



  Reply
#6
show us ur updated .gsc after master131 told u to change
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  What game have you bought in the last week? RaZ 12 7,208 12-05-2013, 16:29
Last Post: Nekochan
  [GAME]The Letter Game Bandarigoda123 65 26,741 08-08-2013, 21:05
Last Post: AZUMIKKEL
  [Release] AntiRage for Infected Game Mode yokai134 17 13,208 08-04-2013, 22:22
Last Post: yokai134
  ESTRANGED best indie game I've seen so far Arteq 0 2,321 08-03-2013, 14:03
Last Post: Arteq
  [HELP] bo2 - FD1 - dis-attach the console from the game masis 8 5,418 07-17-2013, 23:01
Last Post: surtek
Smile [Release] Map & Game Type Changer Plugin (Fixed) 30mba 31 20,052 07-10-2013, 16:27
Last Post: 26hz
  Selling steam account for a game! Strentin 3 3,841 06-18-2013, 07:49
Last Post: xfxtroll
  Help Using chat outside in game Bandarigoda123 1 2,824 06-09-2013, 12:46
Last Post: Nekochan
  Help Game Not Reading Mod? Killjoy 6 4,981 06-08-2013, 14:49
Last Post: Killjoy
Brick Lesson 3: Making game in C++ Nekochan 2 3,273 06-03-2013, 15:25
Last Post: Nekochan

Forum Jump:


Users browsing this thread: 1 Guest(s)