[Release] Reborn Emu Alteric Valley Script. menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Release] Reborn Emu Alteric Valley Script.

    Code:
    #include "StdAfx.h"
    
    static float GraveyardLocations[8][3] = {
    	{ 524.940552f, -29.997475f, 13.763262f },
    	{ 675.134583f, 372.005310f, 29.780762f },
    	{ 74.133293f, -496.987213f, 48.780075f },
    	{ -157.109634f, 29.199911f, 77.037743f },
    	{ -529.862905f, -406.268829f, 49.568283f },
    	{ -904.423279f, -523.532532f, 54.100018f },
    	{ -1092.466553f, -250.653748f, 57.653618f },
    	{ -1376.537720f, -359.065948f, 62.629608f },
    };
    
    static float NoBaseGYLocations[2][3] = {
    	{ -1434.332397f, -602.320313f, 51.260033f }, // HORDE
    	{ 819.385010f, -501.429993f, 100.657997f }, // ALLIANCE
    };
    
    static float BossLocations[2][4] = {
    	{ -851.126038f, -92.922371f, 68.520264f, 4.406091f }, //Boss Coldtooth
    	{ 879.288757f, -445.163849f, 54.586529f, 2.608057f }, //Boss Irondeep
    };
    static float ColdtoothUnitLocations[AV_UNIT_COLDTOOTH_TOTAL_COUNT][4] = {
    	{ -951.675842f, -199.578018f, 77.028801f, 3.752629f }, //Miner
    	{ -952.080688f, -152.753128f, 79.828300f, 2.126069f }, //Miner
    	{ -951.902344f, -149.673996f, 80.235268f, 3.038702f }, //Miner
    	{ -951.675293f, -146.869843f, 80.448769f, 3.380350f }, //Miner
    	{ -941.351746f, -141.993683f, 79.875656f, 6.042850f }, //Miner
    	{ -939.312073f, -139.836823f, 80.005623f, 5.396467f }, //Miner
    	{ -936.773132f, -137.766525f, 79.760925f, 5.396467f }, //Miner
    	{ -946.288330f, -129.965424f, 79.301697f, 3.401559f }, //Miner
    	{ -947.645325f, -127.650986f, 79.124908f, 3.401559f }, //Miner
    	{ -948.395630f, -124.830070f, 78.897942f, 3.401559f }, //Miner
    	{ -939.450378f, -113.941566f, 80.530563f, 0.647168f }, //Miner
    	{ -942.563354f, -111.199425f, 80.308113f, 1.080708f }, //Miner
    	{ -946.339844f, -104.364647f, 80.991714f, 0.529358f }, //Miner
    	{ -962.015869f, -103.636261f, 81.627930f, 3.579060f }, //Miner
    	{ -967.286804f, -99.641296f, 82.229469f, 4.294559f }, //Miner
    	{ -956.429504f, -113.172653f, 81.147011f, 3.980399f }, //Miner
    	{ -975.642822f, -89.479706f, 81.649696f, 3.839028f }, //Miner
    	{ -977.220825f, -87.596436f, 81.524452f, 3.839028f }, //Miner
    	{ -978.285828f, -84.838013f, 81.315697f, 3.169869f }, //Miner
    	{ -963.145264f, -82.794479f, 81.450142f, 0.062048f }, //Miner
    	{ -962.933533f, -80.558044f, 80.991341f, 0.062048f }, //Miner
    	{ -962.501831f, -77.671143f, 80.585243f, 6.134747f }, //Miner
    	{ -969.189392f, -42.836658f, 78.273773f, 0.530146f }, //Miner
    	{ -973.145081f, -35.458591f, 77.553101f, 1.357170f }, //Miner
    	{ -978.715088f, -34.342918f, 76.179718f, 2.615378f }, //Miner
    	{ -980.477112f, -43.087669f, 75.496330f, 3.981971f }, //Miner
    	{ -973.668762f, -51.881962f, 75.943909f, 3.666241f }, //Miner
    	{ -951.563477f, -51.574577f, 79.965797f, 2.039682f }, //Miner
    	{ -946.409302f, -49.394199f, 80.373817f, 1.804062f }, //Miner
    	{ -940.196533f, -48.512997f, 80.636269f, 1.566087f }, //Miner
    	{ -941.054871f, -66.651268f, 80.531807f, 4.727314f }, //Miner
    	{ -938.057739f, -67.179352f, 80.352676f, 4.464991f }, //Miner
    	{ -933.300171f, -68.380989f, 80.176819f, 4.464991f }, //Miner
    	{ -922.543518f, -42.684845f, 78.318298f, 2.302005f }, //Miner
    	{ -921.006165f, -40.296322f, 78.200775f, 2.302005f }, //Miner
    	{ -919.903687f, -37.224926f, 78.185249f, 2.985301f }, //Miner
    	{ -933.538696f, -52.357452f, 80.574409f, 3.750279f }, //Miner
    	{ -903.702576f, -67.439514f, 73.985336f, 6.159879f }, //Miner
    	{ -903.223633f, -65.517403f, 74.002869f, 5.543341f }, //Miner
    	{ -900.420715f, -62.918850f, 73.777565f, 5.149857f }, //Miner
    	{ -900.005554f, -47.842934f, 73.262802f, 1.393298f }, //Miner
    	{ -906.756042f, -46.873840f, 74.805428f, 1.239360f }, //Miner
    	{ -908.910828f, -50.408962f, 75.551620f, 3.281397f }, //Miner
    	{ -909.895203f, -46.991993f, 75.636612f, 3.830390f }, //Miner
    	{ -894.651367f, -62.006847f, 72.391701f, 4.926809f }, //Miner
    	{ -890.450195f, -62.775620f, 72.494492f, 4.190106f }, //Miner
    	{ -886.145020f, -64.520821f, 73.156242f, 4.190106f }, //Miner
    	{ -893.831543f, -46.611717f, 72.167099f, 1.655625f }, //Miner
    	{ -891.508911f, -46.414219f, 71.760437f, 1.655625f }, //Miner
    	{ -889.067749f, -46.206638f, 71.624710f, 1.655625f }, //Miner
    	{ -876.838074f, -39.552654f, 69.732674f, 2.562761f }, //Miner
    	{ -876.112671f, -36.463310f, 69.699844f, 2.621666f }, //Miner
    	{ -873.834595f, -33.527237f, 69.240646f, 2.386046f }, //Miner
    	{ -862.354309f, -31.546614f, 70.596893f, 5.727131f }, //Miner
    	{ -860.876343f, -29.168449f, 70.693466f, 5.727131f }, //Miner
    	{ -858.807678f, -26.088909f, 71.519844f, 4.941732f }, //Miner
    	{ -849.765137f, -27.043999f, 71.701225f, 5.405118f }, //Miner
    	{ -847.507874f, -26.440056f, 72.059647f, 5.598328f }, //Miner
    	{ -846.360291f, -23.020168f, 71.482582f, 6.187377f }, //Miner
    	{ -847.503418f, -0.391358f, 72.655296f, 0.948770f }, //Miner
    	{ -850.226257f, 2.370854f, 72.900925f, 0.948770f }, //Miner
    	{ -853.044189f, 1.826273f, 72.778107f, 1.926591f }, //Miner
    	{ -866.745911f, 1.214885f, 72.992172f, 2.492078f }, //Miner
    	{ -870.235168f, -1.040012f, 72.439056f, 2.633450f }, //Miner
    	{ -872.605530f, -4.298996f, 71.548927f, 2.924047f }, //Miner
    	{ -875.218262f, -14.314611f, 70.284790f, 3.257842f }, //Miner
    	{ -874.941711f, -17.633232f, 69.469109f, 3.595563f }, //Miner
    	{ -871.793030f, -20.205734f, 69.567261f, 4.051095f }, //Miner
    	{ -875.927917f, -36.316185f, 69.659538f, 2.790530f }, //Miner
    	{ -876.570679f, -38.071190f, 69.733459f, 2.790530f }, //Miner
    	{ -877.576904f, -40.818726f, 69.895706f, 2.790530f }, //Miner
    	{ -871.929749f, -67.391983f, 73.422104f, 3.685880f }, //Miner
    	{ -871.851257f, -70.984100f, 73.835640f, 3.513093f }, //Miner
    	{ -872.421692f, -76.168755f, 72.676704f, 3.418845f }, //Miner
    	{ -878.462219f, -95.941559f, 67.661888f, 3.098397f }, //Miner
    	{ -880.007996f, -99.432129f, 67.151543f, 3.302601f }, //Miner
    	{ -880.400818f, -102.871170f, 66.922821f, 3.506805f }, //Miner
    	{ -852.852234f, -119.321899f, 63.799610f, 5.403539f }, //Miner
    	{ -850.502747f, -118.311775f, 64.074539f, 5.395685f }, //Miner
    	{ -848.868774f, -116.981514f, 64.399925f, 5.395685f }, //Miner
    	{ -846.324585f, -111.461548f, 64.377922f, 5.937611f }, //Miner
    	{ -845.041748f, -109.264481f, 64.643875f, 5.980806f }, //Miner
    	{ -843.961975f, -105.802986f, 65.327461f, 5.980806f }, //Miner
    	{ -860.888306f, -81.022224f, 70.443695f, 0.176714f }, //Miner
    	{ -861.331055f, -77.904839f, 72.037476f, 5.920331f }, //Miner
    	{ -880.507874f, -129.602051f, 65.144028f, 3.364650f }, //Miner
    	{ -881.440491f, -127.750557f, 65.561348f, 3.364650f }, //Miner
    	{ -882.214722f, -124.337265f, 65.346344f, 3.364650f }, //Miner
    	{ -866.209229f, -129.007767f, 63.393639f, 6.247059f }, //Miner
    	{ -865.766785f, -131.931702f, 62.541473f, 0.038487f }, //Miner
    	{ -863.525513f, -135.519958f, 61.834606f, 0.768907f }, //Miner
    	{ -849.189026f, -151.947968f, 63.978973f, 4.559240f }, //Miner
    	{ -847.341919f, -152.233093f, 63.994961f, 4.559240f }, //Miner
    	{ -844.913696f, -152.607910f, 63.925678f, 4.559240f }, //Miner
    	{ -834.576355f, -160.021423f, 63.644650f, 4.512116f }, //Miner
    	{ -832.285095f, -160.486542f, 63.517120f, 4.512116f }, //Miner
    	{ -828.817627f, -161.468201f, 63.168392f, 4.236442f }, //Miner
    	{ -816.018494f, -157.201492f, 62.095287f, 0.070689f }, //Miner
    	{ -816.290894f, -153.354126f, 62.124077f, 0.070689f }, //Miner
    	{ -816.538086f, -149.862869f, 62.678532f, 0.070689f }, //Miner
    	{ -817.675049f, -132.850632f, 63.556915f, 1.174126f }, //Miner
    	{ -819.289185f, -132.174515f, 63.421944f, 1.174126f }, //Miner
    	{ -822.238525f, -131.490036f, 63.110744f, 1.986228f }, //Miner
    	{ -839.184021f, -130.540558f, 61.146633f, 2.187290f }, //Miner
    	{ -841.759827f, -132.365860f, 61.201546f, 2.187290f }, //Miner
    	{ -841.812744f, -135.274994f, 61.556576f, 2.762202f }, //Miner
    	{ -850.799927f, -138.354645f, 61.694237f, 1.598241f }, //Miner
    	{ -853.120422f, -138.198914f, 61.468708f, 1.362622f }, //Miner
    	{ -855.727112f, -137.564392f, 61.718861f, 0.916516f }, //Miner
    	{ -887.717102f, -148.663223f, 61.769455f, 1.606095f }, //Miner
    	{ -890.570007f, -148.149597f, 61.981949f, 1.606095f }, //Miner
    	{ -892.556763f, -148.219757f, 61.765549f, 1.606095f }, //Miner
    	{ -896.172363f, -158.005676f, 62.124187f, 4.586683f }, //Miner
    	{ -899.020996f, -158.229401f, 61.897179f, 4.586683f }, //Miner
    	{ -900.426453f, -159.219254f, 62.046333f, 4.586683f }, //Miner
    	{ -908.703674f, -149.506516f, 61.894531f, 1.418386f }, //Miner
    	{ -910.975891f, -148.599945f, 62.102985f, 1.022545f }, //Miner
    	{ -913.129517f, -146.813583f, 62.238613f, 0.824625f }, //Miner
    	{ -917.112366f, -158.553406f, 62.339466f, 4.135080f }, //Miner
    	{ -919.421631f, -156.446548f, 62.487144f, 3.821706f }, //Miner
    	{ -921.968567f, -154.386124f, 62.303658f, 4.032193f }, //Miner
    	{ -915.953735f, -139.270142f, 62.420422f, 0.188453f }, //Miner
    	{ -916.303894f, -137.434235f, 62.329872f, 0.188453f }, //Miner
    	{ -916.445740f, -135.231903f, 62.338181f, 6.236019f }, //Miner
    	{ -921.672668f, -125.395042f, 61.431656f, 1.963453f }, //Miner
    	{ -923.942688f, -126.335197f, 61.233959f, 1.963453f }, //Miner
    	{ -925.381287f, -127.703117f, 61.186684f, 2.331019f }, //Miner
    	{ -928.275879f, -136.706848f, 61.189629f, 3.577449f }, //Miner
    	{ -927.288818f, -138.826263f, 61.264538f, 3.577449f }, //Miner
    	{ -926.006226f, -141.580231f, 61.410606f, 3.577449f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -947.900024f, -181.600006f, 64.900002f, 4.000000f }, //Miner
    	{ -954.940735f, -183.659271f, 66.358818f, 2.504589f }, //Miner
    	{ -956.354553f, -185.188324f, 66.427483f, 2.111105f }, //Miner
    	{ -958.257446f, -186.329773f, 66.543785f, 1.586459f }, //Miner
    	{ -958.708862f, -197.804047f, 67.742027f, 5.108968f }, //Miner
    	{ -960.068970f, -199.551071f, 68.423386f, 5.658747f }, //Miner
    	{ -962.109070f, -201.749725f, 69.102318f, 5.343017f }, //Miner
    	{ -964.687744f, -210.391998f, 69.157356f, 4.480697f }, //Guard
    	{ -970.826416f, -204.880524f, 68.787331f, 4.963715f }, //Guard
    	{ -934.516357f, -208.744507f, 73.824043f, 5.658792f }, //Guard
    	{ -931.020081f, -202.420807f, 73.625000f, 5.344633f }, //Guard
    	{ -951.010071f, -224.439911f, 77.011658f, 5.028900f }, //Guard
    	{ -960.099609f, -221.510406f, 77.010292f, 3.670161f }, //Guard
    	{ -955.854736f, -169.482758f, 77.939476f, 5.260593f }, //Guard
    	{ -945.031067f, -115.147591f, 79.202194f, 4.915022f }, //Guard
    	{ -968.452698f, -76.545227f, 79.946907f, 4.789365f }, //Guard
    	{ -974.368347f, -40.801674f, 76.524323f, 5.193847f }, //Guard
    	{ -927.272400f, -59.863743f, 80.752541f, 6.175591f }, //Guard
    	{ -915.575439f, -149.946091f, 76.945404f, 4.024389f }, //Guard
    	{ -901.613770f, -133.054199f, 74.799812f, 1.310053f }, //Guard
    	{ -888.369751f, -111.089371f, 76.204712f, 1.859046f }, //Guard
    	{ -853.225403f, -92.037659f, 68.575348f, 4.410018f }, //Guard
    	{ -849.018433f, -93.209724f, 68.540672f, 4.303204f }, //Guard
    };
    
    static float IrondeepUnitLocations[AV_UNIT_IRONDEEP_TOTAL_COUNT][4] = {
    	{ 795.778687f, -337.416473f, 63.109859f, 4.098117f }, //Miner
    	{ 796.965515f, -339.002625f, 63.211918f, 3.783957f }, //Miner
    	{ 798.548157f, -339.996796f, 63.154366f, 4.151524f }, //Miner
    	{ 806.339417f, -335.301117f, 64.789520f, 2.252432f }, //Miner
    	{ 807.616760f, -332.390015f, 65.419891f, 2.562664f }, //Miner
    	{ 808.422668f, -329.791016f, 66.136688f, 2.562664f }, //Miner
    	{ 818.674805f, -338.113251f, 67.147720f, 5.278572f }, //Miner
    	{ 821.195679f, -336.643921f, 66.838531f, 4.899225f }, //Miner
    	{ 824.211609f, -336.995178f, 66.861832f, 4.270121f }, //Miner
    	{ 834.871887f, -327.330292f, 65.587944f, 0.816725f }, //Miner
    	{ 836.239319f, -328.614624f, 66.289398f, 0.816725f }, //Miner
    	{ 837.980408f, -330.170349f, 66.885880f, 1.118318f }, //Miner
    	{ 834.432800f, -343.528198f, 65.734352f, 4.013298f }, //Miner
    	{ 835.595459f, -344.505707f, 65.919281f, 4.013298f }, //Miner
    	{ 837.567200f, -346.163422f, 66.185410f, 4.013298f }, //Miner
    	{ 850.104370f, -337.986328f, 66.953659f, 0.753894f }, //Miner
    	{ 851.867615f, -339.864319f, 66.490509f, 0.753894f }, //Miner
    	{ 855.413147f, -342.139069f, 66.939774f, 1.593485f }, //Miner
    	{ 861.322632f, -352.821014f, 65.016502f, 4.602350f }, //Miner
    	{ 863.369873f, -353.979401f, 65.060905f, 4.284264f }, //Miner
    	{ 866.013245f, -356.347595f, 65.720367f, 4.284264f }, //Miner
    	{ 866.618591f, -342.024536f, 65.274963f, 1.664958f }, //Miner
    	{ 869.531616f, -341.749420f, 65.688576f, 1.664958f }, //Miner
    	{ 873.915771f, -341.751007f, 65.712349f, 3.264029f }, //Miner
    	{ 889.977905f, -348.592224f, 67.634140f, 5.391674f }, //Miner
    	{ 891.889526f, -347.048645f, 67.995659f, 5.391674f }, //Miner
    	{ 893.467957f, -344.872894f, 68.564789f, 5.655567f }, //Miner
    	{ 892.862366f, -329.453400f, 68.417000f, 1.990897f }, //Miner
    	{ 894.894836f, -328.545532f, 68.057640f, 1.990897f }, //Miner
    	{ 897.430725f, -326.784485f, 67.727570f, 1.983043f }, //Miner
    	{ 906.295105f, -335.488708f, 67.696983f, 4.865458f }, //Miner
    	{ 908.728638f, -335.629120f, 67.576355f, 4.549727f }, //Miner
    	{ 911.836609f, -336.478333f, 67.043564f, 4.128754f }, //Miner
    	{ 923.854370f, -328.780579f, 65.924301f, 0.848145f }, //Miner
    	{ 925.489563f, -329.817047f, 65.825737f, 1.091619f }, //Miner
    	{ 928.806580f, -331.540436f, 65.946632f, 1.091619f }, //Miner
    	{ 922.238037f, -343.892883f, 67.033981f, 3.604893f }, //Miner
    	{ 923.058777f, -346.646637f, 67.042526f, 3.093599f }, //Miner
    	{ 922.912720f, -349.688141f, 67.068306f, 3.093599f }, //Miner
    	{ 952.045715f, -338.279419f, 64.936005f, 5.701910f }, //Miner
    	{ 955.489014f, -337.235901f, 64.757027f, 6.035701f }, //Miner
    	{ 959.662354f, -333.351135f, 63.116718f, 0.117724f }, //Miner
    	{ 959.906677f, -328.710815f, 62.183804f, 1.609981f }, //Miner
    	{ 956.798584f, -326.650299f, 61.648365f, 1.782768f }, //Miner
    	{ 952.313416f, -325.108459f, 61.933151f, 2.489627f }, //Miner
    	{ 949.845764f, -326.124542f, 61.953075f, 2.560313f }, //Miner
    	{ 944.233582f, -330.781738f, 61.917015f, 2.273642f }, //Miner
    	{ 937.447205f, -331.873322f, 63.037842f, 2.269715f }, //Miner
    	{ 939.557129f, -352.795715f, 66.257820f, 0.079239f }, //Miner
    	{ 939.834167f, -356.284729f, 66.248787f, 0.079239f }, //Miner
    	{ 939.870972f, -360.018555f, 66.838615f, 6.046694f }, //Miner
    	{ 935.814636f, -365.786987f, 66.708900f, 2.867404f }, //Miner
    	{ 918.401123f, -365.904724f, 66.754158f, 3.441015f }, //Miner
    	{ 917.482788f, -367.562103f, 66.573593f, 2.812696f }, //Miner
    	{ 916.294067f, -370.342224f, 66.241653f, 2.315539f }, //Miner
    	{ 913.957031f, -377.341858f, 65.658813f, 3.130783f }, //Miner
    	{ 913.749695f, -379.537048f, 64.887520f, 2.566867f }, //Miner
    	{ 926.178650f, -385.042816f, 61.962608f, 5.738306f }, //Miner
    	{ 934.418457f, -383.875122f, 63.112804f, 4.242126f }, //Miner
    	{ 935.730286f, -393.691193f, 62.064182f, 2.549592f }, //Miner
    	{ 930.338257f, -408.065369f, 57.893726f, 5.856113f }, //Miner
    	{ 929.389221f, -414.967438f, 56.550648f, 0.477706f }, //Miner
    	{ 930.312073f, -423.126526f, 57.212303f, 0.393668f }, //Miner
    	{ 916.621948f, -410.676300f, 58.109821f, 2.698812f }, //Miner
    	{ 914.918396f, -414.268860f, 58.623257f, 2.698812f }, //Miner
    	{ 912.663025f, -419.025208f, 58.490059f, 2.698812f }, //Miner
    	{ 919.640198f, -439.892792f, 57.939793f, 5.392725f }, //Miner
    	{ 922.107727f, -438.394073f, 57.457420f, 5.039296f }, //Miner
    	{ 924.259277f, -437.951660f, 57.168430f, 4.290811f }, //Miner
    	{ 900.245667f, -445.623108f, 60.520943f, 3.287857f }, //Miner
    	{ 900.484375f, -447.243622f, 60.244408f, 3.287857f }, //Miner
    	{ 900.756775f, -449.092651f, 59.936108f, 3.287857f }, //Miner
    	{ 899.722290f, -437.533661f, 58.587357f, 4.073253f }, //Miner
    	{ 896.590271f, -437.705261f, 58.603458f, 4.403120f }, //Miner
    	{ 893.325928f, -437.511597f, 56.872299f, 5.592995f }, //Miner
    	{ 896.400879f, -426.651550f, 57.069031f, 1.057321f }, //Miner
    	{ 898.878052f, -427.612335f, 58.270638f, 1.568615f }, //Miner
    	{ 902.378052f, -427.619965f, 59.459190f, 1.568615f }, //Miner
    	{ 908.706360f, -426.086548f, 60.492981f, 1.799522f }, //Miner
    	{ 886.602112f, -422.961334f, 54.056126f, 1.214400f }, //Miner
    	{ 882.230103f, -419.770233f, 53.679230f, 0.864898f }, //Miner
    	{ 880.304199f, -414.753967f, 53.953907f, 1.701347f }, //Miner
    	{ 876.833984f, -415.209595f, 52.894726f, 1.701347f }, //Miner
    	{ 876.833984f, -415.209595f, 52.894726f, 1.701347f }, //Miner
    	{ 866.533020f, -414.723267f, 52.157070f, 1.516779f }, //Miner
    	{ 863.353271f, -411.352997f, 53.331261f, 1.461801f }, //Miner
    	{ 858.187317f, -409.434998f, 51.755375f, 1.434312f }, //Miner
    	{ 854.293945f, -424.926605f, 51.017048f, 2.881016f }, //Miner
    	{ 852.456055f, -431.872711f, 50.814281f, 3.195175f }, //Miner
    	{ 852.997192f, -437.929108f, 49.922672f, 3.517188f }, //Miner
    	{ 854.109497f, -440.749908f, 50.342648f, 3.517188f }, //Miner
    	{ 854.109497f, -440.749908f, 50.342648f, 3.517188f }, //Miner
    	{ 848.495300f, -422.403259f, 49.961353f, 4.856290f }, //Miner
    	{ 848.495300f, -422.403259f, 49.961353f, 4.856290f }, //Miner
    	{ 846.070618f, -422.754608f, 49.366646f, 4.856290f }, //Miner
    	{ 841.791199f, -409.520752f, 48.806660f, 1.412318f }, //Miner
    	{ 839.850952f, -407.821106f, 49.250793f, 1.412318f }, //Miner
    	{ 834.691284f, -405.236725f, 47.788029f, 0.269564f }, //Miner
    	{ 810.726501f, -446.340729f, 50.199177f, 2.769485f }, //Miner
    	{ 807.585754f, -453.030334f, 49.437901f, 3.118987f }, //Miner
    	{ 808.218872f, -462.920135f, 48.181877f, 4.367769f }, //Miner
    	{ 811.179688f, -465.924713f, 47.745724f, 4.992159f }, //Miner
    	{ 819.611450f, -467.756866f, 49.039833f, 5.431981f }, //Miner
    	{ 827.767578f, -467.455505f, 49.365261f, 5.251341f }, //Miner
    	{ 834.376221f, -467.699219f, 49.459999f, 6.095642f }, //Miner
    	{ 836.891296f, -461.561066f, 48.747860f, 0.817766f }, //Miner
    	{ 839.646240f, -451.907135f, 46.964058f, 0.601781f }, //Miner
    	{ 837.802307f, -444.856445f, 47.551949f, 1.312567f }, //Miner
    	{ 819.448853f, -409.484375f, 50.839893f, 2.668165f }, //Miner
    	{ 820.725464f, -406.992340f, 50.378193f, 2.668165f }, //Miner
    	{ 819.845825f, -404.201752f, 50.334427f, 2.656384f }, //Miner
    	{ 832.448303f, -399.050934f, 48.191502f, 0.194161f }, //Miner
    	{ 831.681152f, -395.149658f, 47.914112f, 0.194161f }, //Miner
    	{ 832.268616f, -392.730255f, 47.645870f, 5.612622f }, //Miner
    	{ 822.494202f, -380.216095f, 48.098320f, 2.688586f }, //Miner
    	{ 823.312195f, -378.535614f, 47.705006f, 2.412911f }, //Miner
    	{ 823.093811f, -374.689148f, 47.959724f, 2.408984f }, //Miner
    	{ 838.309814f, -375.314362f, 49.128494f, 5.817615f }, //Miner
    	{ 842.425720f, -373.230774f, 49.501534f, 5.224641f }, //Miner
    	{ 847.524292f, -372.875031f, 48.606274f, 4.957607f }, //Miner
    	{ 860.806152f, -369.117981f, 47.788784f, 0.366950f }, //Miner
    	{ 860.806152f, -369.117981f, 47.788784f, 0.366950f }, //Miner
    	{ 859.967346f, -366.935638f, 47.344460f, 0.366950f }, //Miner
    	{ 849.999878f, -361.463379f, 47.246853f, 1.973089f }, //Miner
    	{ 843.781067f, -362.261688f, 47.572025f, 1.816010f }, //Miner
    	{ 830.215027f, -356.172668f, 48.101543f, 3.131552f }, //Miner
    	{ 828.171997f, -352.700287f, 47.669525f, 3.591010f }, //Miner
    	{ 825.865051f, -350.436249f, 47.461494f, 3.575302f }, //Miner
    	{ 823.757507f, -338.478088f, 49.853256f, 1.203399f }, //Miner
    	{ 823.757507f, -338.478088f, 49.853256f, 1.203399f }, //Miner
    	{ 818.077454f, -335.682556f, 50.687675f, 0.574295f }, //Miner
    	{ 802.987000f, -330.423981f, 52.823833f, 3.594937f }, //Miner
    	{ 801.963013f, -328.322144f, 52.808239f, 3.598864f }, //Miner
    	{ 799.328064f, -326.902252f, 53.391006f, 3.598864f }, //Miner
    	{ 794.793457f, -318.646576f, 54.188965f, 3.465347f }, //Miner
    	{ 793.931335f, -317.618988f, 54.660892f, 3.496763f }, //Miner
    	{ 793.242432f, -315.761627f, 55.164253f, 3.496763f }, //Miner
    	{ 797.033020f, -312.779175f, 54.494480f, 0.535811f }, //Miner
    	{ 797.033020f, -312.779175f, 54.494480f, 0.535811f }, //Miner
    	{ 799.543457f, -315.695160f, 53.666317f, 0.582934f }, //Miner
    	{ 778.884033f, -339.692444f, 61.354012f, 3.596509f }, //Guard
    	{ 787.545471f, -345.497253f, 61.465565f, 3.671124f }, //Guard
    	{ 771.820251f, -314.374969f, 63.106781f, 2.686234f }, //Guard
    	{ 768.476990f, -321.202362f, 63.106781f, 2.686234f }, //Guard
    	{ 785.752563f, -310.196381f, 54.467216f, 2.827609f }, //Guard
    	{ 792.877991f, -305.252655f, 56.114258f, 3.265075f }, //Guard
    	{ 814.842957f, -337.282867f, 49.765671f, 2.408101f }, //Guard
    	{ 836.224365f, -367.158661f, 48.164394f, 4.410869f }, //Guard
    	{ 825.530823f, -393.731567f, 47.822716f, 4.403016f }, //Guard
    	{ 834.866333f, -416.613831f, 47.376114f, 5.783746f }, //Guard
    	{ 855.768677f, -419.910492f, 50.634483f, 6.019365f }, //Guard
    	{ 876.513000f, -424.025146f, 52.111725f, 0.589907f }, //Guard
    	{ 900.244629f, -433.311676f, 58.239071f, 6.169377f }, //Guard
    	{ 907.290039f, -427.767975f, 60.045856f, 0.552995f }, //Guard
    	{ 903.226379f, -441.218140f, 58.988651f, 5.985586f }, //Guard
    	{ 926.036499f, -414.364929f, 56.116699f, 1.730298f }, //Guard
    	{ 919.213135f, -392.282928f, 60.595650f, 1.690243f }, //Guard
    	{ 882.927368f, -409.910034f, 62.038197f, 1.461692f }, //Guard
    	{ 879.448181f, -409.528931f, 61.610828f, 1.461692f }, //Guard
    	{ 871.700684f, -407.939117f, 62.273865f, 1.266128f }, //Guard
    	{ 878.277649f, -446.875549f, 54.675594f, 2.608057f }, //Guard
    	{ 880.655762f, -442.849457f, 54.662846f, 2.608057f }, //Guard
    };
    
    
    AlteracValley::AlteracValley(MapMgr * mgr, uint32 id, uint32 lgroup, uint32 t) : CBattleground(mgr, id, lgroup, t)
    {
    	//SET banner, object neutralizing here
    	//m_scores[0] = m_scores[1] = 0;
    }
    
    AlteracValley::~AlteracValley()
    {
    // 	// gates are always spawned, so mapmgr will clean them up
    // 	//for(uint32 i = 0; i < 6; ++i)
    // 	//{
    // 	// buffs may not be spawned, so delete them if they're not
    // 	//if(m_buffs[i] && m_buffs[i]->IsInWorld()==false)
    // 	//delete m_buffs[i];
    // 	//}
    // }
    }
    
    void AlteracValley::CaptureMineKill(Player * plr, Unit * pVictim, uint32 Team, uint32 mine)
    {
    	SetWorldState(m_controlpoint[mine], Team);
    	m_capturedBases[Team]++;
    
    	if (mine = AV_CONTROL_POINT_MINE_KOBOLT)
    	{
    		for (int x = 0; x < AV_UNIT_COLDTOOTH_TOTAL_COUNT; x++)
    		{
    			DespawnCreature(m_unitColdtoothMine[x], false);
    		}
    	}
    
    	if (mine = AV_CONTROL_POINT_MINE_TROG)
    	{
    		for (int x = 0; x < AV_UNIT_IRONDEEP_TOTAL_COUNT; x++)
    		{
    			DespawnCreature(m_unitIrondeepMine[x], false);
    		}
    	}
    
    	if(Team = 0)
    	{
    		m_capturedBases[1] - 1;
    		//We need to get coordinates of the boss mob
    		//SpawnCreature(x, y, z, o, id);
    	}
    	else if(Team = 1)
    	{
    		m_capturedBases[0] - 1;
    		//We need to get coordinates of the boss mob
    		//SpawnCreature(x, y, z, o, id);
    	}
    	else
    	{
    		//Log.Notice("Wrong team id %u in Alterac Valley", Team);
    	}
    }
    
    void AlteracValley::UpdateReinforcementCount()
    {
    	m_scores[0] + m_capturedBases[0];
    	m_scores[1] + m_capturedBases[1];
    
    // 	SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE,plr->GetGUID(), "The Alliance reinforcement count has increased by %u.", m_capturedBases[1]);
    // 	SendChatMessage(CHAT_MSG_BG_EVENT_HORDE,plr->GetGUID(), "The Alliance reinforcement count has increased by %u.", m_capturedBases[1]);
    // 	SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE,plr->GetGUID(), "The Horde reinforcement count has increased by %u.", m_capturedBases[0]);
    // 	SendChatMessage(CHAT_MSG_BG_EVENT_HORDE,plr->GetGUID(), "The Horde reinforcement count has increased by %u.", m_capturedBases[0]);
    }
    
    void AlteracValley::SpawnControlPoint(uint32 Id, uint32 Type, float x, float y, float z, float o)
    {
    // 	TODO spawn correct gameobjects on correct locations
    // 		GameObjectInfo * gi, * gi_aura;
    // 		gi = GameObjectNameStorage.LookupEntry(ControlPointGoIds[Id][Type]);
    // 		if(gi == NULL)
    // 			return;
    // 	
    // 		gi_aura = gi->sound3 ? GameObjectNameStorage.LookupEntry(gi->sound3) : NULL;
    // 	
    // 		if(m_controlPoints[Id] == NULL)
    // 		{
    // 			m_controlPoints[Id] = SpawnGameObject(gi->ID, m_mapMgr->GetMapId(), x, y, z, o, 0, 35, 1.0f);
    // 	
    // 			m_controlPoints[Id]->SetFloatValue(GAMEOBJECT_ROTATION_02, ControlPointRotations[Id][0]);
    // 			m_controlPoints[Id]->SetFloatValue(GAMEOBJECT_ROTATION_03, ControlPointRotations[Id][1]);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_STATE, 1);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_TYPE_ID, gi->Type);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_ANIMPROGRESS, 100);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_DYN_FLAGS, 1);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_DISPLAYID, gi->DisplayID);
    // 	
    // 			switch(Type)
    // 			{
    // 			case AV_SPAWN_TYPE_ALLIANCE_ASSAULT:
    // 			case AV_SPAWN_TYPE_ALLIANCE_CONTROLLED:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 2);
    // 				break;
    // 	
    // 			case AV_SPAWN_TYPE_HORDE_ASSAULT:
    // 			case AV_SPAWN_TYPE_HORDE_CONTROLLED:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 1);
    // 				break;
    // 	
    // 			default:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 35);		// neutral
    // 				break;
    // 			}
    // 	
    // 			m_controlPoints[Id]->bannerslot = Id;
    // 			m_controlPoints[Id]->PushToWorld(m_mapMgr);
    // 		}
    // 		else
    // 		{
    // 			if(m_controlPoints[Id]->IsInWorld())
    // 				m_controlPoints[Id]->RemoveFromWorld(false);
    // 	
    // 			// assign it a new guid (client needs this to see the entry change?)
    // 			m_controlPoints[Id]->SetNewGuid(m_mapMgr->GenerateGameobjectGuid());
    // 			m_controlPoints[Id]->SetUInt32Value(OBJECT_FIELD_ENTRY, gi->ID);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_DISPLAYID, gi->DisplayID);
    // 			m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_TYPE_ID, gi->Type);
    // 	
    // 			switch(Type)
    // 			{
    // 			case AV_SPAWN_TYPE_ALLIANCE_ASSAULT:
    // 			case AV_SPAWN_TYPE_ALLIANCE_CONTROLLED:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 2);
    // 				break;
    // 	
    // 			case AV_SPAWN_TYPE_HORDE_ASSAULT:
    // 			case AV_SPAWN_TYPE_HORDE_CONTROLLED:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 1);
    // 				break;
    // 	
    // 			default:
    // 				m_controlPoints[Id]->SetUInt32Value(GAMEOBJECT_FACTION, 35);		// neutral
    // 				break;
    // 			}
    // 	
    // 			m_controlPoints[Id]->SetInfo(gi);
    // 			m_controlPoints[Id]->PushToWorld(m_mapMgr);
    // 		}
    // 	
    // 		if(gi_aura==NULL)
    // 		{
    // 			// remove it if it exists
    // 			if(m_controlPointAuras[Id]!=NULL && m_controlPointAuras[Id]->IsInWorld())
    // 				m_controlPointAuras[Id]->RemoveFromWorld(false);
    // 	
    // 			return;
    // 		}
    // 	
    // 		if(m_controlPointAuras[Id] == NULL)
    // 		{
    // 			m_controlPointAuras[Id] = SpawnGameObject(gi_aura->ID, m_mapMgr->GetMapId(), ControlPointCoordinates[Id][0], ControlPointCoordinates[Id][1],
    // 				ControlPointCoordinates[Id][2], ControlPointCoordinates[Id][3], 0, 35, 1.0f);
    // 	
    // 			m_controlPointAuras[Id]->SetFloatValue(GAMEOBJECT_ROTATION_02, ControlPointRotations[Id][0]);
    // 			m_controlPointAuras[Id]->SetFloatValue(GAMEOBJECT_ROTATION_03, ControlPointRotations[Id][1]);
    // 			m_controlPointAuras[Id]->SetUInt32Value(GAMEOBJECT_STATE, 1);
    // 			m_controlPointAuras[Id]->SetUInt32Value(GAMEOBJECT_TYPE_ID, 6);
    // 			m_controlPointAuras[Id]->SetUInt32Value(GAMEOBJECT_ANIMPROGRESS, 100);
    // 			m_controlPointAuras[Id]->bannerauraslot = Id;
    // 			m_controlPointAuras[Id]->PushToWorld(m_mapMgr);
    // 		}
    // 		else
    // 		{
    // 			if(m_controlPointAuras[Id]->IsInWorld())
    // 				m_controlPointAuras[Id]->RemoveFromWorld(false);
    // 	
    // 			// re-spawn the aura
    // 			m_controlPointAuras[Id]->SetNewGuid(m_mapMgr->GenerateGameobjectGuid());
    // 			m_controlPointAuras[Id]->SetUInt32Value(OBJECT_FIELD_ENTRY, gi_aura->ID);
    // 			m_controlPointAuras[Id]->SetUInt32Value(GAMEOBJECT_DISPLAYID, gi_aura->DisplayID);
    // 			m_controlPointAuras[Id]->SetInfo(gi_aura);
    // 			m_controlPointAuras[Id]->PushToWorld(m_mapMgr);
    // 		}
    }
    
    void AlteracValley::CaptureControlPoint(uint32 Id, uint32 Team)
    {
    // 	if(m_basesOwnedBy[Id] != -1)
    // 	{
    // 		// there is a very slim chance of this happening, 2 teams evnets could clash..
    // 		// just in case...
    // 		return;
    // 	}
    // 
    // 	// anticheat, not really necessary because this is a server method but anyway
    // 	if(m_basesAssaultedBy[Id] != (int32)Team)
    // 		return;
    // 
    // 	m_basesOwnedBy[Id] = Team;
    // 	m_basesAssaultedBy[Id]=-1;
    // 	
    // 	//remove the other spirit guide (if it exists)
    // 	if(m_spiritGuides[Id] != NULL)
    // 	{
    // 		RemoveSpiritGuide(m_spiritGuides[Id]);
    // 		m_spiritGuides[Id]->Despawn(0,0);
    // 	}
    // 
    // 	// spawn the spirit guide for our faction
    // 	m_spiritGuides[Id] = SpawnSpiritGuide(GraveyardLocations[Id][0], GraveyardLocations[Id][1], GraveyardLocations[Id][2], 0.0f, Team);
    // 	AddSpiritGuide(m_spiritGuides[Id]);
    // 
    // 	// send the chat message/sounds out
    // 	PlaySoundToAll(Team ? SOUND_HORDE_CAPTURE : SOUND_ALLIANCE_CAPTURE);
    // 	SendChatMessage(Team ? CHAT_MSG_BG_EVENT_HORDE : CHAT_MSG_BG_EVENT_ALLIANCE, 0, "The %s has taken the %s!", Team ? "Horde" : "Alliance", ControlPointNames[Id]);
    // 
    // 	// update the overhead display on the clients (world states)
    // 	m_capturedBases[Team]++;
    // 	//SetWorldState(Team ? AV_HORDE_CAPTUREBASE : AV_ALLIANCE_CAPTUREBASE, m_capturedBases[Team]);
    // 
    // 	// respawn the control point with the correct aura
    // 	SpawnControlPoint(Id, Team ? AV_SPAWN_TYPE_HORDE_CONTROLLED : AV_SPAWN_TYPE_ALLIANCE_CONTROLLED);
    // 
    // 	// update the map
    // 	//SetWorldState(AssaultFields[Id][Team], 0);
    // 	//SetWorldState(OwnedFields[Id][Team], 1);
    // 
    // 	// Reinforcement update event
    // 	if(m_capturedBases[Team]==1)
    // 	{
    // 		//TODO, add the update reinforcement count here
    // 	}
    // 	else
    // 	{
    // 		// not first
    // 		//TODO, add the update reinforcement count here
    // 	}
    }
    
    void AlteracValley::AssaultControlPoint(Player * pPlayer, uint32 Id)
    {
    // #ifdef ANTI_CHEAT
    // 	if(!m_started)
    // 	{
    // 		SendChatMessage(CHAT_MSG_BG_EVENT_NEUTRAL, pPlayer->GetGUID(), "%s has been removed from the game for cheating.", pPlayer->GetName());
    // 		pPlayer->SoftDisconnect();
    // 		return;
    // 	}
    // #endif
    // 
    // 	uint32 Team = pPlayer->m_bgTeam;
    // 	uint32 Owner;
    // 
    // 	if(m_basesOwnedBy[Id]==-1 && m_basesAssaultedBy[Id]==-1)
    // 	{
    // 		// omgwtfbbq our flag is a virgin?
    // 		SetWorldState(NeutralFields[Id], 0);
    // 	}
    // 
    // 	if(m_basesOwnedBy[Id] != -1)
    // 	{
    // 		Owner = m_basesOwnedBy[Id];
    // 
    // 		// set it to uncontrolled for now
    // 		m_basesOwnedBy[Id] = -1;
    // 
    // 		// detract one from the teams controlled points
    // 		m_capturedBases[Owner] -= 1;
    // 		//SetWorldState(Owner ? AV_HORDE_CAPTUREBASE : AV_ALLIANCE_CAPTUREBASE, m_capturedBases[Owner]);
    // 
    // 		// reset the world states
    // 		//SetWorldState(OwnedFields[Id][Owner], 0);
    // 
    // 		// modify the resource update time period
    // 		if(m_capturedBases[Owner]==0)
    // 			//this->Put code for updating reinforcements 
    // 		//else
    // 			//this->Put code for updating reinforcements 
    // 	}
    // 
    // 	if(m_basesAssaultedBy[Id] != -1)
    // 	{
    // 		Owner = m_basesAssaultedBy[Id];
    // 
    // 		m_basesAssaultedBy[Id] = -1;
    // 		//SetWorldState(AssaultFields[Id][Owner], 0);
    // 
    // 		// make sure the event does not trigger
    // 		sEventMgr.RemoveEvents(this, EVENT_AB_CAPTURE_CP_1 + Id);
    // 
    // 		// no need to remove the spawn, SpawnControlPoint will do this.
    // 	}
    // 
    // 	m_basesAssaultedBy[Id] = Team;
    // 
    // 	// spawn the new control point gameobject
    // 	SpawnControlPoint(Id, Team ? AV_SPAWN_TYPE_HORDE_ASSAULT : AV_SPAWN_TYPE_ALLIANCE_ASSAULT);
    // 
    // 	// send out the chat message and sound
    // 	SendChatMessage(Team ? CHAT_MSG_BG_EVENT_HORDE : CHAT_MSG_BG_EVENT_ALLIANCE, pPlayer->GetGUID(), " claims the %s! If left unchallenged, the %s will control it in 1 minute!", ControlPointNames[Id],
    // 		Team ? "Horde" : "Alliance");
    // 
    // 	//NEED THE SOUND ID
    // 	//PlaySoundToAll(Team ? SOUND:SOUND);
    // 
    // 	// update the client's map with the new assaulting field
    // 	SetWorldState(AssaultFields[Id][Team], 1);
    // 
    // 	// create the 60 second event.
    // 	sEventMgr.AddEvent(this, &AlteracValley::CaptureControlPoint, Id, Team, EVENT_AB_CAPTURE_CP_1 + Id, 60000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);
    }
    
    void AlteracValley::OnAddPlayer(Player * plr)
    {
    	if(!m_started)
    		plr->CastSpell(plr, BG_PREPARATION, true);
    
    //	HookHandleRepop(plr);
    }
    
    void AlteracValley::OnRemovePlayer(Player * plr)
    {
    	plr->RemoveAura(BG_PREPARATION);
    }
    
    LocationVector AlteracValley::GetStartingCoords(uint32 Team)
    {
    	if(Team)		// Horde
    	return LocationVector(NoBaseGYLocations[0][0],NoBaseGYLocations[0][1],NoBaseGYLocations[0][2]);//LocationVector(933.989685f, 1430.735840f, 345.537140f, 3.141593f);
    	else			// Alliance
    	return LocationVector(NoBaseGYLocations[1][0],NoBaseGYLocations[1][1],NoBaseGYLocations[1][2]);//LocationVector(1519.530273f, 1481.868408f, 352.023743f, 3.141593f);
    }
    
    void AlteracValley::OnCreate()
    {
    	//Boss spawning!
    	//We need to get coordinates of the boss mob
    	//SpawnCreature(x, y, z, o, id);
    
    	int countcoldtooth = 0;
    
    	//Coldtooth Mine
    	for (countcoldtooth = 0; countcoldtooth <= AV_UNIT_COLDTOOTH_MINER_COUNT; countcoldtooth++)
    	{
    		m_unitColdtoothMine[countcoldtooth] = SpawnCreature(ColdtoothUnitLocations[countcoldtooth][0], ColdtoothUnitLocations[countcoldtooth][1], ColdtoothUnitLocations[countcoldtooth][2], ColdtoothUnitLocations[countcoldtooth][3], AV_UNIT_KOBOLT_MINER, false);
    	}
    
    	for (countcoldtooth = AV_UNIT_COLDTOOTH_MINER_COUNT; countcoldtooth <= AV_UNIT_COLDTOOTH_GUARD_AND_MINER_COUNT; countcoldtooth++)
    	{
    		m_unitColdtoothMine[countcoldtooth] = SpawnCreature(ColdtoothUnitLocations[countcoldtooth][0], ColdtoothUnitLocations[countcoldtooth][1], ColdtoothUnitLocations[countcoldtooth][2], ColdtoothUnitLocations[countcoldtooth][3], AV_UNIT_KOBOLT_GUARD, false);
    	}
    
    	countcoldtooth++;
    
    	m_unitColdtoothMine[countcoldtooth] = SpawnCreature(BossLocations[0][0], BossLocations[0][1], BossLocations[0][2], BossLocations[0][3], AV_UNIT_KOBOLT_BOSS, false);
    
    	int countirondeep = 0;
    
    	//Irondeep mine
    	for (countirondeep = 0; countirondeep <= AV_UNIT_IRONDEEP_MINER_COUNT; countirondeep++)
    	{
    		m_unitIrondeepMine[countirondeep] = SpawnCreature(IrondeepUnitLocations[countirondeep][0], IrondeepUnitLocations[countirondeep][1], IrondeepUnitLocations[countirondeep][2], IrondeepUnitLocations[countirondeep][3], AV_UNIT_TROGG_MINER, false);
    	}
    
    	for (countirondeep = AV_UNIT_IRONDEEP_MINER_COUNT; countirondeep <= AV_UNIT_IRONDEEP_GUARD_AND_MINER_COUNT; countirondeep++)
    	{
    		m_unitIrondeepMine[countirondeep] = SpawnCreature(IrondeepUnitLocations[countirondeep][0], IrondeepUnitLocations[countirondeep][1], IrondeepUnitLocations[countirondeep][2], IrondeepUnitLocations[countirondeep][3], AV_UNIT_TROGG_GUARD, false);
    	}
    
    	countirondeep++;
    
    	m_unitIrondeepMine[countirondeep] = SpawnCreature(BossLocations[1][0], BossLocations[1][1], BossLocations[1][2], BossLocations[1][3], AV_UNIT_TROGG_BOSS, false);
    	
    
    	// Alliance Gate
    	GameObject *gate = SpawnGameObject(180424, 30, 781.183960f, -492.931671f, 99.882881f, 1.012451f, 32, 114, 4.0123456f);
    // 	gate->SetFloatValue(GAMEOBJECT_ROTATION,0.0129570f);
    // 	gate->SetFloatValue(GAMEOBJECT_ROTATION_01,-0.0602880f);
    // 	gate->SetFloatValue(GAMEOBJECT_ROTATION_02,0.3449600f);
    // 	gate->SetFloatValue(GAMEOBJECT_ROTATION_03,0.9365900f);
    	gate->PushToWorld(m_mapMgr);
    	m_gates.push_back(gate);
    
    	// horde gate
    	gate = SpawnGameObject(180424, 30, -1375.490845f, -539.103088f, 55.272282f, 0.792467f, 32, 114, 4.0123456f);
    	gate->SetFloatValue(GAMEOBJECT_ROTATION,0.0502910f);
    	gate->SetFloatValue(GAMEOBJECT_ROTATION_01,0.0151270f);
    	gate->SetFloatValue(GAMEOBJECT_ROTATION_02,0.9292169f);
    	gate->SetFloatValue(GAMEOBJECT_ROTATION_03,-0.3657840f);
    	gate->PushToWorld(m_mapMgr);
    	m_gates.push_back(gate);
    
    	m_capturedBases[0] = 0;
    	m_capturedBases[1] = 0;
    
    	//Horde
    	AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[0][0],NoBaseGYLocations[0][1],NoBaseGYLocations[0][2], 0.0f, 1));
    
    	//Alliance
    	AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[1][0],NoBaseGYLocations[1][1],NoBaseGYLocations[1][2], 0.0f, 0));
    
    // 	for(int x = 0; x < 5; x++)
    // 	{
    // 		for(int y = 0; y < 3; y++)
    // 		{
    // 			AddSpiritGuide(SpawnSpiritGuide(GraveyardLocations[x][y],GraveyardLocations[x][y],GraveyardLocations[x][y], 0.0f, 0)); //Alliance
    // 		}
    // 	}
    // 
    // 	for(int x = 5; x < 9; x++)
    // 	{
    // 		for(int y = 0; y < 3; y++)
    // 		{
    // 			AddSpiritGuide(SpawnSpiritGuide(GraveyardLocations[x][y],GraveyardLocations[x][y],GraveyardLocations[x][y], 0.0f, 1)); //Horde
    // 		}
    // 	}
    
    	//Banners
    // 	SpawnControlPoint(AV_CONTROL_POINT_MINE_KOBOLT,		AV_SPAWN_TYPE_NEUTRAL);
    
    
    // 	SpawnControlPoint(AV_CONTROL_POINT_MINE_TROG,	AV_SPAWN_TYPE_NEUTRAL);
    
    	// set world states 
    	SetWorldState(AV_UNCONTROLED_SNOWFALL_GRAVE, 0x00); //AV_UNCONTROLED_SNOWFALL_GRAVE 1 -> show uncontrolled 0x7AE
    
    	SetWorldState(AV_CONTROLED_ICEBLOOD_TOWER_HORDE, 0x00); //AV_CONTROLED_ICEBLOOD_TOWER_HORDE 1 -> horde controled 0x569
    	SetWorldState(AV_CONTROLED_TOWER_POINT_HORDE, 0x00); //AV_CONTROLED_TOWER_POINT_HORDE 1 -> horde controled 0x568
    	SetWorldState(AV_CONTROLED_FROSTWOLF_RELIFHUNT_HORDE, 0x00); //AV_CONTROLED_FROSTWOLF_RELIFHUNT_HORDE 1 -> horde controled 0x532
    	SetWorldState(AV_CONTROLED_EAST_FROSTWOLF_TOWER_HORDE, 0x00); //AV_CONTROLED_EAST_FROSTWOLF_TOWER_HORDE 1 -> horde controled 0x567
    	SetWorldState(AV_CONTROLED_WEST_FROSTWOLF_TOWER_HORDE, 0x00); //AV_CONTROLED_WEST_FROSTWOLF_TOWER_HORDE 1 -> horde controled 0x566
    	SetWorldState(AV_CONTROLED_ICEBLOOD_GRAVE_HORDE, 0x00); //AV_CONTROLED_ICEBLOOD_GRAVE_HORDE 1 -> horde controled 0x543
    	SetWorldState(AV_CONTROLED_FROSTWOLF_GRAVE_HORDE, 0x00); //AV_CONTROLED_FROSTWOLF_GRAVE_HORDE 1 -> horde controled 0x53A
    
    	SetWorldState(AV_CONTROLED_IRONDEEP_MINE_TROGG, 0x00); //AV_CONTROLED_IRONDEEP_MINE_TROGG 1 -> trogg controled 0x550
    	SetWorldState(AV_CONTROLED_COLDTHOOT_MINE_KOBOLT, 0x00); //AV_CONTROLED_COLDTHOOT_MINE_KOBOLT 1 -> kobolt controled 0x54D
    
    	SetWorldState(AV_CONTROLED_STORMPIKE_GRAVE_ALLIANCE, 0x00); //AV_CONTROLED_STORMPIKE_GRAVE_ALLIANCE 1 -> alliance controled 0x535
    	SetWorldState(AV_CONTROLED_STONEHEART_BUNKER_ALLIANCE, 0x00); //AV_CONTROLED_STONEHEART_BUNKER_ALLIANCE 1 -> alliance controled 0x554
    	SetWorldState(AV_CONTROLED_ICEWING_BUNKER_ALLIANCE, 0x00); //AV_CONTROLED_ICEWING_BUNKER_ALLIANCE 1 -> alliance controled 0x553
    	SetWorldState(AV_CONTROLED_DUBALDER_NORTH_BUNKER_ALLIANCE, 0x00); //AV_CONTROLED_DUBALDER_NORTH_BUNKER_ALLIANCE 1 -> alliance controled 0x552
    	SetWorldState(AV_CONTROLED_DUBALDER_SOUTH_BUNKER_ALLIANCE, 0x00); //AV_CONTROLED_DUBALDER_SOUTH_BUNKER_ALLIANCE 1 -> alliance controled 0x551
    	SetWorldState(AV_CONTROLED_STORMPIKE_AID_STATION_ALLIANCE, 0x00); //AV_CONTROLED_STORMPIKE_AID_STATION_ALLIANCE 1 -> alliance controled 0x52D
    	SetWorldState(AV_CONTROLED_STONEHEART_GRAVE_ALLIANCE, 0x00); //AV_CONTROLED_STONEHEART_GRAVE_ALLIANCE  1 -> alliance controled 0x516
    
    	//sEventMgr.AddEvent(this, &AlteracValley::UpdateReinforcementCount(), 0, 60000, 999999,EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);
    }
    
    bool AlteracValley::HookHandleRepop(Player * plr)
    {
    	LocationVector dest( NoBaseGYLocations[plr->m_bgTeam][0], NoBaseGYLocations[plr->m_bgTeam][1], NoBaseGYLocations[plr->m_bgTeam][2], 0.0f );
    	float current_distance = 999999.0f;
    	
    
    	if(plr->m_bgTeam)// Horde
    		dest.ChangeCoords(NoBaseGYLocations[0][0],NoBaseGYLocations[0][1],NoBaseGYLocations[0][2]);
    	else			// Alliance
    		dest.ChangeCoords(NoBaseGYLocations[1][0],NoBaseGYLocations[1][1],NoBaseGYLocations[1][2]);
    
    // 	for(uint32 i = 0; i < AV_NUM_CONTROL_POINTS; i++)
    // 	{
    // 		if(m_basesOwnedBy[i] == (int32)plr->m_bgTeam)
    // 		{
    // 			dist = plr->GetPositionV()->Distance2DSq(GraveyardLocations[i][0], GraveyardLocations[i][1]);
    // 			if(dist < current_distance)
    // 			{
    // 				current_distance = dist;
    // 				dest.ChangeCoords(GraveyardLocations[i][0], GraveyardLocations[i][1], GraveyardLocations[i][2]);
    // 			}
    // 		}
    // 	}
    
    	plr->SafeTeleport(plr->GetMapId(),plr->GetInstanceID(),dest);
    	return true;
    }
    
    void AlteracValley::HookOnAreaTrigger(Player * plr, uint32 id)
    {
    	if(plr->isDead())
    		return;	
    
    	switch(id)
    	{
    	case 2606:
    	case 2608:
    		{
    			RemovePlayer(plr,false);
    			return;
    		}
    		break;
    
    	default:
    		Log.Error("Alterac Valley", "Encountered unhandled areatrigger id %u", id);
    		return;
    		break;
    	}
    }
    
    void AlteracValley::HookOnPlayerDeath(Player * plr)
    {
    	plr->m_bgScore.Deaths++;
    
    	UpdatePvPData();
    }
    
    void AlteracValley::HookFlagDrop(Player * plr, GameObject * obj)
    {
    	//Empty in this BG
    }
    
    void AlteracValley::HookFlagStand(Player * plr, GameObject * obj)
    {
    	//Empty in this BG
    }
    
    bool AlteracValley::HookSlowLockOpen(GameObject * pGo, Player * pPlayer, Spell * pSpell)
    {
    // 	if(pGo->bannerslot >= 0 && pGo->bannerslot < AV_NUM_CONTROL_POINTS)
    // 	{
    // 		AssaultControlPoint(pPlayer,pGo->bannerslot);
    // 		return true;
    // 	}
    
    	return false;
    }
    
    void AlteracValley::HookOnMount(Player * plr)
    {
    	//Empty in this BG
    }
    
    void AlteracValley::HookOnPlayerKill(Player * plr, Unit * pVictim)
    {
    	if(pVictim->IsPlayer())
    	{
    		plr->m_bgScore.KillingBlows++;
    		UpdatePvPData();
    	}
    
    	if(pVictim->GetGUID() == AV_UNIT_KOBOLT_BOSS)
    	{
    		uint32 Team = plr->m_bgTeam;
    		CaptureMineKill(plr, pVictim, Team, AV_CONTROL_POINT_MINE_KOBOLT);
    	}
    
    	if(pVictim->GetGUID() == AV_UNIT_ALLIANCE_BOSS)
    	{
    		uint32 Team = plr->m_bgTeam;
    		CaptureMineKill(plr, pVictim, Team, AV_CONTROL_POINT_MINE_KOBOLT);
    	}
    
    	if(pVictim->GetGUID() == AV_UNIT_HORDE_BOSS)
    	{
    		uint32 Team = plr->m_bgTeam;
    		CaptureMineKill(plr, pVictim, Team, AV_CONTROL_POINT_MINE_KOBOLT);
    	}
    }
    
    void AlteracValley::HookOnHK(Player * plr)
    {
    	plr->m_bgScore.HonorableKills++;
    
    	if(plr->GetTeam()) //Horde
    	{
    		m_scores[0]++;
    		SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE, plr->GetGUID(), "%s Made a Alliance kill [%u out of 100]", plr->GetName(), m_scores[0]);
    		SendChatMessage(CHAT_MSG_BG_EVENT_HORDE, plr->GetGUID(), "%s Made a Alliance kill [%u out of 100]", plr->GetName(), m_scores[0]);
    	}
    	else //Alliance
    	{
    		m_scores[1]++;
    		SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE, plr->GetGUID(), "%s Made a Horde kill [%u out of 100]", plr->GetName(), m_scores[0]);
    		SendChatMessage(CHAT_MSG_BG_EVENT_HORDE, plr->GetGUID(), "%s Made a Horde kill [%u out of 100]", plr->GetName(), m_scores[0]);
    	}
    
    	//SendChatMessage(Team ? CHAT_MSG_BG_EVENT_HORDE : CHAT_MSG_BG_EVENT_ALLIANCE, (uint64)0, "The %s has gathered %u resources and is nearing victory!", Team ? "Horde" : "Alliance", current_resources);
    
    	UpdatePvPData();
    
    	// check for winning condition
    	if(m_scores[plr->GetTeam()] >= 100)
    	{
    		m_ended = true;
    		m_winningteam = plr->GetTeam() ?  0 : 1;
    		m_nextPvPUpdateTime = 0;
    
    		// Team ? CHAT_MSG_BG_EVENT_HORDE :
    
    		sEventMgr.RemoveEvents(this);
    		sEventMgr.AddEvent(((CBattleground*)this), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120000, 1,0);
    
    		// add the marks of honor to all players 
    		m_mainLock.Acquire();
    
    		SpellEntry * winner_spell = dbcSpell.LookupEntry(24954);
    		SpellEntry * loser_spell = dbcSpell.LookupEntry(24955);
    		for(uint32 i = 0; i < 2; ++i)
    		{
    			for(set<Player*>::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
    			{
    				(*itr)->Root();
    				if(i == m_winningteam) {
    					(*itr)->CastSpell((*itr), winner_spell, true);
    					(*itr)->SetUInt32Value(PLAYER_FIELD_COINAGE, ((*itr)->GetUInt32Value(PLAYER_FIELD_COINAGE) + 100000));
    				} else {
    					(*itr)->CastSpell((*itr), loser_spell, true);
    					(*itr)->SetUInt32Value(PLAYER_FIELD_COINAGE, ((*itr)->GetUInt32Value(PLAYER_FIELD_COINAGE) + 40000));
    				}
    			}
    		}
    		m_mainLock.Release();
    		UpdatePvPData();
    	}
    }
    
    void AlteracValley::OnStart()
    {
    	for(uint32 i = 0; i < 2; ++i) 
    	{
    		for(set<Player*>::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) 
    		{
    			(*itr)->RemoveAura(BG_PREPARATION);
    		}
    	}
    
    	// open gates
    	for(list<GameObject*>::iterator itr = m_gates.begin(); itr != m_gates.end(); ++itr)
    	{
    		(*itr)->SetUInt32Value(GAMEOBJECT_FLAGS, 64);
    		(*itr)->SetUInt32Value(GAMEOBJECT_STATE, 0);
    	}
    
    	PlaySoundToAll(SOUND_BATTLEGROUND_BEGIN);
    
    	m_started = true;
    }
    Just for kicks here you guys go its not the fully fixed one but its fine for you guys. Hope you enjoy it. Its a copy of the WoWd Version rebuilt. The emu is done no more reason to have this or work on it. Good luck to you all with emulation! Reborn Emulator is no longer worked on nor will this script be in the svn / used for any servers run by old team members of reborn.

    Credits:

    Fixes & Added Codding : Me
    Main First Script [old]: WoWd
    Last edited by Ickybad; 09-24-2008 at 08:46 PM.

    [Release] Reborn Emu Alteric Valley Script.
  2. #2
    c0ddingt0n's Avatar Banned
    Reputation
    117
    Join Date
    Feb 2008
    Posts
    641
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    EPic win scyther

  3. #3
    Murlock.'s Avatar Knight-Lieutenant
    Reputation
    86
    Join Date
    Oct 2007
    Posts
    271
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sweet, finally made it public :P

    Hope we can get a fully blizzlike AV going!

  4. #4
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Gratz everyone I'm not doing anymore emu for a bit ill help people but nothing more nothing less.

  5. #5
    Wolverine77's Avatar Member
    Reputation
    9
    Join Date
    Dec 2007
    Posts
    213
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ops:ArcEmu version close?

  6. #6
    Fireblast's Avatar Contributor
    Reputation
    195
    Join Date
    Aug 2008
    Posts
    883
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    GOOD JAWB! aww i too much +rep today ;[

  7. #7
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    /*
     * ArcEmu MMORPG Server
     * Copyright (C) 2008 <http://www.ArcEmu.org/>
     *
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU Affero General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU Affero General Public License for more details.
     *
     * You should have received a copy of the GNU Affero General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    
    
    #include "StdAfx.h"
    Is the arcemu script.

  8. #8
    CodeDemon's Avatar Member
    Reputation
    36
    Join Date
    Jun 2008
    Posts
    175
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Lol If arc emu rips this they can get sued. Its not GPL Liscensed so you cant steal the code. BTW Scyther just donated this script to ascent so I suggest you switch to Ascent.

    Edit: BTW +Rep Scyther

  9. #9
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Its not a competition I will remove the license. I handed this out because it can help people to not have to use the summit leaked one. This will help ANY emulator that wishes to use it even though I did give it to ascent so they can use it because ascent is ascent and i respect all emulators.

    Edit: Removed the License.
    Last edited by Ickybad; 09-24-2008 at 08:48 PM.

  10. #10
    Gastricpenguin's Avatar Legendary
    Reputation
    980
    Join Date
    Feb 2007
    Posts
    2,236
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sigh... no one can get sued here. The script scyther released isn't even considered his. Fixing a script from wowd doesn't mean its yours.
    Life Puzzler WoW - Website | Forums

  11. #11
    LJN's Avatar Member
    Reputation
    273
    Join Date
    Jun 2007
    Posts
    731
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can some one give me the SQL query to open AV please?
    ahhhh

  12. #12
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I didn't say it was. I said that i fixed it up. I will place credits to wowd on there.

    Edit: Credits were added.
    Last edited by Ickybad; 09-24-2008 at 08:47 PM.

  13. #13
    Wolverine77's Avatar Member
    Reputation
    9
    Join Date
    Dec 2007
    Posts
    213
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Scyther View Post
    Code:
    /*
     * ArcEmu MMORPG Server
     * Copyright (C) 2008 <http://www.ArcEmu.org/>
     *
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU Affero General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU Affero General Public License for more details.
     *
     * You should have received a copy of the GNU Affero General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
     
     
     
    #include "StdAfx.h"
    Is the arcemu script.
    do i just put that at the top of your original reborn script?

  14. #14
    AzolexX's Avatar Contributor
    Reputation
    179
    Join Date
    May 2007
    Posts
    587
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    why should someone use Reborn Emus from like 3 years old Script when there is Summits Better working? it only haves like 5 errors?

    Find about scripting, programming and music! My blog: https://worldofsmth.wordpress.com!

  15. #15
    Ickybad's Avatar Contributor
    Reputation
    214
    Join Date
    Apr 2008
    Posts
    904
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Because one summits is illegal to use O_-.

Page 1 of 2 12 LastLast

Similar Threads

  1. [Release]Kael'Thas Prince-Lua Scripts 100%Blizzlike
    By AzolexX in forum WoW EMU General Releases
    Replies: 25
    Last Post: 08-11-2008, 11:59 PM
  2. [Release] Hynt Compil Core And Script
    By varyag in forum World of Warcraft Emulator Servers
    Replies: 13
    Last Post: 06-09-2008, 11:38 AM
  3. [Release]AtreusD Emu Pack
    By Greed in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 03-01-2008, 02:55 AM
  4. [Release] Precompiled, Latest Ascent REVs + scripts + databases (updated regular)
    By latruwski in forum World of Warcraft Emulator Servers
    Replies: 67
    Last Post: 12-14-2007, 07:47 AM
  5. [Release] Complete Azeroth Portals (gm scripts)
    By knaur in forum World of Warcraft Emulator Servers
    Replies: 11
    Last Post: 11-22-2007, 08:10 AM
All times are GMT -5. The time now is 11:32 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search