diff --git a/filterscripts/objects.pwn b/filterscripts/objects.pwn index 4d9347f..5082adc 100644 --- a/filterscripts/objects.pwn +++ b/filterscripts/objects.pwn @@ -13,523 +13,12 @@ stock tmpVariable; public OnFilterScriptInit() { - // The Visage Casino - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3186.426025, 2894.111083, 81.443000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 81.416999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 34.516998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3128.611083, 2887.888916, 34.519001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3130.450927, 2887.888916, 34.520999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3132.292968, 2887.888916, 34.522998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3134.093017, 2887.888916, 34.525001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3135.894042, 2887.888916, 34.528999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3137.701904, 2887.888916, 34.530998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3139.501953, 2887.888916, 34.533000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3141.281005, 2887.888916, 34.534999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3143.070068, 2887.888916, 34.536998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3107.142089, 2900.892089, 60.563999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3107.156005, 2874.889892, 60.563999, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3136.159912, 2845.888916, 60.563999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3136.159912, 2929.893066, 60.563999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3120.439941, 2910.885986, 60.563999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3122.824951, 2864.897949, 60.563999, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); - CreateDynamicObject( 14629, 3167.575927, 2895.346923, 65.593002, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.125000, 2887.856933, 54.701999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.541992, 2895.730957, 54.701999, 0.000000, 0.000000, 173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.545898, 2879.970947, 54.701999, 0.000000, 0.000000, -173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3146.805908, 2872.185058, 54.700000, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3146.804931, 2903.468994, 54.701999, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3148.510009, 2864.377929, 54.700000, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3148.522949, 2911.281982, 54.701999, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3146.720947, 2887.888916, 33.365001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3148.530029, 2887.888916, 33.367000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.990966, 2879.989013, 53.532001, 0.000000, 0.000000, -173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.991943, 2895.721923, 53.532001, 0.000000, 0.000000, 173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3152.260009, 2903.498046, 53.532001, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.649902, 2894.111083, 52.395000, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.573974, 2887.856933, 53.532001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3152.251953, 2872.224121, 53.532001, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3154.028076, 2864.474121, 53.532001, 0.000000, 0.000000, -166.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3153.977050, 2911.301025, 53.532001, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 82.416999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3128.611083, 2887.888916, 82.418998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3130.450927, 2887.888916, 82.420997, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3132.292968, 2887.888916, 82.422996, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3134.093017, 2887.888916, 82.425003, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3135.894042, 2887.888916, 82.429000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3137.701904, 2887.888916, 82.430999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3139.501953, 2887.888916, 82.432998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3141.281005, 2887.888916, 82.434997, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3143.070068, 2887.888916, 82.436996, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3148.958007, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2887.405029, 60.925998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2897.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2877.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2867.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2907.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2887.405029, 60.928001, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2897.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2877.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2867.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2907.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.649902, 2894.111083, 67.394996, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); - CreateDynamicObject( 19943, 3160.447021, 2902.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3138.958007, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.638916, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - CreateDynamicObject( 19943, 3160.447021, 2872.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3167.947021, 2887.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3175.447021, 2894.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3175.447021, 2902.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3175.447021, 2879.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3175.447021, 2872.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3160.447021, 2894.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19943, 3160.447021, 2879.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2887.418945, 32.412998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2879.876953, 32.412998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2872.408935, 32.410999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2894.900878, 32.415000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2902.379882, 32.415000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - CreateDynamicObject( 2188, 3156.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3159.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3161.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3164.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3166.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3169.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3171.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2188, 3174.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1978, 3176.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3201.839111, 2894.111083, 52.415000, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3183.584960, 2909.878906, 46.729999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3183.584960, 2865.919921, 46.729999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); - CreateDynamicObject( 2111, 3156.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2111, 3161.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2111, 3166.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2111, 3171.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2111, 3176.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3204.259033, 2844.235107, 46.729999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3204.259033, 2930.519042, 46.729999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); - CreateDynamicObject( 19929, 3156.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3160.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3164.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3168.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3172.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3176.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3176.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3172.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3168.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3164.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3160.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19929, 3156.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3156.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3176.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3172.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3168.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3164.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2325, 3160.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3162.819091, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3167.918945, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3173.019042, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3162.819091, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3167.918945, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3173.019042, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 2001, 3180.612060, 2903.082031, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2001, 3180.612060, 2871.708007, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2001, 3180.612060, 2887.403076, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2001, 3180.612060, 2879.861083, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3140.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3140.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3206.428955, 2894.111083, 61.444999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3205.305908, 2894.111083, 65.433998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2894.382080, 51.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2880.403076, 51.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2880.413085, 61.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.190917, 2880.403076, 59.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2894.382080, 61.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.190917, 2894.394042, 59.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19437, 3194.886962, 2888.254882, 57.493999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19437, 3194.883056, 2886.345947, 57.495998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 3195.592041, 2887.418945, 62.664001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3196.168945, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3200.020019, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3203.868896, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.664062, 2876.389892, 51.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3196.168945, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3200.020019, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3203.868896, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.664062, 2898.381103, 51.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2898.896972, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2875.895996, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.680908, 2898.906982, 61.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.670898, 2875.895019, 61.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.681884, 2898.876953, 59.888000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.681884, 2875.904052, 59.888000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3200.746093, 2887.375000, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3200.746093, 2887.375000, 53.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.169921, 2889.885986, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.169921, 2884.905029, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3199.729003, 2885.687988, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3199.729003, 2889.097900, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3197.021972, 2886.864990, 59.904998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3197.021972, 2888.035888, 59.907001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3199.021972, 2888.035888, 59.909000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3199.021972, 2886.864990, 59.907001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - CreateDynamicObject( 869, 3196.104003, 2888.270996, 57.895000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3196.104003, 2886.949951, 57.895000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.169921, 2884.905029, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.169921, 2889.885986, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - CreateDynamicObject( 11727, 3198.472900, 2888.979980, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3198.472900, 2885.798095, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2889.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2891.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2893.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2895.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2897.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2884.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2882.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2880.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2878.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3195.202880, 2876.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3198.041992, 2875.916015, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3201.995117, 2875.916015, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3198.041992, 2898.856933, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11727, 3201.943115, 2898.856933, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2891.262939, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2893.262939, 53.784000, 0.000000, 0.000000, 24.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2895.262939, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2897.262939, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3197.302001, 2899.573974, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3198.551025, 2899.705078, 53.784000, 0.000000, 0.000000, 30.899999, -1, -1, -1 ); - CreateDynamicObject( 2350, 3202.224121, 2899.573974, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2883.510986, 53.784000, 0.000000, 0.000000, 122.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2881.510986, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2879.510986, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3194.061035, 2877.510986, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3197.361083, 2875.311035, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3199.009033, 2875.210937, 53.784000, 0.000000, 0.000000, -36.299999, -1, -1, -1 ); - CreateDynamicObject( 2350, 3198.142089, 2875.090087, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3201.231933, 2876.131103, 54.794998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2350, 3202.383056, 2876.131103, 54.794998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1542, 3195.688964, 2895.531982, 54.234001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1541, 3195.739013, 2896.802978, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 1541, 3195.739013, 2893.423095, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 1542, 3195.688964, 2892.121093, 54.234001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1545, 3195.759033, 2882.740966, 54.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1541, 3195.739013, 2881.292968, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 1545, 3195.759033, 2878.249023, 54.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1541, 3195.739013, 2879.943115, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 1548, 3195.187988, 2892.004882, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1548, 3195.187988, 2895.085937, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1548, 3195.187988, 2882.812988, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1548, 3195.187988, 2878.314941, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1548, 3195.187988, 2880.643066, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 14565, 3204.690917, 2884.108886, 55.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 14565, 3204.690917, 2890.573974, 55.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3204.097900, 2892.910888, 51.875000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -17895696 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3204.097900, 2880.491943, 51.875000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -17895696 ); - CreateDynamicObject( 11686, 3203.916992, 2880.778076, 53.270000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 11686, 3203.916992, 2893.804931, 53.270000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 14611, 3200.092041, 2880.576904, 59.959999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 14611, 3200.092041, 2894.250000, 59.959999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2888.885986, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2885.904052, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2886.895019, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2887.895996, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - CreateDynamicObject( 1491, 3195.846923, 2886.649902, 53.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.178955, 2886.176025, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.178955, 2888.666992, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); - CreateDynamicObject( 2528, 3197.761962, 2888.893066, 53.404998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19873, 3197.743896, 2889.299072, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19873, 3197.604003, 2889.299072, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19873, 3197.694091, 2889.299072, 54.534999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3180.437011, 2910.893066, 52.395000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2898.866943, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2875.912109, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3180.437011, 2864.899902, 52.395000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.652099, 2864.927978, 81.424003, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3166.947998, 2910.870117, 81.414001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.177001, 2884.895019, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.150878, 2884.895019, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.187011, 2889.886962, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.142089, 2889.886962, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); - CreateDynamicObject( 14493, 3198.009033, 2885.052978, 55.694999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3197.527099, 2885.581054, 51.674999, 0.000000, 0.000000, -43.099998, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2898.687988, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "SLOTS", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2891.133056, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "POKER", 130, "Times New Roman", 70, 0, -2987746, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2883.635986, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BLACKJACK", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2876.062988, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "ROULETTE", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); - CreateDynamicObject( 1978, 3170.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1978, 3164.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1978, 3158.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2685, 3197.076904, 2889.364013, 54.604999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 3352, 3175.497070, 2898.697998, 58.275001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "$100,000,000 PRIZE!", 120, "Arial", 60, 0, -16724736, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 3352, 3160.444091, 2898.697998, 58.275001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "$50,000,000 PRIZE!", 120, "Arial", 60, 0, -16724736, 0, 1 ); - CreateDynamicObject( 19819, 3195.177001, 2896.531005, 54.485000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19822, 3195.106933, 2896.200927, 54.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3194.710937, 2880.634033, 59.634998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BAR", 130, "Times New Roman", 110, 0, -2987746, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3194.710937, 2894.579101, 59.634998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BAR", 130, "Times New Roman", 110, 0, -2987746, 0, 1 ); - tmpVariable = CreateDynamicActor( 252, 3198.350097, 2885.939941, 54.345001, 20.000000, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "blowjobz", "BJ_COUCH_LOOP_P", 4.1, 1, 1, 1, 1, 0 ); - tmpVariable = CreateDynamicActor( 237, 3198.120117, 2886.320068, 55.384998, 215.000000, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 1, 1, 1, 0 ); - CreateDynamicActor( 172, 3196.590087, 2892.739990, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); - CreateDynamicActor( 172, 3196.590087, 2895.449951, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); - CreateDynamicActor( 172, 3196.590087, 2882.320068, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); - CreateDynamicActor( 172, 3196.590087, 2879.510009, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); - CreateDynamicActor( 163, 3159.459960, 2894.860107, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); - tmpVariable = CreateDynamicActor( 163, 3159.459960, 2902.409912, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0 ); - tmpVariable = CreateDynamicActor( 163, 3159.459960, 2879.870117, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "COP_AMBIENT", "Coplook_nod", 4.1, 1, 1, 1, 1, 0 ); - tmpVariable = CreateDynamicActor( 163, 3159.459960, 2872.320068, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0 ); - tmpVariable = CreateDynamicActor( 187, 3194.340087, 2896.699951, 54.465000, 177.600006, 1, 100.0, -1, -1, -1 ); - ApplyDynamicActorAnimation( tmpVariable, "misc", "Plyrlean_loop", 4.1, 1, 1, 1, 1, 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3105.908935, 2898.173095, 55.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3125.148925, 2853.114990, 56.500999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3125.148925, 2922.708984, 56.500999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3124.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3116.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3105.909912, 2883.181884, 55.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 3125.523925, 2887.237060, 153.826995, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3108.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3100.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3100.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3108.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3124.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3111.502929, 2898.173095, 64.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3111.502929, 2883.178955, 64.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 3112.668945, 2908.408935, 59.921001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 3112.668945, 2867.394042, 59.921001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3112.666992, 2879.399902, 59.917999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -1118480 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3112.666992, 2896.403076, 59.917999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -1118480 ); - tmpVariable = CreateDynamicObject( 970, 3111.622070, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3113.684082, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3121.733886, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3119.672119, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3103.572021, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3105.634033, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3111.622070, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3113.684082, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3103.572021, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3105.634033, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3121.733886, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - tmpVariable = CreateDynamicObject( 970, 3119.672119, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14410, 3098.326904, 2877.740966, 57.217998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3095.433105, 2874.910888, 58.160999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14410, 3096.274902, 2881.750000, 55.467998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); - tmpVariable = CreateDynamicObject( 14410, 3098.326904, 2898.162109, 57.217998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3095.433105, 2900.900878, 58.160999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - tmpVariable = CreateDynamicObject( 14410, 3096.074951, 2894.064941, 55.467998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "ab_carpGreenEdge", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.675048, 2896.413085, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.424072, 2896.413085, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.675048, 2896.415039, 47.930000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.675048, 2879.391113, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.414062, 2879.391113, 47.930000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.075927, 2879.393066, 47.931999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3126.132080, 2886.333984, 89.027999, 90.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3098.424072, 2896.741943, 53.179000, 0.000000, 55.599998, 90.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2891.930908, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2892.930908, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - CreateDynamicObject( 948, 3098.440917, 2892.180908, 56.748001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3098.424072, 2878.918945, 53.275001, 0.000000, 55.599998, -90.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - CreateDynamicObject( 948, 3098.440917, 2883.577880, 56.748001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2883.879882, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2882.879882, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - tmpVariable = CreateDynamicObject( 19940, 3098.368896, 2882.499023, 57.138999, -34.299999, 90.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", -16 ); - SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2880.851074, 58.259998, -34.299999, 90.000000, 0.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2893.346923, 57.195999, -34.299999, 90.000000, 180.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2895.010009, 58.328998, -34.299999, 90.000000, 180.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); - CreateDynamicObject( 638, 3099.340087, 2879.381103, 60.729999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 638, 3099.340087, 2896.398925, 60.729999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3123.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3116.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3109.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3102.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3123.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3116.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3109.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 638, 3102.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); - CreateDynamicObject( 1702, 3107.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1702, 3114.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1702, 3121.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1702, 3105.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1702, 3112.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1702, 3119.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3095.510009, 2887.805908, 57.178001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3095.510009, 2890.326904, 57.178001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3110.603027, 2875.812011, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3113.104003, 2875.812011, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3110.603027, 2899.966064, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3113.104003, 2899.962890, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); - CreateDynamicObject( 1726, 3120.103027, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3123.292968, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3106.415039, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1727, 3106.420898, 2879.346923, 55.523998, 0.000000, 0.400000, -54.400001, -1, -1, -1 ); - CreateDynamicObject( 1727, 3103.358886, 2878.917968, 55.544998, 0.000000, 0.400000, 45.299999, -1, -1, -1 ); - CreateDynamicObject( 1727, 3122.888916, 2879.417968, 55.458000, 0.000000, 0.400000, -54.400001, -1, -1, -1 ); - CreateDynamicObject( 1727, 3118.091064, 2879.102050, 55.487998, 0.000000, 0.400000, 36.500000, -1, -1, -1 ); - CreateDynamicObject( 2315, 3120.025878, 2878.106933, 55.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1820, 3104.628906, 2877.575927, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3118.101074, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3121.434082, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3104.576904, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1726, 3102.195068, 2896.812988, 55.518001, 0.000000, 0.000000, 70.500000, -1, -1, -1 ); - CreateDynamicObject( 2311, 3104.243896, 2897.230957, 55.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 1433, 3121.701904, 2897.406982, 55.698001, 0.000000, 0.000000, 10.000000, -1, -1, -1 ); - CreateDynamicObject( 1433, 3119.587890, 2897.194091, 55.698001, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); - CreateDynamicObject( 1727, 3123.112060, 2895.913085, 55.498001, 0.000000, 0.000000, -143.899993, -1, -1, -1 ); - CreateDynamicObject( 1727, 3118.779052, 2895.469970, 55.498001, 0.000000, 0.000000, 134.300003, -1, -1, -1 ); - CreateDynamicObject( 948, 3116.669921, 2895.537109, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 948, 3108.666015, 2895.537109, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 948, 3108.666015, 2880.134033, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 948, 3116.660888, 2880.134033, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.363037, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2889.547119, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.358886, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2889.547119, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.363037, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); - CreateDynamicObject( 2001, 3126.614990, 2882.853027, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2001, 3126.614990, 2892.996093, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3135.653076, 2878.382080, 55.995998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3133.643066, 2880.384033, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3128.639892, 2881.375000, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3135.653076, 2897.405029, 55.995998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3133.643066, 2895.395996, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3128.652099, 2894.395019, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3133.259033, 2898.172119, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3128.645996, 2897.381103, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3133.259033, 2878.374023, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3128.645996, 2878.378906, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3116.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); - CreateDynamicObject( 869, 3133.541992, 2897.909912, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3128.939941, 2898.900878, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3128.610107, 2896.730957, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3133.541992, 2877.931884, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3129.221923, 2877.041992, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 869, 3128.622070, 2879.133056, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2010, 3131.676025, 2881.336914, 55.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2010, 3131.676025, 2894.341064, 55.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2906.809082, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2872.770019, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2868.766113, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); - CreateDynamicObject( 19324, 3141.304931, 2909.555908, 56.152000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19324, 3141.304931, 2866.250000, 56.152000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 19324, 3144.304931, 2866.251953, 56.152000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + return 1; } CMD:visagelol( playerid, params[] ) { - RemoveBuildingForPlayer(playerid, 7584, 1947.3828, 1916.1953, 78.1953, 0.25); - RemoveBuildingForPlayer(playerid, 7716, 1947.3828, 1916.1953, 78.1953, 0.25); return 1; } diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 303ac85..ee5f96c 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -22,7 +22,8 @@ #include < a_http > /* ** YSI ** */ -#include < foreach > +#include < YSI\y_iterate > +#include < YSI\y_hooks > #include < YSI\y_va > /* ** Redefinitions ** */ @@ -90,7 +91,6 @@ native gpci ( playerid, serial[ ], len ); #define IsPlayerInMethlab(%0) (GetPVarInt(%0,"inMethLab")==1&&GetPlayerInterior(%0)==VW_METH) #define IsPlayerInShamal(%0) (GetPlayerInterior(%0)==VW_SHAMAL) #define IsValidApartment(%0) (0 <= %0 < sizeof(g_apartmentData)) -#define GetPlayerCash(%1) p_Cash[%1] #define GetPlayerXP(%1) p_XP[%1] #define hasTickcountPassed(%1,%2) ((GetTickCount()-%1)>(%2)) #define Ach_Unlock(%0,%1) (%0 >= %1 ?("{6EF83C}"):("{FFFFFF}")) @@ -3223,62 +3223,6 @@ new Iterator:business ; -/* ** Blackjack ** */ -#define MAX_BLACKJACK_TABLES ( 32 ) -#define MAX_BLACKJACK_CARDS ( 5 ) -#define MAX_BLACKJACK_PLAYERS ( 3 ) -#define BLACKJACK_DEALER_WAIT ( 500 ) -#define BLACKJACK_PLAYER_WAIT ( 10 ) - -#define BLACKJACK_STATE_NONE ( 0 ) -#define BLACKJACK_STATE_TURN ( 1 ) -#define BLACKJACK_STATE_BUST ( 2 ) -#define BLACKJACK_STATE_STAND ( 3 ) -#define BLACKJACK_STATE_WIN ( 4 ) - -enum E_BLACKJACK_DATA -{ - bool: E_GAME_STARTED, E_CARDS_DRAWN, E_GAME_TIMER, - - E_PAYOUT, - - E_OBJECT, E_ACTOR, - Float: E_X, Float: E_Y, Float: E_Z, - Float: E_ROTATION -}; - -new - g_blackjackData [ MAX_BLACKJACK_TABLES ] [ E_BLACKJACK_DATA ], - Text: g_blackjackTurnTD [ MAX_BLACKJACK_TABLES ] = { Text: INVALID_TEXT_DRAW, ... }, - Text: g_blackjackPlayerCards [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ] [ MAX_BLACKJACK_PLAYERS ], - Text: g_blackjackDealerCards [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ], - g_blackjackDealerCardIndex [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ], - g_blackjackPlayerCardIndex [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ] [ MAX_BLACKJACK_PLAYERS ], - g_blackjackPlayerState [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_PLAYERS ], - g_blackjackSlotData [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_PLAYERS ], - p_blackjackTable [ MAX_PLAYERS ] = { -1, ... }, - Iterator:blackjacktables -; - -/* ** Visage Apartments ** */ -#define MAX_VISAGE_APARTMENTS ( 13 ) - -static const - Float: VISAGE_APARTMENT_ENTRANCE[ 3 ] = { 0.0, 0.0, 0.0 }, - Float: VISAGE_APARTMENT_EXIT[ 3 ] = { 0.0, 0.0, 0.0 } -; - -enum E_APARTMENT_DATA -{ - E_OWNER_ID, E_TITLE[ 30 ], E_PASSCODE[ 4 ], - bool: E_GAMBLING -}; - -new - g_VisageApartmentData [ MAX_VISAGE_APARTMENTS ] [ E_FLAT_DATA ], - Iterator: visageapartments < MAX_VISAGE_APARTMENTS > -; - /* ** Player Data ** */ new bool: p_Spawned [ MAX_PLAYERS char ], @@ -3530,12 +3474,7 @@ new /* ** Server Data ** */ new - dbHandle, g_Checkpoints [ ALL_CHECKPOINTS ], - szSmallString [ 32 ], - szBigString [ 256 ], - szLargeString [ 1024 ], - szHugeString [ 2048 ], g_redeemVipWait = 0, g_TrolleyVehicles [ 5 ], engine, lights, doors, bonnet, boot, objective, alarm, panels, tires, @@ -3556,7 +3495,6 @@ new szReportsLog [ 8 ][ 128 ], szQuestionsLog [ 8 ][ 128 ], g_preloadedObjectCount = 0, - bool: g_ServerLocked = false, bool: g_CommandLogging = false, bool: g_DialogLogging = false, szRules [ 3300 ], @@ -3618,6 +3556,7 @@ stock Float: distanceFromSafe( iPlayer, iRobbery, &Float: fDistance = Float: 0x7 main() { print( "\n" #SERVER_NAME "\n" ); + CallRemoteFunction( "InitializeTextDraws", "" ); } public OnGameModeInit() @@ -3638,8 +3577,6 @@ public OnGameModeInit() //SetServerRule( "mapname", "San Fierro" ); /* ** Intalize Data ** */ - InitializeFpsTextdraw( ); - initializeTextDraws( ); initializeCheckpoints( ); initializeVehicles( ); initializeServerObjects( ); @@ -3669,14 +3606,6 @@ public OnGameModeInit() CreateDynamicMapIcon( g_informationPickupsData[ i ] [ E_X ], g_informationPickupsData[ i ] [ E_Y ], g_informationPickupsData[ i ] [ E_Z ], 37, 0, -1, -1, -1, 50.0 ); } - /* ** Database Configuration ** */ - dbHandle = mysql_connect( MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASS ); - - if ( mysql_errno( dbHandle ) ) - print( "[MYSQL]: Couldn't connect to MySQL database." ), g_ServerLocked = true; - else - print( "[MYSQL]: Connection to database is successful." ); - /* ** Server Variables ** */ AddServerVariable( "taxrate", "5.0", GLOBAL_VARTYPE_FLOAT ); AddServerVariable( "doublexp", "0", GLOBAL_VARTYPE_INT ); @@ -3968,20 +3897,6 @@ public OnGameModeInit() CreateRouletteTable( 1963.71094, 1010.11719, 992.507810, 0.000000 ); CreateRouletteTable( 1959.39844, 1010.11719, 992.507810, 0.000000 ); - // Create blackjack tables - CreateBlackjackTable( 25000, 2230.37500, 1602.75000, 1006.15631, 0.00000, 82 ); - CreateBlackjackTable( 25000, 2232.18750, 1604.43750, 1006.15631, 90.0000, 82 ); - CreateBlackjackTable( 25000, 2228.49219, 1604.45313, 1006.15631, -90.000, 82 ); - CreateBlackjackTable( 25000, 2230.37500, 1606.27344, 1006.15631, 180.000, 82 ); - CreateBlackjackTable( 100000, 2241.31250, 1602.75000, 1006.15631, 0.00000, 82 ); - CreateBlackjackTable( 100000, 2243.12500, 1604.43750, 1006.15631, 90.0000, 82 ); - CreateBlackjackTable( 100000, 2239.42969, 1604.45313, 1006.15631, -90.000, 82 ); - CreateBlackjackTable( 100000, 2241.31250, 1606.27344, 1006.15631, 180.000, 82 ); - CreateBlackjackTable( 1000000, 1962.34375, 1015.66412, 992.46881, 90.00000, 23 ); - CreateBlackjackTable( 1000000, 1960.36719, 1015.66412, 992.46881, -90.0000, 23 ); - CreateBlackjackTable( 1000000, 1960.74829, 1020.31189, 992.46881, -90.0000, 23 ); - CreateBlackjackTable( 10000000, 1962.34375, 1020.17969, 992.46881, 90.00000, 23 ); - // Houses /*CreateEntrance( "[ROOFTOP]", -2440.5149, 820.9702, 35.1838, -2438.1204, 819.7362, 65.5078, 0, 0, false, true ); // Jendral CreateEntrance( "[ROOFTOP]", -2475.4238, 161.5239, 35.1406, -2476.4043, 155.6541, 64.9332, 0, 0, false, true ); // Queens' Rooftop @@ -5232,7 +5147,6 @@ function lumberjack_RemoveWood( obj ) return StopDynamicObject( obj ), DestroyDy public OnGameModeExit( ) { - mysql_close( ); KillTimer( rl_ServerUpdate ); KillTimer( rl_ZoneUpdate ); for( new t; t != MAX_TEXT_DRAWS; t++ ) TextDrawDestroy( Text: t ); @@ -6386,9 +6300,6 @@ public OnPlayerConnect( playerid ) if ( textContainsIP( ReturnPlayerName( playerid ) ) ) return Kick( playerid ), 1; - if ( g_ServerLocked ) - return SendError( playerid, "The server is locked due to false server configuration. Please wait for the operator." ), KickPlayerTimed( playerid ), 1; - // Ultra fast queries... format( Query, sizeof( Query ), "SELECT * FROM `BANS` WHERE (`NAME`='%s' OR `IP`='%s') AND `SERVER`=0 LIMIT 0,1", mysql_escape( ReturnPlayerName( playerid ) ), mysql_escape( ReturnPlayerIP( playerid ) ) ); mysql_function_query( dbHandle, Query, true, "OnPlayerBanCheck", "i", playerid ); @@ -6629,7 +6540,6 @@ public OnPlayerDisconnect( playerid, reason ) StopPlayerTruckingCourier( playerid ); RemovePlayerFromRace( playerid ); RemovePlayerFromRoulette( playerid ); - RemovePlayerFromBlackjack( playerid ); p_Detained { playerid } = false; p_Tied { playerid } = false; p_Kidnapped { playerid } = false; @@ -7580,7 +7490,7 @@ stock getPlayerTax( playerid ) #if defined AC_INCLUDED public OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart ) #else -public OnPlayerDeath(playerid, killerid, reason) +public OnPlayerDeath( playerid, killerid, reason ) #endif { if ( !p_PlayerLogged{ playerid } ) @@ -7623,7 +7533,6 @@ public OnPlayerDeath(playerid, killerid, reason) RemoveEquippedOre( playerid ); KillTimer( p_CuffAbuseTimer[ playerid ] ); RemovePlayerFromRoulette( playerid ); - RemovePlayerFromBlackjack( playerid ); PlayerTextDrawHide( playerid, p_LocationTD[ playerid ] ); p_Tazed{ playerid } = false; p_WeaponDealing{ playerid } = false; @@ -8845,47 +8754,6 @@ public OnPlayerCommandReceived(playerid, cmdtext[]) return 1; } -CMD:fireworks( playerid, params[ ] ) -{ - if ( ! IsPlayerAdmin( playerid ) ) return 0; - new - flares, style, Float: speed, Float: gravity, Float: angle, Float: time_delay, Float: max_height; - - // /fireworks 50 0 10 10.8 50 0.2 50 - spiral - if ( sscanf( params, "ddffffF(50.0)", flares, style, speed, gravity, angle, time_delay, max_height ) ) return SendUsage( playerid, "fireworks [FLARES] [STYLE] [SPEED] [GRAVITY] [ANGLE] [TIME_DELAY] [MAX_HEIGHT]" ); - else - { - new - Float: X, Float: Y, Float: Z - ; - - GetPlayerPos( playerid, X, Y, Z ); - - CreateFireworks( flares, style, X, Y, Z, angle, speed, gravity, time_delay, max_height ); - return SendServerMessage( playerid, "Fireworks placed! Use /launchfireworks to launch." ); - } -} - -CMD:launchfireworks( playerid, params[ ] ) -{ - if ( ! IsPlayerAdmin( playerid ) ) return 0; - foreach (new f : fireworks) { - LaunchFireworks( f ); - } - SendServerMessage( playerid, "Launching" ); - return 1; -} - -CMD:destroyfireworks( playerid, params[ ] ) -{ - if ( ! IsPlayerAdmin( playerid ) ) return 0; - for (new f = 0; f < MAX_FIREWORKS; f++ ) { - ResetFirework( f ); - } - SendServerMessage( playerid, "Destroyed" ); - return 1; -} - CMD:b( playerid, params[ ] ) return cmd_business( playerid, params ); CMD:business( playerid, params[ ] ) { @@ -20678,42 +20546,6 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) if ( IsPlayerInCasino( playerid ) ) { - new - blackjack_table = p_blackjackTable[ playerid ]; - - // Blackjack - if ( blackjack_table != -1 ) - { - new - player_index = GetBlackjackPlayerIndex( blackjack_table, playerid ); - - if ( player_index == -1 ) - return SendError( playerid, "You don't seem to be playing any blackjack table." ); - - if ( PRESSED( KEY_SPRINT ) ) { - - if ( ! g_blackjackData[ blackjack_table ] [ E_CARDS_DRAWN ] && g_blackjackData[ blackjack_table ] [ E_GAME_TIMER ] == -1 ) - return ( g_blackjackData[ blackjack_table ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", blackjack_table ) ), 1; - - if ( g_blackjackPlayerState[ blackjack_table ] [ player_index ] == BLACKJACK_STATE_TURN ) { - g_blackjackPlayerState[ blackjack_table ] [ player_index ] = BLACKJACK_STATE_STAND; - SendClientMessageToBlackjack( blackjack_table, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has decided to stand.", ReturnPlayerName( playerid ), playerid ); - return 1; - } - return 1; - } - - if ( PRESSED( KEY_CTRL_BACK ) ) - { - if ( g_blackjackPlayerState[ blackjack_table ] [ player_index ] != BLACKJACK_STATE_TURN ) - return SendError( playerid, "It's not your turn to hit. Please wait!" ); - - DrawPlayerBlackjackCard( blackjack_table, player_index ); - CheckForBlackjack( blackjack_table ); - return 1; - } - } - // Roulette if ( p_RouletteMarkerTimer[ playerid ] != -1 ) { @@ -20891,83 +20723,6 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) if ( p_RouletteTable[ playerid ] != -1 ) return RemovePlayerFromRoulette( playerid ); - if ( p_blackjackTable[ playerid ] != -1 ) - return RemovePlayerFromBlackjack( playerid, .reset_cam = 1 ); - - foreach(new id : blackjacktables) - { - if ( IsPlayerInRangeOfPoint( playerid, 3.0, g_blackjackData[ id ] [ E_X ], g_blackjackData[ id ] [ E_Y ], g_blackjackData[ id ] [ E_Z ] ) ) { - - new - player_index; - - for ( ; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) - if ( g_blackjackSlotData[ id ] [ player_index ] == -1 ) - break; - - if ( player_index >= MAX_BLACKJACK_PLAYERS || g_blackjackSlotData[ id ] [ player_index ] != -1 ) - return SendError( playerid, "There are no more vacant slots for this table." ); - - if ( GetPlayerCash( playerid ) < g_blackjackData[ id ] [ E_PAYOUT ] ) - return SendError( playerid, "You don't have any money to wager." ); - - new - Float: lookatX, Float: lookatY, Float: lookatZ, - Float: tmpX, Float: tmpY, Float: tmpZ - ; - - GetPlayerCameraPos( playerid, X, Y, Z ); - GetPlayerCameraFrontVector( playerid, lookatX, lookatY, lookatZ ); - - tmpX = g_blackjackData[ id ] [ E_X ] - 1.3 * floatcos( g_blackjackData[ id ] [ E_ROTATION ] + 90.0, degrees ); - tmpY = g_blackjackData[ id ] [ E_Y ] - 1.3 * floatsin( g_blackjackData[ id ] [ E_ROTATION ] + 90.0, degrees ); - tmpZ = g_blackjackData[ id ] [ E_Z ] + 1.7; - - InterpolateCameraPos( playerid, X, Y, Z, tmpX, tmpY, tmpZ, 1000, CAMERA_MOVE ); - - X += floatmul( lookatX, 20.0 ); - Y += floatmul( lookatY, 20.0 ); - Z += floatmul( lookatZ, 20.0 ); - - InterpolateCameraLookAt( playerid, X, Y, Z, g_blackjackData[ id ] [ E_X ], g_blackjackData[ id ] [ E_Y ], g_blackjackData[ id ] [ E_Z ] - 1.0, 1000, CAMERA_MOVE ); - - p_blackjackTable[ playerid ] = id; - g_blackjackSlotData[ id ] [ player_index ] = playerid; - - // reset player cards - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) - g_blackjackPlayerCardIndex[ id ] [ c ] [ player_index ] = -1; - - // show cards to players - for ( new player = 0; player < MAX_BLACKJACK_PLAYERS; player ++ ) - { - new - gamerid = g_blackjackSlotData[ id ] [ player ]; - - // deal only first two cards - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) - { - TextDrawShowForPlayer( gamerid, g_blackjackDealerCards[ id ] [ c ] ); - - // show two player cards only - if ( c >= 2 ) - continue; - - for ( new p = 0; p < GetBlackjackPlayers( id ); p ++ ) { - TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ id ] [ c ] [ p ] ); - } - } - } - - szBigString = "~y~~k~~PED_SPRINT~~w~ - Begin game/Stand~n~~y~~k~~GROUP_CONTROL_BWD~~w~ - Hit~n~~y~~k~~VEHICLE_ENTER_EXIT~~w~ - Exit"; - ShowPlayerHelpDialog( playerid, 0, szBigString ); - - SendServerMessage( playerid, "You have entered the %s hand blackjack table.", ConvertPrice( g_blackjackData[ id ] [ E_PAYOUT ] ) ); - ApplyAnimation( playerid, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0, 1 ); - return 1; - } - } - foreach(new id : roulettetables) { if ( IsPlayerInRangeOfPoint( playerid, 3.1, g_rouletteTableData[ id ] [ E_X ], g_rouletteTableData[ id ] [ E_Y ], g_rouletteTableData[ id ] [ E_Z ] ) ) { @@ -27398,19 +27153,9 @@ stock SavePlayerData( playerid, bool: logout = false ) return 1; } -stock initializeTextDraws( ) +forward InitializeTextDraws( ); public InitializeTextDraws( ) { - // reset blackjack data - for ( new i = 0; i < MAX_BLACKJACK_TABLES; i ++ ) { - for ( new x = 0; x < MAX_BLACKJACK_CARDS; x ++ ) { - g_blackjackDealerCards[ i ] [ x ] = Text: INVALID_TEXT_DRAW; - for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { - g_blackjackPlayerCards[ i ] [ x ] [ p ] = Text: INVALID_TEXT_DRAW; - g_blackjackSlotData[ i ] [ p ] = -1; - } - } - } - + print ("Initialized First"); g_NotManyPlayersTD = TextDrawCreate(322.000000, 12.000000, "Coin generation increased by 5x as there aren't many players online!"); TextDrawAlignment(g_NotManyPlayersTD, 2); TextDrawBackgroundColor(g_NotManyPlayersTD, 0); @@ -27792,10 +27537,6 @@ stock initializeTextDraws( ) TextDrawTextSize(g_SlotMachineThreeTD[ playerid ], 66.000000, 77.000000); } - if ( playerid < MAX_BLACKJACK_TABLES ) { - initializeBlackjackTextdraws( playerid ); - } - p_ProgressBoxOutsideTD[ playerid ] = TextDrawCreate(252.000000, 222.000000, "_"); TextDrawBackgroundColor(p_ProgressBoxOutsideTD[ playerid ], 255); TextDrawFont(p_ProgressBoxOutsideTD[ playerid ], 1); @@ -27922,6 +27663,7 @@ stock initializeTextDraws( ) TextDrawTextSize(p_HelpBoxTD[ playerid ], 170.000000, 0.000000); TextDrawSetSelectable(p_HelpBoxTD[ playerid ], 0); } + return Y_HOOKS_CONTINUE_RETURN_1; } stock initializePlayerTextDraws( playerid ) @@ -28020,6 +27762,7 @@ stock initializePlayerTextDraws( playerid ) PlayerTextDrawSetOutline(playerid, p_RobberyAmountTD[ playerid ], 1); PlayerTextDrawSetProportional(playerid, p_RobberyAmountTD[ playerid ], 1); PlayerTextDrawSetSelectable(playerid, p_RobberyAmountTD[ playerid ], 0); + return 1; } stock SendClientMessageToGang( gangid, colour, format[ ], va_args<> ) // Conversion to foreach 14 stuffed the define, not sure how... @@ -28468,6 +28211,8 @@ stock ClearPlayerWantedLevel( playerid ) SetPlayerColorToTeam( playerid ); } +stock GetPlayerCash( playerid ) return p_Cash[ playerid ]; + stock GivePlayerCash( playerid, money, bool: force_save = false ) { p_Cash[ playerid ] += money; @@ -31370,23 +31115,6 @@ stock IsVehicleOccupied( vehicleid, bool: include_vehicle_interior = false ) { return false; } -stock ConvertPrice( iValue, iCashSign = 1 ) -{ - static - szNum[ 32 ]; - - format( szNum, sizeof( szNum ), "%d", iValue < 0 ? -iValue : iValue ); - - for( new i = strlen( szNum ) - 3; i > 0; i -= 3 ) { - strins( szNum, ",", i, sizeof( szNum ) ); - } - - if ( iCashSign ) strins( szNum, "$", 0 ); - if ( iValue < 0 ) strins( szNum, "-", 0, sizeof( szNum ) ); - - return szNum; -} - stock RedirectAmmunation( playerid, listitem, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU_BUY, Float: custom_multplier = 1.0, bool: unlimited_ammo = false ) { new @@ -34923,7 +34651,7 @@ thread OnSlotMachinesLoad( ) // 3d Text fOffsetX = 1.0 * floatsin( -rZ, degrees ); fOffsetY = 1.0 * floatcos( -rZ, degrees ); - CreateDynamic3DTextLabel( sprintf( "Press ENTER to use\n"COL_WHITE"%s Minimum", ConvertPrice( g_slotmachineData[ id ] [ E_ENTRY_FEE ] ) ), COLOR_GREY, X + fOffsetX, Y + fOffsetY, Z - 0.1, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 1 ); + CreateDynamic3DTextLabel( sprintf( "Press ENTER To Play\n"COL_WHITE"%s Minimum", ConvertPrice( g_slotmachineData[ id ] [ E_ENTRY_FEE ] ) ), COLOR_GREY, X + fOffsetX, Y + fOffsetY, Z - 0.1, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 1 ); // Misc variables g_slotmachineData[ id ] [ E_TIMER ] = -1; @@ -36886,7 +36614,7 @@ stock CreateRouletteTable( Float: X, Float: Y, Float: Z, Float: Angle ) X += 1.365 * floatcos( Angle + 98.0, degrees ); Y += 1.365 * floatsin( Angle + 98.0, degrees ); - CreateDynamic3DTextLabel( "Press ENTER to use\n"COL_WHITE"$1,000 Minimum", COLOR_GREY, X, Y, Z + 0.02, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 ); + CreateDynamic3DTextLabel( "Press ENTER To Play\n"COL_WHITE"$1,000 Minimum", COLOR_GREY, X, Y, Z + 0.02, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 ); g_rouletteTableData[ id ] [ E_SPINNER_OBJECT ] = CreateDynamicObject( 1979, X, Y, Z - 0.02, 0.00000, 0.00000, 0.0 ); Iter_Add( roulettetables, id ); @@ -38410,488 +38138,5 @@ stock GetBusinessAirModelIndex( modelid ) { return index; } -stock CreateBlackjackTable( payout, Float: X, Float: Y, Float: Z, Float: Angle, world = 0 ) -{ - new - id = Iter_Free(blackjacktables); - - if ( id != ITER_NONE ) - { - g_blackjackData[ id ] [ E_X ] = X; - g_blackjackData[ id ] [ E_Y ] = Y; - g_blackjackData[ id ] [ E_Z ] = Z; - g_blackjackData[ id ] [ E_ROTATION ] = Angle; - - g_blackjackData[ id ] [ E_GAME_TIMER ] = -1; - g_blackjackData[ id ] [ E_PAYOUT ] = payout; - g_blackjackData[ id ] [ E_OBJECT ] = CreateDynamicObject( 2188, X, Y, Z, 0.00000, 0.00000, Angle ); - g_blackjackData[ id ] [ E_ACTOR ] = CreateActor( 171, X - 0.4 * floatcos( Angle - 90.0, degrees ), Y - 0.4 * floatsin( Angle - 90.0, degrees ), Z, Angle + 180.0 ); - CreateDynamic3DTextLabel( sprintf( "Press ENTER to use\n"COL_WHITE"%s Minimum", ConvertPrice( payout ) ), COLOR_GREY, X, Y, Z + 0.25, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 ); - - SetActorInvulnerable( g_blackjackData[ id ] [ E_ACTOR ], true ); - SetActorVirtualWorld( g_blackjackData[ id ] [ E_ACTOR ], world ); - - ResetBlackjackTable( id ); - Iter_Add( blackjacktables, id ); - } - return 1; -} - -function DrawPlayerBlackjackCard( tableid, player_index ) -{ - new - randomCard = random( sizeof( g_blackjackDealerCards ) ); - - for ( new cardid = 0; cardid < MAX_BLACKJACK_CARDS; cardid ++ ) if ( g_blackjackPlayerCardIndex[ tableid ] [ cardid ] [ player_index ] == -1 ) { - TextDrawSetString( g_blackjackPlayerCards[ tableid ] [ cardid ] [ player_index ], g_cardTextdrawData[ randomCard ] ); - foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] == tableid ) { - TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ tableid ] [ cardid ] [ player_index ] ); - PlayerPlaySound( gamerid, 1145, 0.0, 0.0, 0.0 ); - } - g_blackjackPlayerCardIndex[ tableid ] [ cardid ] [ player_index ] = randomCard; - break; - } - return randomCard; -} - -function BeginBlackJackTurn( tableid ) -{ - new - cardid = g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] ++; - - if ( cardid >= MAX_BLACKJACK_CARDS ) { - ResetBlackjackTable( tableid ); - return; - } - - new - randomCard = random( sizeof( g_blackjackDealerCards ) ); - - // dealer cards - ApplyActorAnimation( g_blackjackData[ tableid ] [ E_ACTOR ], "CASINO", "dealone", 4.1, 0, 0, 0, 0, 0 ); - ApplyActorAnimation( g_blackjackData[ tableid ] [ E_ACTOR ], "CASINO", "dealone", 4.1, 0, 0, 0, 0, 0 ); - TextDrawSetString( g_blackjackDealerCards[ tableid ] [ cardid ], g_cardTextdrawData[ randomCard ] ); - g_blackjackDealerCardIndex[ tableid ] [ cardid ] = randomCard; - - // noise - foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] != -1 ) { - PlayerPlaySound( gamerid, 1145, 0.0, 0.0, 0.0 ); - } - - // deal player first card - if ( cardid == 0 ) - { - new - bet_amount = 0; - - for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 ) - { - new - gamerid = g_blackjackSlotData[ tableid ] [ player_index ]; - - if ( GetPlayerCash( gamerid ) < g_blackjackData[ tableid ] [ E_PAYOUT ] ) { - SendError( gamerid, "You don't have any money to wager." ); - RemovePlayerFromBlackjack( gamerid, .reset_cam = 1 ); - continue; - } - - bet_amount += g_blackjackData[ tableid ] [ E_PAYOUT ]; - GivePlayerCash( gamerid, -g_blackjackData[ tableid ] [ E_PAYOUT ] ); - DrawPlayerBlackjackCard( tableid, player_index ); - if ( cardid < 1 ) { // distribute first two cards to players - SetTimerEx( "DrawPlayerBlackjackCard", BLACKJACK_DEALER_WAIT, false, "dd", tableid, player_index ); - } - } - - UpdateServerVariable( "blackjack_bets", 0, GetGVarFloat( "blackjack_bets" ) + ( float( bet_amount ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT ); - - // begin turns - new - first_player = GetNextAvailableBlackjackPlayer( tableid ), - first_player_index = GetBlackjackPlayerIndex( tableid, first_player ) - ; - - if ( first_player_index != -1 ) - g_blackjackPlayerState[ tableid ] [ first_player_index ] = BLACKJACK_STATE_TURN; - - g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", BLACKJACK_DEALER_WAIT + 500, false, "ddd", tableid, first_player, BLACKJACK_PLAYER_WAIT ); - } - - // check for blackjack on players & bot - new - dealer_score = CheckForBlackjack( tableid ); - - // pull more cards - if ( cardid >= 1 && dealer_score < 17 ) - g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", tableid ); - - if ( dealer_score >= 17 ) { - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" Table will reset in 5 seconds as all hands have been dealt." ); - SetTimerEx( "ResetBlackjackTable", 5000, false, "d", tableid ); - } -} - -stock GetNextAvailableBlackjackPlayer( tableid, exclude = INVALID_PLAYER_ID ) -{ - new - playerid = INVALID_PLAYER_ID; - - for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 && g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_NONE && exclude != g_blackjackSlotData[ tableid ] [ player_index ] && g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] != -1 ) { - playerid = g_blackjackSlotData[ tableid ] [ player_index ]; - break; - } - return playerid; -} - -function BlackjackPlayerTurn( tableid, playerid, seconds_left ) -{ - new - player_index = GetBlackjackPlayerIndex( tableid, playerid ); - - if ( IsPlayerConnected( playerid ) && player_index != -1 && seconds_left >= 0 && g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_TURN ) - { - foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] == tableid ) { - TextDrawSetString( g_blackjackTurnTD[ tableid ], sprintf( "%s has %d seconds left", ReturnPlayerName( playerid ), seconds_left ) ); - TextDrawShowForPlayer( gamerid, g_blackjackTurnTD[ tableid ] ); - } - g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", 960, false, "ddd", tableid, playerid, seconds_left - 1 ); - } - else - { - new - next_player = GetNextAvailableBlackjackPlayer( tableid, playerid ); - - if ( next_player == INVALID_PLAYER_ID ) - { - TextDrawHideForAll( g_blackjackTurnTD[ tableid ] ); - g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", tableid ); - } - else - { - new - next_player_index = GetBlackjackPlayerIndex( tableid, next_player ); - - // otherwise winning hands will get reissued prizes - if ( player_index != -1 && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_WIN && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_BUST ) - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_STAND; - - g_blackjackPlayerState[ tableid ] [ next_player_index ] = BLACKJACK_STATE_TURN; - g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", 960, false, "ddd", tableid, next_player, BLACKJACK_PLAYER_WAIT ); - } - } -} - -function ResetBlackjackTable( tableid ) -{ - if ( tableid == -1 ) - return; - - // variables - KillTimer( g_blackjackData[ tableid ] [ E_GAME_TIMER ] ), g_blackjackData[ tableid ] [ E_GAME_TIMER ] = -1; - g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] = 0; - - // card data - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { - g_blackjackDealerCardIndex[ tableid ] [ c ] = -1; - TextDrawSetString( g_blackjackDealerCards[ tableid ] [ c ], "ld_card:cdback" ); - - for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { - g_blackjackPlayerState[ tableid ] [ p ] = BLACKJACK_STATE_NONE; - g_blackjackPlayerCardIndex[ tableid ] [ c ] [ p ] = -1; - TextDrawSetString( g_blackjackPlayerCards[ tableid ] [ c ] [ p ], "ld_card:cdback" ); - if ( c > 1 ) TextDrawHideForAll( g_blackjackPlayerCards[ tableid ] [ c ] [ p ] ); - } - } - - // reshow textdraws to players - for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 ) - { - new - gamerid = g_blackjackSlotData[ tableid ] [ player_index ]; - - // deal only first two cards - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) - { - TextDrawShowForPlayer( gamerid, g_blackjackDealerCards[ tableid ] [ c ] ); - - // show two player cards only - if ( c >= 2 ) - continue; - - for ( new p = 0; p < GetBlackjackPlayers( tableid ); p ++ ) { - TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ tableid ] [ c ] [ p ] ); - } - } - } -} - -stock CheckForBlackjack( tableid ) -{ - new - dealer_score = 0; - - //if ( g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] <= 1 ) - // return dealer_score; - - // calculate dealer score - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) if ( g_blackjackDealerCardIndex[ tableid ] [ c ] != -1 ) - { - new - card_value = GetBlackjackCardValue( g_blackjackDealerCardIndex[ tableid ] [ c ] ); - - // printf("%d Card = %d", c, card_value); - - if ( card_value == 1 ) { - if ( dealer_score >= 11 ) dealer_score += 1; - else dealer_score += 11; - } - else dealer_score += card_value; - } - //printf("The Dealer score is %d", dealer_score ); - - // calculate player score - for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 && g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] != -1 ) - { - new - playerid = g_blackjackSlotData[ tableid ] [ player_index ], player_score = 0; - - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) if ( g_blackjackPlayerCardIndex[ tableid ] [ c ] [ player_index ] != -1 ) - { - new - card_value = GetBlackjackCardValue( g_blackjackPlayerCardIndex[ tableid ] [ c ] [ player_index ] ); - - if ( card_value == 1 ) { - if ( player_score >= 11 ) player_score += 1; - else player_score += 11; - } - else player_score += card_value; - } - - if ( g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_BUST && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_WIN ) - { - new - payout = floatround( float( g_blackjackData[ tableid ] [ E_PAYOUT ] ) * 2.0 ); - - // check for win - if ( dealer_score == player_score && dealer_score >= 17 ) { - payout = g_blackjackData[ tableid ] [ E_PAYOUT ]; - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has been returned %s due to a push.", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); - GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); - GivePlayerCash( playerid, payout ); - } - else if ( player_score == 21 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; - if ( IsPlayerHandBlackjack( tableid, player_index, player_score ) ) { - payout = floatround( float( g_blackjackData[ tableid ] [ E_PAYOUT ] ) * 2.5 ); - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" Blackjack! %s(%d) has won %s!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); - } else { - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a card count of 21!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); - } - GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); - GivePlayerCash( playerid, payout ); - } - else if ( dealer_score == 21 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a dealer %s.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ), IsDealerHandBlackjack( tableid, dealer_score ) ? ( "blackjack" ) : ( "21" ) ); - GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); - } - else if ( player_score > 21 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); - GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); - } - else if ( dealer_score > 21 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a dealer bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); - GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); - GivePlayerCash( playerid, payout ); - } - else if ( player_score < dealer_score && dealer_score >= 17 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); - GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); - } - else if ( player_score > dealer_score && dealer_score >= 17 ) { - g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; - SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a dealer bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); - GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); - GivePlayerCash( playerid, payout ); - } - - // alert world - if ( g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_WIN && payout > g_blackjackData[ tableid ] [ E_PAYOUT ] && payout >= 10000 ) { - UpdateServerVariable( "blackjack_wins", 0, GetGVarFloat( "blackjack_wins" ) + ( float( payout ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT ); - SendGlobalMessage( -1, ""COL_GREY"[CASINO]{FFFFFF} %s(%d) has won "COL_GOLD"%s"COL_WHITE" from blackjack!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); - } - } - } - return dealer_score; -} - -stock RemovePlayerFromBlackjack( playerid, reset_cam = 0 ) -{ - new - blackjack_table = p_blackjackTable[ playerid ]; - - if ( blackjack_table == -1 ) - return 0; - - // hide textdraws & reset - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { - TextDrawHideForPlayer( playerid, g_blackjackDealerCards[ blackjack_table ] [ c ] ); - - for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { - TextDrawHideForPlayer( playerid, g_blackjackPlayerCards[ blackjack_table ] [ c ] [ p ] ); - } - } - TextDrawHideForPlayer( playerid, g_blackjackTurnTD[ blackjack_table ] ); - - // check if it is a player - new - player_index = GetBlackjackPlayerIndex( blackjack_table, playerid ); - - if ( player_index != -1 ) - { - foreach (new i : Player) if ( p_blackjackTable[ i ] == blackjack_table ) { - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { - g_blackjackPlayerCardIndex[ blackjack_table ] [ c ] [ player_index ] = -1; - g_blackjackPlayerState[ blackjack_table ] [ player_index ] = BLACKJACK_STATE_NONE; - TextDrawSetString( g_blackjackPlayerCards[ blackjack_table ] [ c ] [ player_index ], "ld_card:cdback" ); - TextDrawHideForPlayer( i, g_blackjackPlayerCards[ blackjack_table ] [ c ] [ player_index ] ); - } - } - g_blackjackSlotData[ blackjack_table ] [ player_index ] = -1; - } - - // reset camera? - if ( reset_cam ) { - TogglePlayerControllable( playerid, 1 ); - ClearAnimations( playerid ); - SetCameraBehindPlayer( playerid ); - HidePlayerHelpDialog( playerid ); - } - - // reset variables - p_blackjackTable[ playerid ] = -1; - - // reset table just incase empty - if ( GetBlackjackPlayers( blackjack_table ) <= 0 ) - ResetBlackjackTable( blackjack_table ); - - return 1; -} - -stock SendClientMessageToBlackjack( tableid, colour, format[ ], va_args<> ) -{ - static - out[ 144 ]; - - va_format( out, sizeof( out ), format, va_start<3> ); - - for(new i = 0; i < 10; i++) if ( p_blackjackTable[ i ] == tableid ) { - SendClientMessage( i, colour, out ); - } - return 1; -} - -stock initializeBlackjackTextdraws( id ) -{ - g_blackjackTurnTD[ id ] = TextDrawCreate(330.000000, 204.000000, "Lorenc has 5 seconds"); - TextDrawAlignment(g_blackjackTurnTD[ id ], 2); - TextDrawBackgroundColor(g_blackjackTurnTD[ id ], 255); - TextDrawFont(g_blackjackTurnTD[ id ], 1); - TextDrawLetterSize(g_blackjackTurnTD[ id ], 0.260000, 1.200000); - TextDrawColor(g_blackjackTurnTD[ id ], 16711935); - TextDrawSetOutline(g_blackjackTurnTD[ id ], 1); - TextDrawSetProportional(g_blackjackTurnTD[ id ], 1); - - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) - { - g_blackjackDealerCards[ id ] [ c ] = TextDrawCreate(243.000000 + 35.0 * float( c ), 138.000000, "ld_card:cdback"); - TextDrawBackgroundColor( g_blackjackDealerCards[ id ] [ c ], 255); - TextDrawFont( g_blackjackDealerCards[ id ] [ c ], 4); - TextDrawLetterSize( g_blackjackDealerCards[ id ] [ c ], 0.500000, 1.000000); - TextDrawUseBox( g_blackjackDealerCards[ id ] [ c ], 1); - TextDrawBoxColor( g_blackjackDealerCards[ id ] [ c ], 255); - TextDrawTextSize( g_blackjackDealerCards[ id ] [ c ], 30.000000, 51.000000); - } - - new - Float: g_blackjackPlayerPosition[ MAX_BLACKJACK_PLAYERS ] [ 2 ] = { { 295.0, 334.0 }, { 205.0, 319.0 }, { 390.0, 329.0 } }; - - for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) - { - for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) - { - g_blackjackPlayerCards[ id ] [ c ] [ p ] = TextDrawCreate( g_blackjackPlayerPosition[ p ] [ 0 ] + 10.0 * float( c ), g_blackjackPlayerPosition[ p ] [ 1 ] - 16.0 * float( c ), "ld_card:cdback" ); - TextDrawBackgroundColor( g_blackjackPlayerCards[ id ] [ c ] [ p ], 255 ); - TextDrawFont( g_blackjackPlayerCards[ id ] [ c ] [ p ], 4 ); - TextDrawLetterSize( g_blackjackPlayerCards[ id ] [ c ] [ p ], 0.5, 0.7 ); - TextDrawUseBox( g_blackjackPlayerCards[ id ] [ c ] [ p ], 1 ); - TextDrawBoxColor( g_blackjackPlayerCards[ id ] [ c ] [ p ], 255 ); - TextDrawTextSize( g_blackjackPlayerCards[ id ] [ c ] [ p ], 22.000000, 37.000000 ); - } - } -} - -stock IsPlayerHandBlackjack( tableid, player_index, card_count ) -{ - if ( card_count == 21 && ( g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 0 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 13 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 26 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 39 ) ) - return true; - - if ( card_count == 21 && ( g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 0 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 13 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 26 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 39 ) ) - return true; - - return false; -} - -stock IsDealerHandBlackjack( tableid, card_count ) -{ - if ( card_count == 21 && ( g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 0 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 13 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 26 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 39 ) ) - return true; - - if ( card_count == 21 && ( g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 0 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 13 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 26 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 39 ) ) - return true; - - return false; -} - -stock GetBlackjackCardValue( card_index ) -{ - new - card_value = 0; - - switch ( card_index ) - { - case 0, 13, 26, 39: card_value = 1; - case 1, 14, 27, 40: card_value = 2; - case 2, 15, 28, 41: card_value = 3; - case 3, 16, 29, 42: card_value = 4; - case 4, 17, 30, 43: card_value = 5; - case 5, 18, 31, 44: card_value = 6; - case 6, 19, 32, 45: card_value = 7; - case 7, 20, 33, 46: card_value = 8; - case 8, 21, 34, 47: card_value = 9; - case 9, 22, 35, 48, 10, 23, 36, 49, 11, 24, 37, 50, 12, 25, 38, 51: card_value = 10; - } - return card_value; -} - -stock GetBlackjackPlayerIndex( tableid, playerid ) -{ - for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( playerid == g_blackjackSlotData[ tableid ] [ player_index ] ) { - return player_index; - } - return -1; -} - -stock GetBlackjackPlayers( tableid ) { - new - count = 0; - - for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) if ( g_blackjackSlotData[ tableid ] [ p ] != -1 ) - count ++; - - return count; -} +stock GetPlayerAccountID( playerid ) + return p_AccountID[ playerid ]; diff --git a/pawno/include/irresistible/features/fps.inc b/pawno/include/irresistible/features/fps.inc index 802bd40..3ad62af 100644 --- a/pawno/include/irresistible/features/fps.inc +++ b/pawno/include/irresistible/features/fps.inc @@ -5,6 +5,9 @@ * Purpose: fps counter in-game */ +/* ** Includes ** */ +#include < YSI\y_hooks > + /* ** Defines ** */ #define GetPlayerFPS(%1) p_FPS[%1] @@ -55,7 +58,8 @@ stock formatFPSCounter( playerid ) { TextDrawSetString( p_FPSCounterTD[ playerid ], szFPS ); } -stock InitializeFpsTextdraw( ) +/* ** Hooks ** */ +hook InitializeTextDraws( ) { for(new playerid; playerid != MAX_PLAYERS; playerid ++) { diff --git a/pawno/include/irresistible/features/visage/apartments.inc b/pawno/include/irresistible/features/visage/apartments.inc new file mode 100644 index 0000000..fe6d4fc --- /dev/null +++ b/pawno/include/irresistible/features/visage/apartments.inc @@ -0,0 +1,270 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: apartments.inc + * Purpose: apartment system for visage + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Definitions ** */ +#define MAX_VISAGE_APARTMENTS 13 +#define MAX_PASSCODE 4 + +// dialogs +#define DIALOG_VISAGE_APTS 17317 +#define DIALOG_VISAGE_APT_PW 17318 +#define DIALOG_VISAGE_APT_CONFIG 17319 +#define DIALOG_VISAGE_APT_TRANSFER 17320 +#define DIALOG_VISAGE_APT_TITLE 17321 +#define DIALOG_VISAGE_APT_PASSCODE 17322 + +/* ** Constants ** */ +static const + Float: VISAGE_APARTMENT_ENTRANCE[ 3 ] = { 0.0, 0.0, 0.0 }, + Float: VISAGE_APARTMENT_EXIT[ 3 ] = { 0.0, 0.0, 0.0 } +; + +/* ** Variables ** */ +enum E_APARTMENT_DATA +{ + E_OWNER_ID, E_TITLE[ 30 ], E_PASSCODE[ MAX_PASSCODE ], + bool: E_GAMBLING, E_EXIT_CP, E_OWNER_NAME[ MAX_PLAYER_NAME ], + + E_WORLD, E_INTERIOR +}; + +new + g_VisageApartmentData [ MAX_VISAGE_APARTMENTS ] [ E_APARTMENT_DATA ], + Iterator: visageapartments < MAX_VISAGE_APARTMENTS >, + p_VisageApartmentSpawn [ MAX_PLAYERS ], + g_entranceCheckpoint = -1 +; + +/* ** Functions ** */ +thread OnVisageApartmentLoad( ) +{ + new + i, rows, fields; + + cache_get_data( rows, fields ); + if ( rows ) + { + for ( i = 0; i < rows; i ++ ) + { + new + handle = Iter_Free( visageapartments ); + + if ( handle != ITER_NONE ) + { + // set variables + g_VisageApartmentData[ handle ] [ E_OWNER_ID ] = cache_get_field_content_int( i, "OWNER_ID", dbHandle ); + g_VisageApartmentData[ handle ] [ E_INTERIOR ] = cache_get_field_content_int( i, "INTERIOR", dbHandle ); + g_VisageApartmentData[ handle ] [ E_WORLD ] = cache_get_field_content_int( i, "WORLD", dbHandle ); + cache_get_field_content( i, "TITLE", g_VisageApartmentData[ handle ] [ E_TITLE ], dbHandle, 30 ); + cache_get_field_content( i, "OWNER", g_VisageApartmentData[ handle ] [ E_OWNER_NAME ], dbHandle, MAX_PLAYER_NAME ); + cache_get_field_content( i, "PASSCODE", g_VisageApartmentData[ handle ] [ E_PASSCODE ], dbHandle, 4 ); + + // appearance + CreateDynamic3DTextLabel( "[EXIT]", COLOR_GOLD, VISAGE_APARTMENT_EXIT[ 0 ], VISAGE_APARTMENT_EXIT[ 1 ], VISAGE_APARTMENT_EXIT[ 2 ], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, g_VisageApartmentData[ handle ] [ E_INTERIOR ], g_VisageApartmentData[ handle ] [ E_WORLD ] ); + g_VisageApartmentData[ handle ] [ E_EXIT_CP ] = CreateDynamicCP( VISAGE_APARTMENT_EXIT[ 0 ], VISAGE_APARTMENT_EXIT[ 1 ], VISAGE_APARTMENT_EXIT[ 2 ], 1.0, g_VisageApartmentData[ handle ] [ E_INTERIOR ], g_VisageApartmentData[ handle ] [ E_WORLD ], -1, 50.0 ); + + // add to array + Iter_Add( visageapartments, handle ); + } + else print( "[VISAGE APARTMENT ERROR] Visage apartment limit has been breached." ); + } + printf( "[VISAGE APARTMENTS]: %d apartments have been loaded.", i ); + } +} + +/* ** Hooks ** */ +hook OnGameModeInit( ) +{ + // query + mysql_function_query( dbHandle, "SELECT u.`NAME` as `OWNER`, a.* FROM `VISAGE_APARTMENTS` a LEFT JOIN `USERS` u ON a.`OWNER_ID`=u.`ID`", true, "OnVisageApartmentLoad", "" ); + + // create checkpoints + CreateDynamic3DTextLabel( "[PRIVATE APARTMENTS]", COLOR_GOLD, VISAGE_APARTMENT_ENTRANCE[ 0 ], VISAGE_APARTMENT_ENTRANCE[ 1 ], VISAGE_APARTMENT_ENTRANCE[ 2 ], 20.0 ); + g_entranceCheckpoint = CreateDynamicCP( VISAGE_APARTMENT_ENTRANCE[ 0 ], VISAGE_APARTMENT_ENTRANCE[ 1 ], VISAGE_APARTMENT_ENTRANCE[ 2 ], 2.0, 0, -1, -1, 100.0 ); + return 1; +} + +hook OnPlayerEnterDynamicCP( playerid, checkpointid ) +{ + if ( checkpointid == g_entranceCheckpoint ) { + return ShowPlayerVisageApartments( playerid ), 1; + } + return 1; +} + +hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) +{ + if ( dialogid == DIALOG_VISAGE_APTS && response ) + { + new + x = -1; + + foreach ( new handle : visageapartments ) + { + if ( x ++ == listitem ) + { + new + account_id = GetPlayerAccountID( playerid ); + + if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != account_id && ! isnull( g_VisageApartmentData[ handle ] [ E_PASSCODE ] ) ) { + SetPVarInt( playerid, "visage_accessing_apt", handle ); + return ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_PW, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartments -"COL_RED" Password Restricted", ""COL_WHITE"This apartment requires a passcode to access. Please enter it below.", "Access", "Back" ); + } else { + SetPlayerToVisageApartment( playerid, handle ); + } + } + } + return 1; + } + else if ( dialogid == DIALOG_VISAGE_APT_PW ) + { + if ( ! response ) + return ShowPlayerVisageApartments( playerid ); + + new + handle = GetPVarInt( playerid, "visage_accessing_apt" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) + return SendError( playerid, "You have attempted to access an invalid apartment." ); + + new + passcode[ MAX_PASSCODE ]; + + if ( sscanf( inputtext, "s["#MAX_PASSCODE"]", passcode ) ) return ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_PW, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartments -"COL_RED" Password Restricted", ""COL_WHITE"This apartment requires a passcode to access. Please enter it below.", "Access", "Back" ); + else if ( ! strmatch( passcode, g_VisageApartmentData[ handle ] [ E_PASSCODE ] ) ) return ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_PW, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartments -"COL_RED" Password Restricted", ""COL_WHITE"This apartment requires a passcode to access. Please enter it below.\n\n"COL_RED"Incorrect passcode! Access denied.", "Access", "Back" ); + else SetPlayerToVisageApartment( playerid, handle ); + } + else if ( dialogid == DIALOG_VISAGE_APT_CONFIG && response ) + { + new + handle = GetPVarInt( playerid, "in_visage_apartment" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) + return SendError( playerid, "You have attempted to modify an invalid apartment." ); + + if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != GetPlayerAccountID( playerid ) ) + return SendError( playerid, "You are not the owner of this apartment." ); + + switch ( listitem ) + { + case 0: ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_TRANSFER, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartment", ""COL_WHITE"Enter the player name or id of the user to transfer apartment ownership to:", "Transfer", "Back" ); + case 1: ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_TITLE, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartment", ""COL_WHITE"Enter your new apartment title below:", "Edit", "Back" ); + case 2: ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_PASSCODE, DIALOG_STYLE_INPUT, ""COL_GOLD"Visage Apartment", ""COL_WHITE"Enter your new apartment passcode below:", "Edit", "Back" ); + } + return 1; + } + else if ( dialogid == DIALOG_VISAGE_APT_TRANSFER ) + { + if ( ! response ) + return cmd_visage( playerid, "config" ); + + new + handle = GetPVarInt( playerid, "in_visage_apartment" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) + return SendError( playerid, "You have attempted to modify an invalid apartment." ); + + if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != GetPlayerAccountID( playerid ) ) + return SendError( playerid, "You are not the owner of this apartment." ); + + // todo + } + else if ( dialogid == DIALOG_VISAGE_APT_TITLE ) + { + if ( ! response ) + return cmd_visage( playerid, "config" ); + + new + handle = GetPVarInt( playerid, "in_visage_apartment" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) + return SendError( playerid, "You have attempted to modify an invalid apartment." ); + + if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != GetPlayerAccountID( playerid ) ) + return SendError( playerid, "You are not the owner of this apartment." ); + + // todo + } + else if ( dialogid == DIALOG_VISAGE_APT_PASSCODE ) + { + if ( ! response ) + return cmd_visage( playerid, "config" ); + + new + handle = GetPVarInt( playerid, "in_visage_apartment" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) + return SendError( playerid, "You have attempted to modify an invalid apartment." ); + + if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != GetPlayerAccountID( playerid ) ) + return SendError( playerid, "You are not the owner of this apartment." ); + + // todo + } + return 1; +} + +/* ** Functions ** */ +stock ShowPlayerVisageApartments( playerid ) +{ + szLargeString = ""COL_WHITE"Owner\n"COL_WHITE"Title\n"; + foreach ( new handle : visageapartments ) { + format( szLargeString, sizeof ( szLargeString ), "%s"COL_GREY"%s\t%s\n", szLargeString, g_VisageApartmentData[ handle ] [ E_OWNER_NAME ], g_VisageApartmentData[ handle ] [ E_TITLE ] ); + } + ShowPlayerDialog( playerid, DIALOG_VISAGE_APTS, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GOLD"Visage Apartment", szLargeString, "Access", "Close" ); + return 1; +} + +stock SetPlayerToVisageApartment( playerid, handle ) +{ + // set player position + SetPVarInt( playerid, "in_visage_apartment", handle ); + SetPlayerPos( playerid, VISAGE_APARTMENT_EXIT[ 0 ], VISAGE_APARTMENT_EXIT[ 1 ], VISAGE_APARTMENT_EXIT[ 2 ] ); + SetPlayerVirtualWorld( playerid, g_VisageApartmentData[ handle ] [ E_WORLD ] ); + SetPlayerInterior( playerid, g_VisageApartmentData[ handle ] [ E_INTERIOR ] ); + + // greeting + SendServerMessage( playerid, "You are now inside of the "COL_GREY"%s"COL_WHITE"'s apartment.", g_VisageApartmentData[ handle ] [ E_TITLE ] ); +} + +/* ** Commands ** */ +CMD:visage( playerid, params[ ] ) +{ + if ( strmatch( params, "config" ) ) + { + new + handle = GetPVarInt( playerid, "in_visage_apartment" ); + + if ( ! Iter_Contains( visageapartments, handle ) ) return SendError( playerid, "You are not inside of any apartment" ); + else if ( g_VisageApartmentData[ handle ] [ E_OWNER_ID ] != GetPlayerAccountID( playerid ) ) return SendError( playerid, "You do not own this apartment." ); + else { + ShowPlayerDialog( playerid, DIALOG_VISAGE_APT_CONFIG, DIALOG_STYLE_LIST, ""COL_GOLD"Visage Apartment", "Transfer Ownership\nChange Apartment Title\nChange Apartment Passcode", "Select", "Close" ); + } + return 1; + } + else if ( strmatch( params, "spawn" ) ) + { + // todo + } + return 1; +} + +/* ** Migrations ** */ +/* + CREATE TABLE IF NOT EXISTS `VISAGE_APARTMENTS` ( + `ID` int(11) primary key auto_increment, + `OWNER_ID` int(11), + `TITLE` varchar(30) DEFAULT "Apartment", + `PASSCODE` varchar(4) DEFAULT NULL, + `INTERIOR` int(11) DEFAULT 1, + `WORLD` int(11) DEFAULT 1, + `GAMBLING` tinyint(1) DEFAULT 0 + ) +*/ diff --git a/pawno/include/irresistible/features/visage/blackjack.inc b/pawno/include/irresistible/features/visage/blackjack.inc new file mode 100644 index 0000000..333f695 --- /dev/null +++ b/pawno/include/irresistible/features/visage/blackjack.inc @@ -0,0 +1,769 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: blackjack.inc + * Purpose: a sa-mp blackjack minigame implementation + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Definitions ** */ +#define MAX_BLACKJACK_TABLES ( 32 ) +#define MAX_BLACKJACK_CARDS ( 5 ) +#define MAX_BLACKJACK_PLAYERS ( 3 ) +#define BLACKJACK_DEALER_WAIT ( 500 ) +#define BLACKJACK_PLAYER_WAIT ( 10 ) + +#define BLACKJACK_STATE_NONE ( 0 ) +#define BLACKJACK_STATE_TURN ( 1 ) +#define BLACKJACK_STATE_BUST ( 2 ) +#define BLACKJACK_STATE_STAND ( 3 ) +#define BLACKJACK_STATE_WIN ( 4 ) + +/* ** Constants ** */ +stock const g_cardTextdrawData[ 52 ] [ ] = { + "LD_CARD:cd1c", // A Clubs - 0 + "LD_CARD:cd2c", // 2 Clubs - 1 + "LD_CARD:cd3c", // 3 Clubs - 2 + "LD_CARD:cd4c", // 4 Clubs - 3 + "LD_CARD:cd5c", // 5 Clubs - 4 + "LD_CARD:cd6c", // 6 Clubs - 5 + "LD_CARD:cd7c", // 7 Clubs - 6 + "LD_CARD:cd8c", // 8 Clubs - 7 + "LD_CARD:cd9c", // 9 Clubs - 8 + "LD_CARD:cd10c", // 10 Clubs - 9 + "LD_CARD:cd11c", // J Clubs - 10 + "LD_CARD:cd12c", // Q Clubs - 11 + "LD_CARD:cd13c", // K Clubs - 12 + "LD_CARD:cd1d", // A Diamonds - 13 + "LD_CARD:cd2d", // 2 Diamonds - 14 + "LD_CARD:cd3d", // 3 Diamonds - 15 + "LD_CARD:cd4d", // 4 Diamonds - 16 + "LD_CARD:cd5d", // 5 Diamonds - 17 + "LD_CARD:cd6d", // 6 Diamonds - 18 + "LD_CARD:cd7d", // 7 Diamonds - 19 + "LD_CARD:cd8d", // 8 Diamonds - 20 + "LD_CARD:cd9d", // 9 Diamonds - 21 + "LD_CARD:cd10d", // 10 Diamonds - 22 + "LD_CARD:cd11d", // J Diamonds - 23 + "LD_CARD:cd12d", // Q Diamonds - 24 + "LD_CARD:cd13d", // K Diamonds - 25 + "LD_CARD:cd1h", // A Heats - 26 + "LD_CARD:cd2h", // 2 Heats - 27 + "LD_CARD:cd3h", // 3 Heats - 28 + "LD_CARD:cd4h", // 4 Heats - 29 + "LD_CARD:cd5h", // 5 Heats - 30 + "LD_CARD:cd6h", // 6 Heats - 31 + "LD_CARD:cd7h", // 7 Heats - 32 + "LD_CARD:cd8h", // 8 Heats - 33 + "LD_CARD:cd9h", // 9 Heats - 34 + "LD_CARD:cd10h", // 10 Heats - 35 + "LD_CARD:cd11h", // J Heats - 36 + "LD_CARD:cd12h", // Q Heats - 37 + "LD_CARD:cd13h", // K Heats - 38 + "LD_CARD:cd1s", // A Spades - 39 + "LD_CARD:cd2s", // 2 Spades - 40 + "LD_CARD:cd3s", // 3 Spades - 41 + "LD_CARD:cd4s", // 4 Spades - 42 + "LD_CARD:cd5s", // 5 Spades - 43 + "LD_CARD:cd6s", // 6 Spades - 44 + "LD_CARD:cd7s", // 7 Spades - 45 + "LD_CARD:cd8s", // 8 Spades - 46 + "LD_CARD:cd9s", // 9 Spades - 47 + "LD_CARD:cd10s", // 10 Spades - 48 + "LD_CARD:cd11s", // J Spades - 49 + "LD_CARD:cd12s", // Q Spades - 50 + "LD_CARD:cd13s" // K Spades - 51 +}; + +/* ** Variables ** */ +enum E_BLACKJACK_DATA +{ + bool: E_GAME_STARTED, E_CARDS_DRAWN, E_GAME_TIMER, + + E_PAYOUT, + + E_OBJECT, E_ACTOR, + Float: E_X, Float: E_Y, Float: E_Z, + Float: E_ROTATION +}; + +new + g_blackjackData [ MAX_BLACKJACK_TABLES ] [ E_BLACKJACK_DATA ], + Text: g_blackjackTurnTD [ MAX_BLACKJACK_TABLES ] = { Text: INVALID_TEXT_DRAW, ... }, + Text: g_blackjackPlayerCards [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ] [ MAX_BLACKJACK_PLAYERS ], + Text: g_blackjackDealerCards [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ], + g_blackjackDealerCardIndex [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ], + g_blackjackPlayerCardIndex [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_CARDS ] [ MAX_BLACKJACK_PLAYERS ], + g_blackjackPlayerState [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_PLAYERS ], + g_blackjackSlotData [ MAX_BLACKJACK_TABLES ] [ MAX_BLACKJACK_PLAYERS ], + p_blackjackTable [ MAX_PLAYERS ] = { -1, ... }, + Iterator: blackjacktables < MAX_BLACKJACK_TABLES > +; + +/* ** Hooks ** */ +hook OnGameModeInit( ) +{ + // Reset Textdraw Variables + for ( new i = 0; i < MAX_BLACKJACK_TABLES; i ++ ) { + for ( new x = 0; x < MAX_BLACKJACK_CARDS; x ++ ) { + g_blackjackDealerCards[ i ] [ x ] = Text: INVALID_TEXT_DRAW; + for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { + g_blackjackPlayerCards[ i ] [ x ] [ p ] = Text: INVALID_TEXT_DRAW; + g_blackjackSlotData[ i ] [ p ] = -1; + } + } + } + + // Create blackjack tables + CreateBlackjackTable( 25000, 2230.37500, 1602.75000, 1006.15631, 0.00000, 82 ); + CreateBlackjackTable( 25000, 2232.18750, 1604.43750, 1006.15631, 90.0000, 82 ); + CreateBlackjackTable( 25000, 2228.49219, 1604.45313, 1006.15631, -90.000, 82 ); + CreateBlackjackTable( 25000, 2230.37500, 1606.27344, 1006.15631, 180.000, 82 ); + CreateBlackjackTable( 100000, 2241.31250, 1602.75000, 1006.15631, 0.00000, 82 ); + CreateBlackjackTable( 100000, 2243.12500, 1604.43750, 1006.15631, 90.0000, 82 ); + CreateBlackjackTable( 100000, 2239.42969, 1604.45313, 1006.15631, -90.000, 82 ); + CreateBlackjackTable( 100000, 2241.31250, 1606.27344, 1006.15631, 180.000, 82 ); + CreateBlackjackTable( 1000000, 1962.34375, 1015.66412, 992.46881, 90.00000, 23 ); + CreateBlackjackTable( 1000000, 1960.36719, 1015.66412, 992.46881, -90.0000, 23 ); + CreateBlackjackTable( 1000000, 1960.74829, 1020.31189, 992.46881, -90.0000, 23 ); + CreateBlackjackTable( 10000000, 1962.34375, 1020.17969, 992.46881, 90.00000, 23 ); + return 1; +} + +hook OnPlayerDisconnect( playerid, reason ) +{ + RemovePlayerFromBlackjack( playerid ); + return 1; +} + +#if defined AC_INCLUDED +hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart ) +#else +hook OnPlayerDeath( playerid, killerid, reason ) +#endif +{ + RemovePlayerFromBlackjack( playerid ); + return 1; +} + +hook OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) +{ + static + Float: X, Float: Y, Float: Z; + + if ( IsPlayerInCasino( playerid ) ) + { + new + blackjack_table = p_blackjackTable[ playerid ]; + + // Blackjack + if ( blackjack_table != -1 ) + { + new + player_index = GetBlackjackPlayerIndex( blackjack_table, playerid ); + + if ( player_index == -1 ) + return SendError( playerid, "You don't seem to be playing any blackjack table." ); + + if ( PRESSED( KEY_SPRINT ) ) { + + if ( ! g_blackjackData[ blackjack_table ] [ E_CARDS_DRAWN ] && g_blackjackData[ blackjack_table ] [ E_GAME_TIMER ] == -1 ) + return ( g_blackjackData[ blackjack_table ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", blackjack_table ) ), 1; + + if ( g_blackjackPlayerState[ blackjack_table ] [ player_index ] == BLACKJACK_STATE_TURN ) { + g_blackjackPlayerState[ blackjack_table ] [ player_index ] = BLACKJACK_STATE_STAND; + SendClientMessageToBlackjack( blackjack_table, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has decided to stand.", ReturnPlayerName( playerid ), playerid ); + return 1; + } + return 1; + } + + if ( PRESSED( KEY_CTRL_BACK ) ) + { + if ( g_blackjackPlayerState[ blackjack_table ] [ player_index ] != BLACKJACK_STATE_TURN ) + return SendError( playerid, "It's not your turn to hit. Please wait!" ); + + DrawPlayerBlackjackCard( blackjack_table, player_index ); + CheckForBlackjack( blackjack_table ); + return 1; + } + } + + if ( PRESSED( KEY_SECONDARY_ATTACK ) ) + { + if ( p_blackjackTable[ playerid ] != -1 ) + return RemovePlayerFromBlackjack( playerid, .reset_cam = 1 ); + + foreach(new id : blackjacktables) + { + if ( IsPlayerInRangeOfPoint( playerid, 3.0, g_blackjackData[ id ] [ E_X ], g_blackjackData[ id ] [ E_Y ], g_blackjackData[ id ] [ E_Z ] ) ) { + + new + player_index; + + for ( ; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) + if ( g_blackjackSlotData[ id ] [ player_index ] == -1 ) + break; + + if ( player_index >= MAX_BLACKJACK_PLAYERS || g_blackjackSlotData[ id ] [ player_index ] != -1 ) + return SendError( playerid, "There are no more vacant slots for this table." ); + + if ( GetPlayerCash( playerid ) < g_blackjackData[ id ] [ E_PAYOUT ] ) + return SendError( playerid, "You don't have any money to wager." ); + + new + Float: lookatX, Float: lookatY, Float: lookatZ, + Float: tmpX, Float: tmpY, Float: tmpZ + ; + + GetPlayerCameraPos( playerid, X, Y, Z ); + GetPlayerCameraFrontVector( playerid, lookatX, lookatY, lookatZ ); + + tmpX = g_blackjackData[ id ] [ E_X ] - 1.3 * floatcos( g_blackjackData[ id ] [ E_ROTATION ] + 90.0, degrees ); + tmpY = g_blackjackData[ id ] [ E_Y ] - 1.3 * floatsin( g_blackjackData[ id ] [ E_ROTATION ] + 90.0, degrees ); + tmpZ = g_blackjackData[ id ] [ E_Z ] + 1.7; + + InterpolateCameraPos( playerid, X, Y, Z, tmpX, tmpY, tmpZ, 1000, CAMERA_MOVE ); + + X += floatmul( lookatX, 20.0 ); + Y += floatmul( lookatY, 20.0 ); + Z += floatmul( lookatZ, 20.0 ); + + InterpolateCameraLookAt( playerid, X, Y, Z, g_blackjackData[ id ] [ E_X ], g_blackjackData[ id ] [ E_Y ], g_blackjackData[ id ] [ E_Z ] - 1.0, 1000, CAMERA_MOVE ); + + p_blackjackTable[ playerid ] = id; + g_blackjackSlotData[ id ] [ player_index ] = playerid; + + // reset player cards + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) + g_blackjackPlayerCardIndex[ id ] [ c ] [ player_index ] = -1; + + // show cards to players + for ( new player = 0; player < MAX_BLACKJACK_PLAYERS; player ++ ) + { + new + gamerid = g_blackjackSlotData[ id ] [ player ]; + + // deal only first two cards + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) + { + TextDrawShowForPlayer( gamerid, g_blackjackDealerCards[ id ] [ c ] ); + + // show two player cards only + if ( c >= 2 ) + continue; + + for ( new p = 0; p < GetBlackjackPlayers( id ); p ++ ) { + TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ id ] [ c ] [ p ] ); + } + } + } + + szBigString = "~y~~k~~PED_SPRINT~~w~ - Begin game/Stand~n~~y~~k~~GROUP_CONTROL_BWD~~w~ - Hit~n~~y~~k~~VEHICLE_ENTER_EXIT~~w~ - Exit"; + ShowPlayerHelpDialog( playerid, 0, szBigString ); + + SendServerMessage( playerid, "You have entered the %s hand blackjack table.", ConvertPrice( g_blackjackData[ id ] [ E_PAYOUT ] ) ); + ApplyAnimation( playerid, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0, 1 ); + return 1; + } + } + } + } + return 1; +} + +hook InitializeTextDraws( ) +{ + for ( new i = 0; i < MAX_BLACKJACK_TABLES; i ++ ) { + initializeBlackjackTextdraws( i ); + } +} + +/* ** Functions ** */ +stock CreateBlackjackTable( payout, Float: X, Float: Y, Float: Z, Float: Angle, world = 0 ) +{ + new + id = Iter_Free(blackjacktables); + + if ( id != ITER_NONE ) + { + g_blackjackData[ id ] [ E_X ] = X; + g_blackjackData[ id ] [ E_Y ] = Y; + g_blackjackData[ id ] [ E_Z ] = Z; + g_blackjackData[ id ] [ E_ROTATION ] = Angle; + + g_blackjackData[ id ] [ E_GAME_TIMER ] = -1; + g_blackjackData[ id ] [ E_PAYOUT ] = payout; + g_blackjackData[ id ] [ E_OBJECT ] = CreateDynamicObject( 2188, X, Y, Z, 0.00000, 0.00000, Angle ); + g_blackjackData[ id ] [ E_ACTOR ] = CreateActor( 171, X - 0.4 * floatcos( Angle - 90.0, degrees ), Y - 0.4 * floatsin( Angle - 90.0, degrees ), Z, Angle + 180.0 ); + CreateDynamic3DTextLabel( sprintf( "Press ENTER To Play\n"COL_WHITE"%s Minimum", ConvertPrice( payout ) ), COLOR_GREY, X, Y, Z + 0.25, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 ); + + SetActorInvulnerable( g_blackjackData[ id ] [ E_ACTOR ], true ); + SetActorVirtualWorld( g_blackjackData[ id ] [ E_ACTOR ], world ); + + ResetBlackjackTable( id ); + Iter_Add( blackjacktables, id ); + } + return 1; +} + +function DrawPlayerBlackjackCard( tableid, player_index ) +{ + new + randomCard = random( sizeof( g_blackjackDealerCards ) ); + + for ( new cardid = 0; cardid < MAX_BLACKJACK_CARDS; cardid ++ ) if ( g_blackjackPlayerCardIndex[ tableid ] [ cardid ] [ player_index ] == -1 ) { + TextDrawSetString( g_blackjackPlayerCards[ tableid ] [ cardid ] [ player_index ], g_cardTextdrawData[ randomCard ] ); + foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] == tableid ) { + TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ tableid ] [ cardid ] [ player_index ] ); + PlayerPlaySound( gamerid, 1145, 0.0, 0.0, 0.0 ); + } + g_blackjackPlayerCardIndex[ tableid ] [ cardid ] [ player_index ] = randomCard; + break; + } + return randomCard; +} + +function BeginBlackJackTurn( tableid ) +{ + new + cardid = g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] ++; + + if ( cardid >= MAX_BLACKJACK_CARDS ) { + ResetBlackjackTable( tableid ); + return; + } + + new + randomCard = random( sizeof( g_blackjackDealerCards ) ); + + // dealer cards + ApplyActorAnimation( g_blackjackData[ tableid ] [ E_ACTOR ], "CASINO", "dealone", 4.1, 0, 0, 0, 0, 0 ); + ApplyActorAnimation( g_blackjackData[ tableid ] [ E_ACTOR ], "CASINO", "dealone", 4.1, 0, 0, 0, 0, 0 ); + TextDrawSetString( g_blackjackDealerCards[ tableid ] [ cardid ], g_cardTextdrawData[ randomCard ] ); + g_blackjackDealerCardIndex[ tableid ] [ cardid ] = randomCard; + + // noise + foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] != -1 ) { + PlayerPlaySound( gamerid, 1145, 0.0, 0.0, 0.0 ); + } + + // deal player first card + if ( cardid == 0 ) + { + new + bet_amount = 0; + + for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 ) + { + new + gamerid = g_blackjackSlotData[ tableid ] [ player_index ]; + + if ( GetPlayerCash( gamerid ) < g_blackjackData[ tableid ] [ E_PAYOUT ] ) { + SendError( gamerid, "You don't have any money to wager." ); + RemovePlayerFromBlackjack( gamerid, .reset_cam = 1 ); + continue; + } + + bet_amount += g_blackjackData[ tableid ] [ E_PAYOUT ]; + GivePlayerCash( gamerid, -g_blackjackData[ tableid ] [ E_PAYOUT ] ); + DrawPlayerBlackjackCard( tableid, player_index ); + if ( cardid < 1 ) { // distribute first two cards to players + SetTimerEx( "DrawPlayerBlackjackCard", BLACKJACK_DEALER_WAIT, false, "dd", tableid, player_index ); + } + } + + UpdateServerVariable( "blackjack_bets", 0, GetGVarFloat( "blackjack_bets" ) + ( float( bet_amount ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT ); + + // begin turns + new + first_player = GetNextAvailableBlackjackPlayer( tableid ), + first_player_index = GetBlackjackPlayerIndex( tableid, first_player ) + ; + + if ( first_player_index != -1 ) + g_blackjackPlayerState[ tableid ] [ first_player_index ] = BLACKJACK_STATE_TURN; + + g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", BLACKJACK_DEALER_WAIT + 500, false, "ddd", tableid, first_player, BLACKJACK_PLAYER_WAIT ); + } + + // check for blackjack on players & bot + new + dealer_score = CheckForBlackjack( tableid ); + + // pull more cards + if ( cardid >= 1 && dealer_score < 17 ) + g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", tableid ); + + if ( dealer_score >= 17 ) { + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" Table will reset in 5 seconds as all hands have been dealt." ); + SetTimerEx( "ResetBlackjackTable", 5000, false, "d", tableid ); + } +} + +stock GetNextAvailableBlackjackPlayer( tableid, exclude = INVALID_PLAYER_ID ) +{ + new + playerid = INVALID_PLAYER_ID; + + for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 && g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_NONE && exclude != g_blackjackSlotData[ tableid ] [ player_index ] && g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] != -1 ) { + playerid = g_blackjackSlotData[ tableid ] [ player_index ]; + break; + } + return playerid; +} + +function BlackjackPlayerTurn( tableid, playerid, seconds_left ) +{ + new + player_index = GetBlackjackPlayerIndex( tableid, playerid ); + + if ( IsPlayerConnected( playerid ) && player_index != -1 && seconds_left >= 0 && g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_TURN ) + { + foreach (new gamerid : Player) if ( p_blackjackTable[ gamerid ] == tableid ) { + TextDrawSetString( g_blackjackTurnTD[ tableid ], sprintf( "%s has %d seconds left", ReturnPlayerName( playerid ), seconds_left ) ); + TextDrawShowForPlayer( gamerid, g_blackjackTurnTD[ tableid ] ); + } + g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", 960, false, "ddd", tableid, playerid, seconds_left - 1 ); + } + else + { + new + next_player = GetNextAvailableBlackjackPlayer( tableid, playerid ); + + if ( next_player == INVALID_PLAYER_ID ) + { + TextDrawHideForAll( g_blackjackTurnTD[ tableid ] ); + g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BeginBlackJackTurn", BLACKJACK_DEALER_WAIT, false, "d", tableid ); + } + else + { + new + next_player_index = GetBlackjackPlayerIndex( tableid, next_player ); + + // otherwise winning hands will get reissued prizes + if ( player_index != -1 && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_WIN && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_BUST ) + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_STAND; + + g_blackjackPlayerState[ tableid ] [ next_player_index ] = BLACKJACK_STATE_TURN; + g_blackjackData[ tableid ] [ E_GAME_TIMER ] = SetTimerEx( "BlackjackPlayerTurn", 960, false, "ddd", tableid, next_player, BLACKJACK_PLAYER_WAIT ); + } + } +} + +function ResetBlackjackTable( tableid ) +{ + if ( tableid == -1 ) + return; + + // variables + KillTimer( g_blackjackData[ tableid ] [ E_GAME_TIMER ] ), g_blackjackData[ tableid ] [ E_GAME_TIMER ] = -1; + g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] = 0; + + // card data + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { + g_blackjackDealerCardIndex[ tableid ] [ c ] = -1; + TextDrawSetString( g_blackjackDealerCards[ tableid ] [ c ], "ld_card:cdback" ); + + for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { + g_blackjackPlayerState[ tableid ] [ p ] = BLACKJACK_STATE_NONE; + g_blackjackPlayerCardIndex[ tableid ] [ c ] [ p ] = -1; + TextDrawSetString( g_blackjackPlayerCards[ tableid ] [ c ] [ p ], "ld_card:cdback" ); + if ( c > 1 ) TextDrawHideForAll( g_blackjackPlayerCards[ tableid ] [ c ] [ p ] ); + } + } + + // reshow textdraws to players + for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 ) + { + new + gamerid = g_blackjackSlotData[ tableid ] [ player_index ]; + + // deal only first two cards + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) + { + TextDrawShowForPlayer( gamerid, g_blackjackDealerCards[ tableid ] [ c ] ); + + // show two player cards only + if ( c >= 2 ) + continue; + + for ( new p = 0; p < GetBlackjackPlayers( tableid ); p ++ ) { + TextDrawShowForPlayer( gamerid, g_blackjackPlayerCards[ tableid ] [ c ] [ p ] ); + } + } + } +} + +stock CheckForBlackjack( tableid ) +{ + new + dealer_score = 0; + + //if ( g_blackjackData[ tableid ] [ E_CARDS_DRAWN ] <= 1 ) + // return dealer_score; + + // calculate dealer score + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) if ( g_blackjackDealerCardIndex[ tableid ] [ c ] != -1 ) + { + new + card_value = GetBlackjackCardValue( g_blackjackDealerCardIndex[ tableid ] [ c ] ); + + // printf("%d Card = %d", c, card_value); + + if ( card_value == 1 ) { + if ( dealer_score >= 11 ) dealer_score += 1; + else dealer_score += 11; + } + else dealer_score += card_value; + } + //printf("The Dealer score is %d", dealer_score ); + + // calculate player score + for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( g_blackjackSlotData[ tableid ] [ player_index ] != -1 && g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] != -1 ) + { + new + playerid = g_blackjackSlotData[ tableid ] [ player_index ], player_score = 0; + + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) if ( g_blackjackPlayerCardIndex[ tableid ] [ c ] [ player_index ] != -1 ) + { + new + card_value = GetBlackjackCardValue( g_blackjackPlayerCardIndex[ tableid ] [ c ] [ player_index ] ); + + if ( card_value == 1 ) { + if ( player_score >= 11 ) player_score += 1; + else player_score += 11; + } + else player_score += card_value; + } + + if ( g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_BUST && g_blackjackPlayerState[ tableid ] [ player_index ] != BLACKJACK_STATE_WIN ) + { + new + payout = floatround( float( g_blackjackData[ tableid ] [ E_PAYOUT ] ) * 2.0 ); + + // check for win + if ( dealer_score == player_score && dealer_score >= 17 ) { + payout = g_blackjackData[ tableid ] [ E_PAYOUT ]; + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has been returned %s due to a push.", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); + GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); + GivePlayerCash( playerid, payout ); + } + else if ( player_score == 21 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; + if ( IsPlayerHandBlackjack( tableid, player_index, player_score ) ) { + payout = floatround( float( g_blackjackData[ tableid ] [ E_PAYOUT ] ) * 2.5 ); + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" Blackjack! %s(%d) has won %s!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); + } else { + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a card count of 21!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); + } + GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); + GivePlayerCash( playerid, payout ); + } + else if ( dealer_score == 21 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a dealer %s.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ), IsDealerHandBlackjack( tableid, dealer_score ) ? ( "blackjack" ) : ( "21" ) ); + GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); + } + else if ( player_score > 21 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); + GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); + } + else if ( dealer_score > 21 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a dealer bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); + GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); + GivePlayerCash( playerid, payout ); + } + else if ( player_score < dealer_score && dealer_score >= 17 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); + GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 ); + } + else if ( player_score > dealer_score && dealer_score >= 17 ) { + g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_WIN; + SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has won %s due to a dealer bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) ); + GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( payout ) ), 4000, 3 ); + GivePlayerCash( playerid, payout ); + } + + // alert world + if ( g_blackjackPlayerState[ tableid ] [ player_index ] == BLACKJACK_STATE_WIN && payout > g_blackjackData[ tableid ] [ E_PAYOUT ] && payout >= 10000 ) { + UpdateServerVariable( "blackjack_wins", 0, GetGVarFloat( "blackjack_wins" ) + ( float( payout ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT ); + SendGlobalMessage( -1, ""COL_GREY"[CASINO]{FFFFFF} %s(%d) has won "COL_GOLD"%s"COL_WHITE" from blackjack!", ReturnPlayerName( playerid ), playerid, ConvertPrice( payout ) ); + } + } + } + return dealer_score; +} + +stock RemovePlayerFromBlackjack( playerid, reset_cam = 0 ) +{ + new + blackjack_table = p_blackjackTable[ playerid ]; + + if ( blackjack_table == -1 ) + return 0; + + // hide textdraws & reset + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { + TextDrawHideForPlayer( playerid, g_blackjackDealerCards[ blackjack_table ] [ c ] ); + + for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) { + TextDrawHideForPlayer( playerid, g_blackjackPlayerCards[ blackjack_table ] [ c ] [ p ] ); + } + } + TextDrawHideForPlayer( playerid, g_blackjackTurnTD[ blackjack_table ] ); + + // check if it is a player + new + player_index = GetBlackjackPlayerIndex( blackjack_table, playerid ); + + if ( player_index != -1 ) + { + foreach (new i : Player) if ( p_blackjackTable[ i ] == blackjack_table ) { + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) { + g_blackjackPlayerCardIndex[ blackjack_table ] [ c ] [ player_index ] = -1; + g_blackjackPlayerState[ blackjack_table ] [ player_index ] = BLACKJACK_STATE_NONE; + TextDrawSetString( g_blackjackPlayerCards[ blackjack_table ] [ c ] [ player_index ], "ld_card:cdback" ); + TextDrawHideForPlayer( i, g_blackjackPlayerCards[ blackjack_table ] [ c ] [ player_index ] ); + } + } + g_blackjackSlotData[ blackjack_table ] [ player_index ] = -1; + } + + // reset camera? + if ( reset_cam ) { + TogglePlayerControllable( playerid, 1 ); + ClearAnimations( playerid ); + SetCameraBehindPlayer( playerid ); + HidePlayerHelpDialog( playerid ); + } + + // reset variables + p_blackjackTable[ playerid ] = -1; + + // reset table just incase empty + if ( GetBlackjackPlayers( blackjack_table ) <= 0 ) + ResetBlackjackTable( blackjack_table ); + + return 1; +} + +stock SendClientMessageToBlackjack( tableid, colour, format[ ], va_args<> ) +{ + static + out[ 144 ]; + + va_format( out, sizeof( out ), format, va_start<3> ); + + for(new i = 0; i < 10; i++) if ( p_blackjackTable[ i ] == tableid ) { + SendClientMessage( i, colour, out ); + } + return 1; +} + +stock initializeBlackjackTextdraws( id ) +{ + g_blackjackTurnTD[ id ] = TextDrawCreate(330.000000, 204.000000, "Lorenc has 5 seconds"); + TextDrawAlignment(g_blackjackTurnTD[ id ], 2); + TextDrawBackgroundColor(g_blackjackTurnTD[ id ], 255); + TextDrawFont(g_blackjackTurnTD[ id ], 1); + TextDrawLetterSize(g_blackjackTurnTD[ id ], 0.260000, 1.200000); + TextDrawColor(g_blackjackTurnTD[ id ], 16711935); + TextDrawSetOutline(g_blackjackTurnTD[ id ], 1); + TextDrawSetProportional(g_blackjackTurnTD[ id ], 1); + + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) + { + g_blackjackDealerCards[ id ] [ c ] = TextDrawCreate(243.000000 + 35.0 * float( c ), 138.000000, "ld_card:cdback"); + TextDrawBackgroundColor( g_blackjackDealerCards[ id ] [ c ], 255); + TextDrawFont( g_blackjackDealerCards[ id ] [ c ], 4); + TextDrawLetterSize( g_blackjackDealerCards[ id ] [ c ], 0.500000, 1.000000); + TextDrawUseBox( g_blackjackDealerCards[ id ] [ c ], 1); + TextDrawBoxColor( g_blackjackDealerCards[ id ] [ c ], 255); + TextDrawTextSize( g_blackjackDealerCards[ id ] [ c ], 30.000000, 51.000000); + } + + new + Float: g_blackjackPlayerPosition[ MAX_BLACKJACK_PLAYERS ] [ 2 ] = { { 295.0, 334.0 }, { 205.0, 319.0 }, { 390.0, 329.0 } }; + + for ( new c = 0; c < MAX_BLACKJACK_CARDS; c ++ ) + { + for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) + { + g_blackjackPlayerCards[ id ] [ c ] [ p ] = TextDrawCreate( g_blackjackPlayerPosition[ p ] [ 0 ] + 10.0 * float( c ), g_blackjackPlayerPosition[ p ] [ 1 ] - 16.0 * float( c ), "ld_card:cdback" ); + TextDrawBackgroundColor( g_blackjackPlayerCards[ id ] [ c ] [ p ], 255 ); + TextDrawFont( g_blackjackPlayerCards[ id ] [ c ] [ p ], 4 ); + TextDrawLetterSize( g_blackjackPlayerCards[ id ] [ c ] [ p ], 0.5, 0.7 ); + TextDrawUseBox( g_blackjackPlayerCards[ id ] [ c ] [ p ], 1 ); + TextDrawBoxColor( g_blackjackPlayerCards[ id ] [ c ] [ p ], 255 ); + TextDrawTextSize( g_blackjackPlayerCards[ id ] [ c ] [ p ], 22.000000, 37.000000 ); + } + } +} + +stock IsPlayerHandBlackjack( tableid, player_index, card_count ) +{ + if ( card_count == 21 && ( g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 0 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 13 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 26 || g_blackjackPlayerCardIndex[ tableid ] [ 0 ] [ player_index ] == 39 ) ) + return true; + + if ( card_count == 21 && ( g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 0 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 13 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 26 || g_blackjackPlayerCardIndex[ tableid ] [ 1 ] [ player_index ] == 39 ) ) + return true; + + return false; +} + +stock IsDealerHandBlackjack( tableid, card_count ) +{ + if ( card_count == 21 && ( g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 0 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 13 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 26 || g_blackjackDealerCardIndex[ tableid ] [ 0 ] == 39 ) ) + return true; + + if ( card_count == 21 && ( g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 0 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 13 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 26 || g_blackjackDealerCardIndex[ tableid ] [ 1 ] == 39 ) ) + return true; + + return false; +} + +stock GetBlackjackCardValue( card_index ) +{ + new + card_value = 0; + + switch ( card_index ) + { + case 0, 13, 26, 39: card_value = 1; + case 1, 14, 27, 40: card_value = 2; + case 2, 15, 28, 41: card_value = 3; + case 3, 16, 29, 42: card_value = 4; + case 4, 17, 30, 43: card_value = 5; + case 5, 18, 31, 44: card_value = 6; + case 6, 19, 32, 45: card_value = 7; + case 7, 20, 33, 46: card_value = 8; + case 8, 21, 34, 47: card_value = 9; + case 9, 22, 35, 48, 10, 23, 36, 49, 11, 24, 37, 50, 12, 25, 38, 51: card_value = 10; + } + return card_value; +} + +stock GetBlackjackPlayerIndex( tableid, playerid ) +{ + for ( new player_index = 0; player_index < MAX_BLACKJACK_PLAYERS; player_index ++ ) if ( playerid == g_blackjackSlotData[ tableid ] [ player_index ] ) { + return player_index; + } + return -1; +} + +stock GetBlackjackPlayers( tableid ) { + new + count = 0; + + for ( new p = 0; p < MAX_BLACKJACK_PLAYERS; p ++ ) if ( g_blackjackSlotData[ tableid ] [ p ] != -1 ) + count ++; + + return count; +} diff --git a/pawno/include/irresistible/features/boxing--.inc b/pawno/include/irresistible/features/visage/boxing--.inc similarity index 100% rename from pawno/include/irresistible/features/boxing--.inc rename to pawno/include/irresistible/features/visage/boxing--.inc diff --git a/pawno/include/irresistible/features/fireworks.inc b/pawno/include/irresistible/features/visage/fireworks.inc similarity index 92% rename from pawno/include/irresistible/features/fireworks.inc rename to pawno/include/irresistible/features/visage/fireworks.inc index 57bec1a..4134691 100644 --- a/pawno/include/irresistible/features/fireworks.inc +++ b/pawno/include/irresistible/features/visage/fireworks.inc @@ -381,3 +381,44 @@ forward FW_UpdateTick(handle); public FW_UpdateTick(handle) FW_Data[handle][FW_FL_TIME_DELAY_COUNT]++; return 1; } + +CMD:fireworks( playerid, params[ ] ) +{ + if ( ! IsPlayerAdmin( playerid ) ) return 0; + new + flares, style, Float: speed, Float: gravity, Float: angle, Float: time_delay, Float: max_height; + + // /fireworks 50 0 10 10.8 50 0.2 50 - spiral + if ( sscanf( params, "ddffffF(50.0)", flares, style, speed, gravity, angle, time_delay, max_height ) ) return SendUsage( playerid, "fireworks [FLARES] [STYLE] [SPEED] [GRAVITY] [ANGLE] [TIME_DELAY] [MAX_HEIGHT]" ); + else + { + new + Float: X, Float: Y, Float: Z + ; + + GetPlayerPos( playerid, X, Y, Z ); + + CreateFireworks( flares, style, X, Y, Z, angle, speed, gravity, time_delay, max_height ); + return SendServerMessage( playerid, "Fireworks placed! Use /launchfireworks to launch." ); + } +} + +CMD:launchfireworks( playerid, params[ ] ) +{ + if ( ! IsPlayerAdmin( playerid ) ) return 0; + foreach (new f : fireworks) { + LaunchFireworks( f ); + } + SendServerMessage( playerid, "Launching" ); + return 1; +} + +CMD:destroyfireworks( playerid, params[ ] ) +{ + if ( ! IsPlayerAdmin( playerid ) ) return 0; + for (new f = 0; f < MAX_FIREWORKS; f++ ) { + ResetFirework( f ); + } + SendServerMessage( playerid, "Destroyed" ); + return 1; +} diff --git a/pawno/include/irresistible/features/visage/poker.inc b/pawno/include/irresistible/features/visage/poker.inc new file mode 100644 index 0000000..28f6404 --- /dev/null +++ b/pawno/include/irresistible/features/visage/poker.inc @@ -0,0 +1,2553 @@ +/****************************************************************************************** + + TPoker + + Texas Hold'em Poker Implementation + + Copyright (C) 2018 ThreeKingz (Freddy Borja) + + https://github.com/ThreeKingz + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*******************************************************************************************/ +#pragma option -d3 + +#include +#include +#include + +forward bool: FoldPlayer(handle, playerid); + +/* + native calculate_hand_worth(const hands[], count = sizeof(hands)); + + * hands[]: an array containing the cards to analyze (between 1 to 7 cards) + * count: the number of cards to analyze (between 1 to 7 cards) +*/ + +native calculate_hand_worth(const hands[], count = sizeof(hands)); + + + +#define T_DEBUGGING_ENABLED (true) + +#if T_DEBUGGING_ENABLED == true + #define T_SendWarning(%0) (printf(" * [TPoker]: " %0)) +#endif + +/****************************************************************************************** + Utils +*******************************************************************************************/ +stock SetPlayerChatBubbleEx(playerid, color, Float:drawdistance, expiretime, const format[], va_args<>) +{ + return SetPlayerChatBubble(playerid, va_return(format, va_start<5>), color, drawdistance, expiretime); +} +stock UpdateDynamic3DTextLabelTextEx(STREAMER_TAG_3D_TEXT_LABEL id, color, const format[], va_args<>) +{ + return UpdateDynamic3DTextLabelText(id, color, va_return(format, va_start<3>)); +} + +stock ShowPlayerDialogEx(playerid, dialogid, style, caption[], button1[], button2[], const format[], va_args<>) +{ + return ShowPlayerDialog(playerid, dialogid, style, caption, va_return(format, va_start<7>), button1, button2); +} + +/****************************************************************************************** + Constants +*******************************************************************************************/ + +//Limits +#define T_MAX_POKER_TABLES 30 +#define T_MAX_CHAIRS_PER_TABLE 7 +#define T_CHAIR_MODEL 2120 +#define T_MAX_CHIPS_PER_CHAIR 4 +#define T_MAX_WAIT_TIME 20 //20 seconds to make a choice +#define T_START_DELAY 5 //5 seconds +#define T_SAVE_PLAYER_POS true +//Max number the chips can express 10^(MAX_CHIP_DIGITS) - 1 +#define MAX_CHIP_DIGITS 8 + + +//Layout and design +#define T_Z_OFFSET 0.442852 +#define T_CHAIR_RANGE 1.250000 +#define T_Z_CAMERA_OFFSET 3.0 +#define T_CHIP_OFFSET 0.13 +//Length and width of cards +#define T_CARD_X_SIZE 21.000000 +#define T_CARD_Y_SIZE 29.000000 + + +#define T_TWO_CARD_DISTANCE 23.904725 //Distance between the two cards each player receives +#define T_CARDS_RADIAL_DISTANCE 144.00000 //Distance from the first card to the center of the table +#define T_SCREEN_CENTER_X 320.00000 +#define T_SCREEN_CENTER_Y 215.00000 +#define T_CHIPS_DISTANCE 0.6582 +#define T_RADIUS 0.971977 +#define T_BET_LABEL_COLOR 0x0080FFFF +//Radial distance required to enter a table +#define T_JOIN_TABLE_RANGE 2.5 + + + +/*Textdraw constants*/ + +#define MAIN_POT 0 +#define CALL 2 +#define RAISE 3 +#define FOLD 4 +#define DIALOG_BUY_IN 19232 +#define DIALOG_INPUT_RAISE 9231 + + +#define SendPokerMessage(%0,%1) \ + SendClientMessageFormatted(%0, -1, "{4B8774}[POKER] {E5861A}"%1) + + +/****************************************************************************************** + Enums and arrays +*******************************************************************************************/ + +/* Iterators */ + +new Iterator:IT_Tables; +new Iterator:IT_TableCardSet[T_MAX_POKER_TABLES]<52>; //Card sample space + +new Iterator:IT_PlayersTable; //Current players in the table (might not be playing but just looking the rest of the players play) +new Iterator:IT_PlayersInGame; //Current players in the table playing +new Iterator:IT_PlayersAllIn; + +//Syntax: It_SidepotMembers[_IT[idx_table][idx_chair_slot]] +new Iterator:It_SidepotMembers[T_MAX_POKER_TABLES * T_MAX_CHAIRS_PER_TABLE]; +new Iterator:IT_Sidepots[T_MAX_POKER_TABLES]; +#define _IT[%0][%1] %0*T_MAX_CHAIRS_PER_TABLE+%1 +#define IsValidTable(%0) ((0 <= %0 < T_MAX_POKER_TABLES) && Iter_Contains(IT_Tables, %0)) + +enum E_TABLE_STATES +{ + STATE_IDLE, + STATE_BEGIN, //Game has started +} + +//Rankings: from lowest to highest +new const HAND_RANKS[][] = +{ + {"Undefined"}, //will never occur + {"High Card"}, + {"Pair"}, + {"Two Pair"}, + {"Three of a Kind"}, + {"Straight"}, + {"Flush"}, + {"Full House"}, + {"Four of a Kind"}, + {"Straight Flush"}, + {"Royal Flush"} +}; +enum E_CARD_SUITS +{ + SUIT_SPADES, + SUIT_HEARTS, + SUIT_CLUBS, + SUIT_DIAMONDS +}; + +enum E_CARD_DATA +{ + E_CARD_TEXTDRAW[48], + E_CARD_NAME[48], + E_CARD_SUITS:E_CARD_SUIT, + E_CARD_RANK +}; + + +new const CardData[ 52 ] [E_CARD_DATA] = { + + //Spades + {"LD_CARD:cd2s", "Two of Spades", SUIT_SPADES, 0}, + {"LD_CARD:cd3s", "Three of Spades", SUIT_SPADES, 1}, + {"LD_CARD:cd4s", "Four of Spades", SUIT_SPADES, 2}, + {"LD_CARD:cd5s", "Five of Spades", SUIT_SPADES, 3}, + {"LD_CARD:cd6s", "Six of Spades", SUIT_SPADES, 4}, + {"LD_CARD:cd7s", "Seven of Spades", SUIT_SPADES, 5}, + {"LD_CARD:cd8s", "Eight of Spades", SUIT_SPADES, 6}, + {"LD_CARD:cd9s", "Nine of Spades", SUIT_SPADES, 7}, + {"LD_CARD:cd10s", "Ten of Spades", SUIT_SPADES, 8}, + {"LD_CARD:cd11s", "Jack of Spades", SUIT_SPADES, 9}, + {"LD_CARD:cd12s", "Queen of Spades", SUIT_SPADES, 10}, + {"LD_CARD:cd13s", "King of Spades", SUIT_SPADES, 11}, + {"LD_CARD:cd1s", "Ace of Spades", SUIT_SPADES, 12}, + + //Hearts + {"LD_CARD:cd2h", "Two of Hearts", SUIT_HEARTS, 0}, + {"LD_CARD:cd3h", "Three of Hearts", SUIT_HEARTS, 1}, + {"LD_CARD:cd4h", "Four of Hearts", SUIT_HEARTS, 2}, + {"LD_CARD:cd5h", "Five of Hearts", SUIT_HEARTS, 3}, + {"LD_CARD:cd6h", "Six of Hearts", SUIT_HEARTS, 4}, + {"LD_CARD:cd7h", "Seven of Hearts", SUIT_HEARTS, 5}, + {"LD_CARD:cd8h", "Eight of Hearts", SUIT_HEARTS, 6}, + {"LD_CARD:cd9h", "Nine of Hearts", SUIT_HEARTS, 7}, + {"LD_CARD:cd10h", "Ten of Hearts", SUIT_HEARTS, 8}, + {"LD_CARD:cd11h", "Jack of Hearts", SUIT_HEARTS, 9}, + {"LD_CARD:cd12h", "Queen of Hearts", SUIT_HEARTS, 10}, + {"LD_CARD:cd13h", "King of Hearts", SUIT_HEARTS, 11}, + {"LD_CARD:cd1h", "Ace of Hearts", SUIT_HEARTS, 12}, + + //Clubs + {"LD_CARD:cd2c", "Two of Clubs", SUIT_CLUBS, 0}, + {"LD_CARD:cd3c", "Three of Clubs", SUIT_CLUBS, 1}, + {"LD_CARD:cd4c", "Four of Clubs", SUIT_CLUBS, 2}, + {"LD_CARD:cd5c", "Five of Clubs", SUIT_CLUBS, 3}, + {"LD_CARD:cd6c", "Six of Clubs", SUIT_CLUBS, 4}, + {"LD_CARD:cd7c", "Seven of Clubs", SUIT_CLUBS, 5}, + {"LD_CARD:cd8c", "Eight of Clubs", SUIT_CLUBS, 6}, + {"LD_CARD:cd9c", "Nine of Clubs", SUIT_CLUBS, 7}, + {"LD_CARD:cd10c", "Ten of Clubs", SUIT_CLUBS, 8}, + {"LD_CARD:cd11c", "Jack of Clubs", SUIT_CLUBS, 9}, + {"LD_CARD:cd12c", "Queen of Clubs", SUIT_CLUBS, 10}, + {"LD_CARD:cd13c", "King of Clubs", SUIT_CLUBS, 11}, + {"LD_CARD:cd1c", "Ace of Clubs", SUIT_CLUBS, 12}, + + //Diamonds + {"LD_CARD:cd2d", "Two of Diamonds", SUIT_DIAMONDS, 0}, + {"LD_CARD:cd3d", "Three of Diamonds", SUIT_DIAMONDS, 1}, + {"LD_CARD:cd4d", "Four of Diamonds", SUIT_DIAMONDS, 2}, + {"LD_CARD:cd5d", "Five of Diamonds", SUIT_DIAMONDS, 3}, + {"LD_CARD:cd6d", "Six of Diamonds", SUIT_DIAMONDS, 4}, + {"LD_CARD:cd7d", "Seven of Diamonds", SUIT_DIAMONDS, 5}, + {"LD_CARD:cd8d", "Eight of Diamonds", SUIT_DIAMONDS, 6}, + {"LD_CARD:cd9d", "Nine of Diamonds", SUIT_DIAMONDS, 7}, + {"LD_CARD:cd10d", "Ten of Diamonds", SUIT_DIAMONDS, 8}, + {"LD_CARD:cd11d", "Jack of Diamonds", SUIT_DIAMONDS, 9}, + {"LD_CARD:cd12d", "Queen of Diamonds", SUIT_DIAMONDS, 10}, + {"LD_CARD:cd13d", "King of Diamonds", SUIT_DIAMONDS, 11}, + {"LD_CARD:cd1d", "Ace of Diamonds", SUIT_DIAMONDS, 12} +}; + + +//Card rank = (array index % 13) | Card native index = 4 * rank + suit +#define GetCardNativeIndex(%0) ((4*((%0) % 13))+_:CardData[(%0)][E_CARD_SUIT]) + + +new const TableRotCorrections[][] = +{ + {-1, -1, -1, -1, -1, -1},//0seats + {-1, -1, -1, -1, -1, -1},//1 seat + { 1, 0, -1, -1, -1, -1},//2 seats + { 1, 0, 2, -1, -1, -1},//3 seats + { 1, 0, 3, 2, -1, -1},//4 seats + { 1, 0, 4, 3, 2, -1},//5 seats + { 1, 0, 5, 4, 3, 2} //6 seats +}; + + +new const colors[MAX_CHIP_DIGITS] = +{ + 0xFF0080C0,//1 + 0xFF008000,//10 + 0xFF324A4E,//100 + 0xFF7C4303,//1,000 + 0xFF63720E,//10,000 + 0xFFE2C241,//100,000 + 0xFFE4603F,//1,000,000 + 0xFFCD270A //100,000,000 + //0xFFFF2424, //1,000,000,000 + //0xFFFF2424, //10,000,000,000 + +}; + +new const chip_text[MAX_CHIP_DIGITS][8] = +{ + {"$1"}, + {"$10"}, + {"$100"}, + {"$1K"}, + {"$10K"}, + {"$100K"}, + {"$1M"}, + {"$10M"} + //{"$100M"} + //{"$1,000M"} +}; +/*============*/ + +enum E_TABLE_ROUNDS +{ + ROUND_PRE_FLOP, //no community cards displayed yet + ROUND_FLOP, + ROUND_TURN, //4th com card is shown + ROUND_RIVER //5th community card is shown +}; + +enum e_TABLE +{ + E_TABLE_BUY_IN, + E_TABLE_SMALL_BLIND, + E_TABLE_BIG_BLIND, + E_TABLE_LAST_TO_RAISE, + E_TABLE_LAST_TO_RAISE_SEAT, + E_TABLE_CURRENT_TURN, + E_TABLE_LAST_BET, + E_TABLE_STATES:E_TABLE_CURRENT_STATE, + E_TABLE_PLAYER_DEALER_ID, + E_TABLE_PLAYER_BIG_BLIND_ID, + E_TABLE_PLAYER_SMALL_BLIND_ID, + bool:E_TABLE_CHECK_FIRST, + E_TABLE_FIRST_TURN, + //============SIDEPOTS=================== + E_TABLE_POT_CHIPS[T_MAX_CHAIRS_PER_TABLE], + + //======================================= + bool: E_TABLE_TIMER_STARTED, + E_TABLE_OBJECT_IDS[2], //Two objects (models 2111 and 2189) + Float:E_TABLE_POS_X, + Float:E_TABLE_POS_Y, + Float:E_TABLE_POS_Z, + E_TABLE_ROUNDS: E_TABLE_CURRENT_ROUND, + E_TABLE_DEALER_SEAT, + E_TABLE_TOTAL_SEATS, + E_TABLE_TIMER_ID, + bool: E_TABLE_LOADING_GAME, + bool: E_TABLE_STING_NEW_GAME, + E_TABLE_COM_CARDS_VALUES[5], + Text3D:E_TABLE_POT_LABEL, + E_TABLE_VIRTUAL_WORLD, + E_TABLE_INTERIOR, + + Text3D:E_TABLE_BET_LABELS[T_MAX_CHAIRS_PER_TABLE], + E_TABLE_CHAIR_OBJECT_IDS[T_MAX_CHAIRS_PER_TABLE], + bool:E_TABLE_IS_SEAT_TAKEN[T_MAX_CHAIRS_PER_TABLE], + E_TABLE_CHAIR_PLAYER_ID[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_X[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_Y[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_Z[T_MAX_CHAIRS_PER_TABLE], + + E_TABLE_CHIPS[MAX_CHIP_DIGITS], + E_TABLE_CHIPS_LABEL[MAX_CHIP_DIGITS] +}; +new TableData[T_MAX_POKER_TABLES + 1][e_TABLE]; +new TableChips[T_MAX_POKER_TABLES + 1][T_MAX_CHAIRS_PER_TABLE][MAX_CHIP_DIGITS]; +new TableChipsLabel[T_MAX_POKER_TABLES + 1][T_MAX_CHAIRS_PER_TABLE][MAX_CHIP_DIGITS]; + +#define SetTableFirstTurn(%0,%1) TableData[(%0)][E_TABLE_FIRST_TURN]=%1 +#define GetTableFirstTurn(%0) (TableData[(%0)][E_TABLE_FIRST_TURN]) +#define GetPlayerSeat(%0) (PlayerData[(%0)][E_PLAYER_CURRENT_CHAIR_SLOT]) +enum E_RAISE_CHOICES +{ + E_RAISE_BET, + E_RAISE_RAISE, + E_RAISE_ALL_IN +}; +enum e_PLAYER +{ + bool: E_PLAYER_IS_PLAYING, + E_PLAYER_CURRENT_HANDLE, + E_PLAYER_CURRENT_BET, + E_PLAYER_CARD_VALUES[2], + E_PLAYER_TOTAL_CHIPS, + bool: E_PLAYER_CLICKED_TXT, + E_PLAYER_TIMER_ID, + bool:E_PLAYER_TIMER_STARTED, + bool:E_PLAYER_FOLDED, + //Textdraws + E_RAISE_CHOICES: E_PLAYER_RCHOICE, + PlayerText: E_PLAYER_COMMUNITY_CARDS_TXT[5], //5 cards + PlayerText: E_PLAYER_CARDS_TXT_1[T_MAX_CHAIRS_PER_TABLE], + PlayerText: E_PLAYER_CARDS_TXT_2[T_MAX_CHAIRS_PER_TABLE], + PlayerText: E_PLAYER_CHOICES_TXT[5], + PlayerText: E_PLAYER_INFO_TXT[6], + Text3D:E_PLAYER_3D_LABEL, + /*******/ + E_PLAYER_CURRENT_CHAIR_SLOT, + E_PLAYER_CHAIR_ATTACH_INDEX_ID +}; + +new PlayerData[MAX_PLAYERS + 1][e_PLAYER]; + + + +stock SetPlayerClickedTxt(playerid, bool:choice) +{ + PlayerData[playerid][E_PLAYER_CLICKED_TXT] = choice; + return 1; +} +#define GetPlayerClickedTxt(%0) (PlayerData[(%0)][E_PLAYER_CLICKED_TXT]) + + +forward Poker_StartGame(handle, dealer); + +stock SetLastToRaise(handle, playerid) +{ + if(!IsValidTable(handle)) + { + return 0; + } + if(!Iter_Contains(IT_PlayersInGame, playerid)) + { + T_SendWarning("[SetLastToRaise] playerid %d is not playing in table ID %d", playerid, handle); + return 0; + } + TableData[handle][E_TABLE_LAST_TO_RAISE] = playerid; + TableData[handle][E_TABLE_LAST_TO_RAISE_SEAT] = GetPlayerSeat(playerid); + return 1; +} + +stock ResetLabel(handle) +{ + if(!IsValidTable(handle)) return 0; + new const buy_in = TableData[handle][E_TABLE_BUY_IN]; + new const small_blind = TableData[handle][E_TABLE_SMALL_BLIND]; + UpdateDynamic3DTextLabelTextEx(TableData[handle][E_TABLE_POT_LABEL], -1, + "{FFFFFF}ID: %d\nPress {F98A0F}ENTER {FFFFFF}To Play\n{FFFFFF}$%d Minimum\n$%d / $%d Blinds", handle, buy_in, small_blind, small_blind * 2); + return 1; +} + +stock GetClosestTableForPlayer(playerid) +{ + new const Float:infinity = Float:0x7F800000; + new Float:tmpdist = infinity; + new Float:Pos[3]; + new handle = ITER_NONE; + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + foreach(new i: IT_Tables) + { + new const Float:dist = VectorSize(Pos[0]-TableData[i][E_TABLE_POS_X], Pos[1]-TableData[i][E_TABLE_POS_Y], Pos[2]-TableData[i][E_TABLE_POS_Z]); + if(dist < tmpdist) + { + tmpdist = dist; + handle = i; + } + } + return handle; +} + +stock bool:IsPlayerInRangeOfTable(playerid, handle, Float:range) +{ + if(!IsValidTable(handle)) return false; + if(IsPlayerInRangeOfPoint(playerid, range, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z])) return true; + return false; +} + +/****************************************************************************************** + Actual functions +*******************************************************************************************/ + +stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats, vworld, interior) +{ + new handle = Iter_Free(IT_Tables); + + if(handle == ITER_NONE) + { + T_SendWarning("Max number of poker tables has been reached. Increase T_MAX_POKER_TABLES."); + return ITER_NONE; + } + if(seats >= T_MAX_CHAIRS_PER_TABLE) + { + T_SendWarning("Max number of chairs per table has been reached. Increase T_MAX_CHAIRS_PER_TABLE."); + return ITER_NONE; + } + if(buy_in <= small_blind || buy_in <= 2 * small_blind) + { + T_SendWarning("Buy in cannot be less than the small blind or big blind."); + return ITER_NONE; + } + //TableData[T_MAX_POKER_TABLES] (dummy array) + memcpy(TableData[handle], TableData[T_MAX_POKER_TABLES], 0, sizeof(TableData[]) * 4, sizeof(TableData[])); + + + TableData[handle][E_TABLE_BUY_IN] = buy_in; + TableData[handle][E_TABLE_SMALL_BLIND] = small_blind; + TableData[handle][E_TABLE_BIG_BLIND] = small_blind * 2; + TableData[handle][E_TABLE_TOTAL_SEATS] = seats; + TableData[handle][E_TABLE_VIRTUAL_WORLD] = vworld; + TableData[handle][E_TABLE_INTERIOR] = interior; + /* Objects */ + + //Table + TableData[handle][E_TABLE_OBJECT_IDS][0] = CreateDynamicObject(2189, X, Y, Z + T_Z_OFFSET - 0.01, 0.0, 0.0, 0.0, vworld, interior); + TableData[handle][E_TABLE_OBJECT_IDS][1] = CreateDynamicObject(2111, X, Y, Z-0.01, 0.0, 0.0, 0.0, vworld, interior); + + //Chairs + TableData[handle][E_TABLE_POT_LABEL] = CreateDynamic3DTextLabel("-", -1, X+T_CHIP_OFFSET, Y+T_CHIP_OFFSET, Z+0.5, 3.0, .worldid = vworld, .interiorid = interior); + + new Float:angle_step = floatdiv(360.0, float(seats)); + for(new i = 0; i < seats; i++) + { + new const Float:unit_posx = floatcos(float(i) * angle_step, degrees); + new const Float:unit_posy = floatsin(float(i) * angle_step, degrees); + new const Float:o_posx = unit_posx * T_CHAIR_RANGE + X; + new const Float:o_posy = unit_posy * T_CHAIR_RANGE + Y; + new const Float:c_posz = Z + 0.36; + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = CreateDynamicObject(T_CHAIR_MODEL, o_posx, o_posy, Z + 0.25, 0.0, 0.0, angle_step * float(i), vworld, interior); + TableData[handle][E_TABLE_SEAT_POS_X][i] = o_posx; + TableData[handle][E_TABLE_SEAT_POS_Y][i] = o_posy; + TableData[handle][E_TABLE_SEAT_POS_Z][i] = Z; + //Currently invisible + TableData[handle][E_TABLE_BET_LABELS][i] = CreateDynamic3DTextLabel("$9", T_BET_LABEL_COLOR & ~0xFF, 0.65 * floatcos(float(i) * angle_step, degrees) + X, 0.65 * floatsin(float(i) * angle_step, degrees) + Y, c_posz, 3.0 , .worldid = vworld, .interiorid = interior); + + new const Float: or_x = 0.70 * floatcos(float(i) * angle_step, degrees) + X; + new const Float: or_y = 0.70 * floatsin(float(i) * angle_step, degrees) + Y; + new const Float: or_z = c_posz - 0.076; + + new Float: a_s = floatdiv(360.0, float(MAX_CHIP_DIGITS)); + + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:rad = 0.11; + new rand = random(20); + TableChips[handle][i][j] = CreateDynamicObject(1902, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior); + SetDynamicObjectMaterialText(TableChips[handle][i][j], 0, " ", .backcolor = colors[j]); + TableChipsLabel[handle][i][j] = CreateDynamicObject(1905, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior); + SetDynamicObjectMaterialText(TableChipsLabel[handle][i][j], + 0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 ); + } + } + new const Float: or_z = Z + 0.284; //No chips are visible + new Float: a_s = floatdiv(360.0, float(MAX_CHIP_DIGITS)); + //center chips + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:rad = 0.11; + new rand = random(20); + new Float:px = rad * floatcos(float(j) * a_s, degrees) + X + T_CHIP_OFFSET; + new Float:py = rad * floatsin(float(j) * a_s, degrees) + Y + T_CHIP_OFFSET; + TableData[handle][E_TABLE_CHIPS][j] = CreateDynamicObject(1902, px, py, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior); + SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS][j], 0, " ", .backcolor = colors[j]); + TableData[handle][E_TABLE_CHIPS_LABEL][j] = CreateDynamicObject(1905, px, py, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior); + SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS_LABEL][j], + 0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 ); + } + TableData[handle][E_TABLE_POS_X] = X; + TableData[handle][E_TABLE_POS_Y] = Y; + TableData[handle][E_TABLE_POS_Z] = Z; + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + Iter_Clear(IT_TableCardSet[handle]); + + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + /* Sidepots */ + Iter_Clear(IT_Sidepots[handle]); + + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[handle][E_TABLE_POT_CHIPS][i] = 0; + Iter_Clear(It_SidepotMembers[_IT[handle][i]]); + } + /*=================================================*/ + Iter_Add(IT_Tables, handle); + ResetLabel(handle); + ResetChips(handle); + + foreach(new i: Player) + { + if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z)) + { + Streamer_Update(i); + } + } + return handle; +} + + +stock SetPotChipsValue(handle, value) +{ + new + dec_pos = 0, + Float: base_z = TableData[handle][E_TABLE_POS_Z] + 0.284 + ; + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableData[handle][E_TABLE_CHIPS][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z); + SetDynamicObjectPos(TableData[handle][E_TABLE_CHIPS_LABEL][j], c_x, c_y, base_z + 0.12); + } + for(new val = value; val != 0; val /= 10) + { + if(dec_pos >= MAX_CHIP_DIGITS) break; + new const digit = val % 10; + if(!digit) + { + dec_pos++; + continue; + } + new Float:c_x, Float:c_y, Float:c_z; + //Chip object + new objectid = TableData[handle][E_TABLE_CHIPS][dec_pos]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z + 0.016 * (float(digit))); + //Chip label: + SetDynamicObjectPos(TableData[handle][E_TABLE_CHIPS_LABEL][dec_pos], c_x, c_y, 0.125 + base_z + 0.016 * (float(digit))); + dec_pos++; + } + return 1; +} + +stock ResetChips(handle) +{ + new + Float: base_z = TableData[handle][E_TABLE_POS_Z] + 0.284 + ; + new seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + for(new i = 0; i < seats; i++) + { + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new rand = random(20); + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableChips[handle][i][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, (float(rand) * 0.008) + base_z); + SetDynamicObjectPos(TableChipsLabel[handle][i][j], c_x, c_y, (float(rand) * 0.008) + base_z + 0.125); + } + } + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new rand = random(20); + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableData[handle][E_TABLE_CHIPS][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, (float(rand) * 0.008) + base_z); + SetDynamicObjectPos(TableData[handle][E_TABLE_CHIPS_LABEL][j], c_x, c_y, (float(rand) * 0.008) + base_z + 0.125); + } + return 1; +} +stock SetChipsValue(handle, seat, value) +{ + new + dec_pos = 0, + Float: base_z = TableData[handle][E_TABLE_POS_Z] + 0.284 + ; + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableChips[handle][seat][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z); + SetDynamicObjectPos(TableChipsLabel[handle][seat][j], c_x, c_y, base_z + 0.12); + } + for(new val = value; val != 0; val /= 10) + { + if(dec_pos >= MAX_CHIP_DIGITS) break; + new const digit = val % 10; + if(!digit) + { + dec_pos++; + continue; + } + new Float:c_x, Float:c_y, Float:c_z; + //Chip object + new objectid = TableChips[handle][seat][dec_pos]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z + 0.016 * (float(digit))); + //Chip label: + SetDynamicObjectPos(TableChipsLabel[handle][seat][dec_pos], c_x, c_y, 0.125 + base_z + 0.016 * (float(digit))); + dec_pos++; + } + return 1; +} + +stock DestroyPokertable( handle) +{ + if(!Iter_Contains(IT_Tables, handle)) return 0; + + if(Iter_Count(IT_PlayersTable)) + { + for(new i = 0; i < MAX_PLAYERS; i++) + { + if(Iter_Contains(IT_PlayersTable, i)) + { + KickPlayerFromTable(i); + } + } + } + TableData[handle][E_TABLE_BUY_IN] = 0; + TableData[handle][E_TABLE_SMALL_BLIND] = 0; + TableData[handle][E_TABLE_BIG_BLIND] = 0; + + DestroyDynamicObject(TableData[handle][E_TABLE_OBJECT_IDS][0]); + TableData[handle][E_TABLE_OBJECT_IDS][0] = INVALID_OBJECT_ID; + + DestroyDynamicObject(TableData[handle][E_TABLE_OBJECT_IDS][1]); + TableData[handle][E_TABLE_OBJECT_IDS][1] = INVALID_OBJECT_ID; + + DestroyDynamic3DTextLabel(TableData[handle][E_TABLE_POT_LABEL]); + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + DestroyDynamicObject(TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i]); + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = INVALID_OBJECT_ID; + TableData[handle][E_TABLE_SEAT_POS_X][i] = 0.0; + TableData[handle][E_TABLE_SEAT_POS_Y][i] = 0.0; + TableData[handle][E_TABLE_SEAT_POS_Z][i] = 0.0; + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + DestroyDynamicObject(TableChips[handle][i][j]); + DestroyDynamicObject(TableChipsLabel[handle][i][j]); + } + } + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + DestroyDynamicObject(TableData[handle][E_TABLE_CHIPS][j]); + DestroyDynamicObject(TableData[handle][E_TABLE_CHIPS_LABEL][j]); + } + TableData[handle][E_TABLE_TOTAL_SEATS] = 0; + Iter_Remove(IT_Tables, handle); + Iter_Clear(IT_TableCardSet[handle]); + Iter_Clear(IT_PlayersInGame); + Iter_Clear(IT_PlayersTable); + return 1; +} + + + +stock KickPlayerFromTable(playerid) +{ + if(!GetPVarInt(playerid, "t_is_in_table")) + { + return 0; + } + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!Iter_Contains(IT_PlayersTable, playerid)) return 0; + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]; + new attach_index = PlayerData[playerid][E_PLAYER_CHAIR_ATTACH_INDEX_ID]; + RemovePlayerAttachedObject(playerid, attach_index); + ClearAnimations(playerid, 1); + TogglePlayerControllable(playerid, true); + new const Float:angle_step = floatdiv(360.0, TableData[handle][E_TABLE_TOTAL_SEATS]); + //Create the chair object again: + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot] = CreateDynamicObject(T_CHAIR_MODEL, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot], 0.0, 0.0, angle_step * float(slot), TableData[handle][E_TABLE_VIRTUAL_WORLD], TableData[handle][E_TABLE_INTERIOR]); + Internal_RemoveChairSlot(handle, slot); + SetPlayerPos(playerid, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot]); + SetCameraBehindPlayer(playerid); + + + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + for(new i = 0; i < 6; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + } + DestroyDynamic3DTextLabel(PlayerData[playerid][E_PLAYER_3D_LABEL]); + + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_BET_LABELS][slot], 0, " "); + + Iter_Remove(IT_PlayersTable, playerid); + + if(Iter_Contains(IT_PlayersInGame, playerid)) + Iter_Remove(IT_PlayersInGame, playerid); + + GivePlayerCash(playerid, PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + + + if(PlayerData[playerid][E_PLAYER_TIMER_STARTED]) + { + KillTimer(PlayerData[playerid][E_PLAYER_TIMER_ID]); + } + memcpy(PlayerData[playerid], PlayerData[MAX_PLAYERS], 0, sizeof(PlayerData[]) * 4, sizeof(PlayerData[])); + #if T_SAVE_PLAYER_POS == true + SetPlayerPos(playerid, GetPVarFloat(playerid, "t_temp_posX"), GetPVarFloat(playerid, "t_temp_posY"), GetPVarFloat(playerid, "t_temp_posZ")); + SetPlayerFacingAngle(playerid, GetPVarFloat(playerid, "t_temp_angle")); + #endif + SetPVarInt(playerid, "t_is_in_table", 0); + new Float:X, Float:Y, Float:Z; + X = TableData[handle][E_TABLE_POS_X]; + Y = TableData[handle][E_TABLE_POS_Y]; + Z = TableData[handle][E_TABLE_POS_Z]; + foreach(new i: Player) + { + if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z)) + { + Streamer_Update(i); + } + } + if(!Iter_Count(IT_PlayersTable)) + { + ResetLabel(handle); + ResetChips(handle); + } + return 1; +} + +stock Player_CreateTextdraws(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + new Float:px; + new Float:py; + new Float:t_angle = 0.0; + + new const seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + switch(seats) + { + case 2: t_angle = 120.0; + case 3: t_angle = 180.0; + case 4: t_angle = 210.0; + case 5: t_angle = 240.0; + case 6: t_angle = 240.0; + } + //Hole cards + new const Float:angle_step = floatdiv(360.0, float(seats)); + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + px = (T_CARDS_RADIAL_DISTANCE * floatcos(float(i) * angle_step + t_angle, degrees)) + T_SCREEN_CENTER_X; + py = (T_CARDS_RADIAL_DISTANCE * floatsin(float(i) * angle_step + t_angle, degrees)) + T_SCREEN_CENTER_Y + 25.0; + + PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i] = CreatePlayerTextDraw(playerid, px, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], 4); + + + PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i] = CreatePlayerTextDraw(playerid, px + T_TWO_CARD_DISTANCE, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], 4); + } + //Community cards + for(new i = 0; i < 5; i++) + { + px = i * T_TWO_CARD_DISTANCE + T_SCREEN_CENTER_X - 58.0; + py = T_SCREEN_CENTER_Y + 10.0; + PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i] = CreatePlayerTextDraw(playerid, px, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], 4); + } + + //Buttons + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][0] = CreatePlayerTextDraw(playerid, 613.000122, 109.940643, "box"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0.000000, 8.599979); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0.000000, 57.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 177); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 169); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][1] = CreatePlayerTextDraw(playerid, 612.000122, 110.770355, "Options"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0.000000, 53.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], -1061109505); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL] = CreatePlayerTextDraw(playerid, 615.999755, 131.511154, "Call"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], -2139094785); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0); + //PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], true); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE] = CreatePlayerTextDraw(playerid, 615.999755, 148.518554, "Raise"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], -1378294017); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0); + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], true); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD] = CreatePlayerTextDraw(playerid, 615.999755, 165.525954, "Fold"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], -1523963137); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0); + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], true); + + //Info + PlayerData[playerid][E_PLAYER_INFO_TXT][0] = CreatePlayerTextDraw(playerid, 597.333435, 253.051803, "box"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 0.000000, 7.366664); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 0.000000, 84.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 193); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][1] = CreatePlayerTextDraw(playerid, 597.999694, 253.466537, "INFORMATION"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 0.265333, 1.093926); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 0.000000, 84.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], -2139062017); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 2); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][2] = CreatePlayerTextDraw(playerid, 559.666687, 268.814849, "Chips:_2934123"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][3] = CreatePlayerTextDraw(playerid, 559.666687, 279.600128, "Pot:_23124"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], -1); //10.785279 + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][4] = CreatePlayerTextDraw(playerid, 559.666687, 290.385407, "Last_bet:_$4213"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][5] = CreatePlayerTextDraw(playerid, 559.666687, 301.170686, "Your_bet:_$124"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + + return 1; +} + +hook OnPlayerConnect(playerid) +{ + for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) + { + if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) continue; + RemovePlayerAttachedObject(playerid, i); + } + return 0; +} + +stock AddPlayerToTable(playerid, handle) +{ + if(!Iter_Contains(IT_Tables, handle)) return 0; + new slot = Internal_GetFreeChairSlot(handle); + if(slot == ITER_NONE) + { + SendPokerMessage(playerid, "There aren't currently any unnocupied seats in this table at the moment. You cannot enter it."); + return 0; + } + + if(GetPlayerCash(playerid) < TableData[handle][E_TABLE_BUY_IN]) return SendPokerMessage(playerid, "You don't have enough money to access this table. Buy In: $%d", TableData[handle][E_TABLE_BUY_IN]); + + new index = Player_GetUnusedAttachIndex(playerid); + if(index == cellmin) + { + SendPokerMessage(playerid, "You cannot access this table in this moment."); + return 0; + } + //Reset player data + memcpy(PlayerData[playerid], PlayerData[MAX_PLAYERS], 0, sizeof(PlayerData[]) * 4, sizeof(PlayerData[])); + + + //Information to set the player's position, angle, etc.. + new Float:Pos[3]; + Pos[0] = TableData[handle][E_TABLE_SEAT_POS_X][slot]; + Pos[1] = TableData[handle][E_TABLE_SEAT_POS_Y][slot]; + Pos[2] = TableData[handle][E_TABLE_SEAT_POS_Z][slot]; + new const Float:angle_step = floatdiv(360.0, float(TableData[handle][E_TABLE_TOTAL_SEATS])); + new Float:facing_angle = (TableData[handle][E_TABLE_TOTAL_SEATS] == 2) ? (270 - angle_step * float(slot + 1)) : angle_step * float(slot + 1); + DestroyDynamicObject(TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot]); + SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + SetPlayerFacingAngle(playerid, facing_angle); + + SetPlayerAttachedObject(playerid, index, T_CHAIR_MODEL, 7, 0.061999, -0.046, 0.095999, 90.6, -171.8, -10.5, 1.0, 1.0, 1.0); + SetPlayerCameraPos(playerid, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z]+T_Z_CAMERA_OFFSET); + SetPlayerCameraLookAt(playerid, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z]); + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.1, 1, 1, 1, 0, 0, 1); + new tstr[64]; + format(tstr, sizeof(tstr), "%s", ReturnPlayerName(playerid), slot); + PlayerData[playerid][E_PLAYER_3D_LABEL] = CreateDynamic3DTextLabel(tstr, 0x808080FF, Pos[0], Pos[1], Pos[2], 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 5.0); + + //Information that will be used later + PlayerData[playerid][E_PLAYER_CHAIR_ATTACH_INDEX_ID] = index; + PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] = slot; + + PlayerData[playerid][E_PLAYER_CURRENT_HANDLE] = handle; + Player_CreateTextdraws(playerid); + //Iterators + Internal_AddChairSlot(handle, slot); + Iter_Add(IT_PlayersTable, playerid); + TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot] = playerid; + GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN]; + SendPokerMessage(playerid, "You've been charged $%d as a result of joining in the table.", TableData[handle][E_TABLE_BUY_IN]); + //Allow players to join a table where a game has already started but there are empty seats remaining (these players will be able to play once the current match finishes) + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) + { + if(Iter_Count(IT_PlayersTable) == 2 && !TableData[handle][E_TABLE_LOADING_GAME]) //Minimum two seats + { + if(!TableData[handle][E_TABLE_STING_NEW_GAME]) + { + SendTableMessage(handle, "There are currently two players in the table."); + SendTableMessage(handle, "Any players interested in being part of this game have "#T_START_DELAY" seconds to join the table."); + SendTableMessage(handle, "The game will begin in "#T_START_DELAY" seconds..."); + Iter_Clear(IT_PlayersInGame); + TableData[handle][E_TABLE_LOADING_GAME] = true; + SetTimerEx("Poker_StartGame", T_START_DELAY * 1000, false, "ii", handle, INVALID_PLAYER_ID); + } + } + } + else + { + SendPokerMessage(playerid, "You have entered this poker table but the game has already begun."); + SendPokerMessage(playerid, "You must wait until this match is finished to play!"); + SendTableMessage(handle, "{25728B}- - Player %s has joined the table... - -", ReturnPlayerName(playerid)); + } + + foreach(new i: Player) + { + if(IsPlayerInRangeOfPoint(i, 35.0, Pos[0], Pos[1], Pos[2])) + { + Streamer_Update(i); + } + } + + #if T_SAVE_PLAYER_POS == true + + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + SetPVarFloat(playerid, "t_temp_posX", Pos[0]); + SetPVarFloat(playerid, "t_temp_posY", Pos[1]); + SetPVarFloat(playerid, "t_temp_posZ", Pos[2]); + GetPlayerFacingAngle(playerid, Pos[0]); + SetPVarFloat(playerid, "t_temp_angle", Pos[0]); + #endif + + SetPVarInt(playerid, "t_is_in_table", 1); + return 1; +} + +stock SendTableMessage(handle, const format[], va_args<>) +{ + new sstr[164]; + va_format(sstr, sizeof (sstr), format, va_start<2>); + //strins(sstr, "{cc8e35}-|- {739e82} ", 0); + foreach(new playerid: IT_PlayersTable) + { + SendClientMessage(playerid, -1, sstr); + } + return 1; +} +stock UpdateInfoTextdrawsForPlayer(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + new tstring[64]; + format(tstring, sizeof(tstring), "~g~Chips:_~w~$%d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], tstring); + format(tstring, sizeof(tstring), "~y~Pot:_~w~$%d", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], tstring); + format(tstring, sizeof(tstring), "~r~Last_bet:_~w~$%d", TableData[handle][E_TABLE_LAST_BET]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], tstring); + format(tstring, sizeof(tstring), "~r~Your_bet:_~w~$%d", PlayerData[playerid][E_PLAYER_CURRENT_BET]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], tstring); + return 1; +} + +stock Player_Clearchat(playerid) +{ + for(new j = 0; j < 30; j++) + SendClientMessage(playerid, -1, " "); + return 1; +} + +public Poker_StartGame(handle, dealer) +{ + TableData[handle][E_TABLE_STING_NEW_GAME] = false; + if(Iter_Count(IT_PlayersTable) < 2) + { + TableData[handle][E_TABLE_LOADING_GAME] = false; + return 0; + } + for(new i = 0; i < MAX_PLAYERS; i++) + { + if(!Iter_Contains(IT_PlayersTable, i)) continue; + if(!PlayerData[i][E_PLAYER_TOTAL_CHIPS]) + { + SendPokerMessage(i, "You don't have any chips left."); + SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!"); + SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Ran out of chips]"); + KickPlayerFromTable(i); + ShowPlayerDialog(i, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + } + } + + if(Iter_Count(IT_PlayersTable) < 2) + { + SendTableMessage(handle, "There aren't enough players to start a game"); + TableData[handle][E_TABLE_LOADING_GAME] = false; + return 0; + } + TableData[handle][E_TABLE_LOADING_GAME] = true; + //Add these two players to (currently playing iterator) + foreach(new i: IT_PlayersTable) + { + Player_Clearchat(i); + Iter_Add(IT_PlayersInGame, i); + PlayerPlaySound(i, 1058, 0.0, 0.0, 0.0); + PlayerData[i][E_PLAYER_IS_PLAYING] = true; + ApplyAnimation(i, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.1, 1, 1, 1, 0, 0, 1); + + } + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_BEGIN; //Will prevent players from leaving the table + + foreach(new playerid: IT_PlayersInGame) + { + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], "LD_POKE:cdback"); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], "LD_POKE:cdback"); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + for(new i = 0; i < 6; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + } + } + + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] = 0; + + dealer = GetTurnAfterDealer(handle); + //Select BB, SB in terms of a random dealer + dealer = (dealer == INVALID_PLAYER_ID) ? Iter_Random(IT_PlayersInGame) : dealer; + + new count = Iter_Count(IT_PlayersInGame); + if(count < 2) + { + return -1; + } + else if(count == 2) + { + TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer; + TableData[handle][E_TABLE_DEALER_SEAT] = PlayerData[dealer][E_PLAYER_CURRENT_CHAIR_SLOT]; + TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = dealer; + SendTableMessage(handle, "Player %s has been chosen to be the dealer and big blind in this first stage of the game!", ReturnPlayerName(dealer)); + UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}BB-D", ReturnPlayerName(dealer)); + + //small blind.. + new next_turn = GetTurnAfterPlayer(handle, dealer); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_turn][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}SB", ReturnPlayerName(next_turn)); + SendTableMessage(handle, "Player %s has been chosen to be the small blind in this first stage of the game!", ReturnPlayerName(next_turn)); + TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_turn; + + + } + else + { + + //Dealer + UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}D", ReturnPlayerName(dealer)); + SendTableMessage(handle, "Player %s has been chosen to be the dealer in this first stage of the game!", ReturnPlayerName(dealer)); + TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer; + TableData[handle][E_TABLE_DEALER_SEAT] = PlayerData[dealer][E_PLAYER_CURRENT_CHAIR_SLOT]; + + //Big blind + new next_player = GetTurnAfterPlayer(handle, dealer); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}SB", ReturnPlayerName(next_player)); + SendTableMessage(handle, "Player %s has been chosen to be the Small Blind in this first stage of the game!", ReturnPlayerName(next_player)); + TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_player; + + //Small blind + next_player = GetTurnAfterPlayer(handle, next_player); + SendTableMessage(handle, "Player %s has been chosen to be the Big Blind in this first stage of the game!", ReturnPlayerName(next_player)); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}BB", ReturnPlayerName(next_player)); + TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = next_player; + } + + + foreach(new playerid: IT_PlayersInGame) //loop through the players already in the table + { + if(playerid != TableData[handle][E_TABLE_PLAYER_DEALER_ID] && playerid != TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] && playerid != TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]) + { + UpdateDynamic3DTextLabelTextEx(PlayerData[playerid][E_PLAYER_3D_LABEL], 0x7AC72EFF, "%s", ReturnPlayerName(playerid)); + } + for(new k = 0; k < 6; k++) + { + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][k]); + } + UpdateInfoTextdrawsForPlayer(playerid); + Streamer_Update(playerid); + } + + SendTableMessage(handle, "Dealer is shuffling the pack of cards...!"); + SendTableMessage(handle, "Cards will be handed out in two seconds...!"); + //If everything executes without stop, it wouldn't look that nice for me, so a timer comes handy.. + SetTimerEx("Poker_DealCards", 2000, false, "i", handle); + return 1; +} + + +forward Poker_KickPlayers(handle); +public Poker_KickPlayers(handle) +{ + for(new i = 0; i < MAX_PLAYERS; i++) + { + if(!Iter_Contains(IT_PlayersInGame, i)) continue; + if(!PlayerData[i][E_PLAYER_TOTAL_CHIPS]) + { + if(GetPlayerCash(i) < TableData[handle][E_TABLE_BUY_IN]) + { + SendPokerMessage(i, "You don't have any chips left."); + SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!"); + SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Ran out of chips]"); + KickPlayerFromTable(i); + } + else + { + ShowPlayerDialog(i, DIALOG_BUY_IN, DIALOG_STYLE_MSGBOX, "Buy-In", "You've ran out of chips. Do you want to pay the buy-in fee again to continue playing?", "Yes", "No"); + } + } + } + Iter_Clear(IT_PlayersInGame); + return 1; +} + +stock StartNewPokerGame(handle, time) +{ + //This will allow players to leave before the new game begins. + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + TableData[handle][E_TABLE_STING_NEW_GAME] = true; + + TableData[handle][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[handle][E_TABLE_CHECK_FIRST] = false; + + TableData[handle][E_TABLE_LOADING_GAME] = false; + ResetLabel(handle); + + Iter_Clear(IT_TableCardSet[handle]); + + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + //Never change this order + Iter_Clear(IT_PlayersAllIn); + Iter_Clear(IT_Sidepots[handle]); + + SetTimerEx("Poker_KickPlayers", 1000 * (time - 5), false, "i", handle); + + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[handle][E_TABLE_POT_CHIPS][i] = 0; + Iter_Clear(It_SidepotMembers[_IT[handle][i]]); + } + + if(Iter_Count(IT_PlayersTable) >= 2) + { + SendTableMessage(handle, "Starting a new game in %d seconds...", time); + SetTimerEx("Poker_StartGame", 1000 * time, false, "ii", handle, INVALID_PLAYER_ID); + } + else + { + SendTableMessage(handle, "There are not enough players to start a new game!"); + } + return 1; +} + +stock GetTurnAfterSeat(handle, seat) +{ + seat -= 1; + new target = INVALID_PLAYER_ID; + for(new i = 0, j = TableData[handle][E_TABLE_TOTAL_SEATS]; i < j; i++) + { + if(seat < 0) seat = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][seat]; + if(Iter_Contains(IT_PlayersInGame, target) && !Iter_Contains(IT_PlayersAllIn, target)) + { + break; + } + seat--; + } + if(seat < 0 || seat >= T_MAX_CHAIRS_PER_TABLE) return INVALID_PLAYER_ID; + return target; +} + +stock GetTurnAfterDealer(handle) +{ + new seat = TableData[handle][E_TABLE_DEALER_SEAT]; + new target = GetTurnAfterSeat(handle, seat); + if(target == INVALID_PLAYER_ID) + { + printf("Something went wrong while executing GetTurnAfterPlayer"); + return -1; + } + return target; +} + + +stock GetTurnAfterPlayer(handle, playerid) +{ + /*Finds the ID of the player to the left of 'playerid', skips players not currently playing or empty seats. + The number of iterations it performs is the number of seats in between both players + Worst case would be the number of seats O(n), n = number of seats, O(1) would be the best case (players next to each other) + */ + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] - 1; + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + for(new i = 0, j = TableData[handle][E_TABLE_TOTAL_SEATS]; i < j; i++) + { + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + new const target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + if(Iter_Contains(IT_PlayersInGame, target) && !Iter_Contains(IT_PlayersAllIn, target)) + { + break; + } + slot--; + } + if(slot < 0 || slot >= T_MAX_CHAIRS_PER_TABLE) return INVALID_PLAYER_ID; + new target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + if(!Iter_Contains(IT_PlayersInGame, target)) return INVALID_PLAYER_ID; + new next_player = INVALID_PLAYER_ID; + next_player = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + return next_player; +} +stock GetTurnAfterPlayerEx(handle, playerid) +{ + /*Finds the ID of the player to the left of 'playerid', skips players not currently playing or empty seats. + The number of iterations it performs is the number of seats in between both players + Worst case would be the number of seats O(n), n = number of seats, O(1) would be the best case (players next to each other) + */ + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] - 1; + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + for(new i = 0, j = TableData[handle][E_TABLE_TOTAL_SEATS]; i < j; i++) + { + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + new const target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + if(Iter_Contains(IT_PlayersInGame, target)) + { + break; + } + slot--; + } + new next_player = INVALID_PLAYER_ID; + next_player = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + return next_player; +} +stock Internal_GetFreeChairSlot(handle) +{ + //This goes in reverse (left) + new seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + for(new i = seats; i--; ) + { + if(!TableData[handle][E_TABLE_IS_SEAT_TAKEN][i]) + { + return i; + } + } + return ITER_NONE; +} +stock Internal_AddChairSlot(handle, slot) +{ + TableData[handle][E_TABLE_IS_SEAT_TAKEN][slot] = true; + return 1; +} +stock Internal_RemoveChairSlot(handle, slot) +{ + TableData[handle][E_TABLE_IS_SEAT_TAKEN][slot] = false; + return 1; +} + +stock RemoveChipsFromPlayer( forplayer, amount) +{ + PlayerData[forplayer][E_PLAYER_TOTAL_CHIPS] -= amount; + return 1; +} + +stock AbortGame(handle) +{ + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) return 0; + //Could have used Iter_SafeRemove, prefer not to + for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) + { + if(Iter_Contains(IT_PlayersTable, playerid)) + { + KickPlayerFromTable(playerid); + } + CancelSelectTextDraw(playerid); + } + Iter_Clear(IT_TableCardSet[handle]); + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + return 1; +} + +forward Poker_DealCards(handle); +public Poker_DealCards(handle) +{ + foreach(new playerid: IT_PlayersTable) //loop through the players already in the table + { + if(Iter_Contains(IT_PlayersInGame, playerid)) + { + new seat = TableRotCorrections[TableData[PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]]; + new card1 = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card1); + + + new card2 = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card2); + + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][seat], CardData[card1][E_CARD_TEXTDRAW]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][seat], CardData[card2][E_CARD_TEXTDRAW]); + PlayerData[playerid][E_PLAYER_CARD_VALUES][0] = card1; + PlayerData[playerid][E_PLAYER_CARD_VALUES][1] = card2; + + foreach(new p: IT_PlayersInGame) + { + seat = TableRotCorrections[TableData[PlayerData[p][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[p][E_PLAYER_CURRENT_CHAIR_SLOT]]; + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][seat]); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][seat]); + PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0 ); + } + + PlayerData[playerid][E_PLAYER_CURRENT_BET] = 0; + } + else + { + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], "LD_POKE:cdback"); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], "LD_POKE:cdback"); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + } + + } + //Set variables + + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_PRE_FLOP; + + + + + new big_blind = TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]; + new small_blind = TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]; + + new bool: b_big_blind = (PlayerData[big_blind][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_BIG_BLIND]); + new bool: b_small_blind = (PlayerData[small_blind][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_SMALL_BLIND]); + if(b_big_blind && b_small_blind) + { + PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND]; + SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), TableData[handle][E_TABLE_SMALL_BLIND]); + SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), TableData[handle][E_TABLE_BIG_BLIND]); + new next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]); + TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + SetLastToRaise(handle, next_turn); + RemoveChipsFromPlayer( big_blind, TableData[handle][E_TABLE_BIG_BLIND]); + RemoveChipsFromPlayer( small_blind, TableData[handle][E_TABLE_SMALL_BLIND]); + TableData[handle][E_TABLE_FIRST_TURN] = next_turn; + TableData[handle][E_TABLE_CHECK_FIRST] = true; + SendTurnMessage(handle, next_turn); + + UpdateTable(handle); + } + else + { + new next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]); + SetLastToRaise(handle, next_turn); + if(!b_small_blind) + { + + ForcePlayerAllIn(small_blind, handle, false); + } + else + { + SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), TableData[handle][E_TABLE_SMALL_BLIND]); + RemoveChipsFromPlayer( small_blind, TableData[handle][E_TABLE_SMALL_BLIND]); + PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND]; + } + + if(!b_big_blind) + { + TableData[handle][E_TABLE_LAST_TO_RAISE] = big_blind; + TableData[handle][E_TABLE_LAST_BET] = PlayerData[big_blind][E_PLAYER_TOTAL_CHIPS]; + ForcePlayerAllIn(big_blind, handle, false); + + if(!b_small_blind && GetTurnAfterPlayerEx(handle, next_turn) == small_blind) + { + SetLastToRaise(handle, small_blind); + } + } + else + { + + SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), TableData[handle][E_TABLE_BIG_BLIND]); + RemoveChipsFromPlayer( big_blind, TableData[handle][E_TABLE_BIG_BLIND]); + PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + } + + if(Iter_Contains(IT_PlayersAllIn, next_turn)) + { + CheckPotAndNextTurn(next_turn, handle); + } + else + { + SendTurnMessage(handle, next_turn); + } + UpdateTable(handle); + + } + + return 1; +} + + + +static stock UpdateTable(handle) +{ + foreach(new playerid: IT_PlayersInGame) + { + UpdateInfoTextdrawsForPlayer(playerid); + new const seat = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]; + new str[128 ]; + format(str, sizeof(str), "{34c5db}Chips: {db8d34}$%d\n{db3a34}Last bet: {db8d34}$%d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS], PlayerData[playerid][E_PLAYER_CURRENT_BET]); + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_BET_LABELS][seat], T_BET_LABEL_COLOR, str); + SetChipsValue(handle, PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT], PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + + } + new str[256]; + new tmp[10]; + format(str, sizeof(str), "{59cdff}MP: {ff9059}$%d\n", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]); + SetPotChipsValue(handle, TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]); + if(Iter_Count(IT_Sidepots[handle] > 1)) + { + strcat(str, "{008000}SP:\n{008080}"); + foreach(new i: IT_Sidepots[handle]) + { + if(i == MAIN_POT) continue; + format(tmp, sizeof(tmp), "$%d\n", TableData[handle][E_TABLE_POT_CHIPS][i]); + strcat(str, tmp); + } + } + str[strlen(str)-1] = EOS; + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_POT_LABEL], T_BET_LABEL_COLOR, str); + + return 1; +} +static stock ShowChoicesToPlayer(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + //Call or check + if(TableData[handle][E_TABLE_LAST_BET] == PlayerData[playerid][E_PLAYER_CURRENT_BET]) //check + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], "Check"); + } + else //call + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], "Call"); + } + + //Bet, raise or all in + if(TableData[handle][E_TABLE_LAST_BET] == 0) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "Bet"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_BET; + } + else if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_LAST_BET] + PlayerData[playerid][E_PLAYER_CURRENT_BET]) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "Raise"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_RAISE; + } + else //player doesn't have enough money, only option is to go all in + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "All In"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_ALL_IN; + } + + if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] + PlayerData[playerid][E_PLAYER_CURRENT_BET] <= TableData[handle][E_TABLE_LAST_BET]) + { + //all in and fold are the only options available + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], false); + } + else + { + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], true); + } + for(new i = 0; i < 5; i++) + { + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + + + SelectTextDraw(playerid, 0x00FF00FF); + return 1; +} + +static stock HidePlayerChoices(playerid) +{ + for(new i = 0; i < 5; i++) + { + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + CancelSelectTextDraw(playerid); + return 1; +} + +static stock SendTurnMessage(handle, playerid) +{ + SetPlayerClickedTxt(playerid, false); + SendTableMessage(handle, "{008080}It's %s{008080}'s turn...", ReturnPlayerName(playerid)); + SendPokerMessage(playerid, "It's your turn. You have "#T_MAX_WAIT_TIME" seconds to make a decision."); + TableData[handle][E_TABLE_CURRENT_TURN] = playerid; + PlayerData[playerid][E_PLAYER_TIMER_STARTED] = true; + PlayerData[playerid][E_PLAYER_TIMER_ID] = SetTimerEx("Timer_FoldPlayer", T_MAX_WAIT_TIME * 1000, false, "ii", handle, playerid); + + /*#if T_DEBUGGING_ENABLED == true + T_SendWarning("[CREATE] Timer %d for playerid (%d) was created.", PlayerData[playerid][E_PLAYER_TIMER_ID], playerid ); + #endif*/ + ShowChoicesToPlayer(playerid); + return 1; +} + +stock KillPlayerTurnTimer(playerid, bool: callback = false) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) + { + T_SendWarning("[KillPlayerTurnTimer] Invalid handle passed (%d) for playerid: %d", handle, playerid); + return 0; + } + if(!Iter_Contains(IT_PlayersInGame, playerid)) + { + T_SendWarning("[KillPlayerTurnTimer] Invalid playerid passed: %d, handle: %d, player is not in the game.", playerid, handle); + return 0; + } + if(!PlayerData[playerid][E_PLAYER_TIMER_STARTED]) return 0; + + PlayerData[playerid][E_PLAYER_TIMER_STARTED] = false; + if(!callback) + KillTimer(PlayerData[playerid][E_PLAYER_TIMER_ID]); + + /*#if T_DEBUGGING_ENABLED == true + T_SendWarning("[DESTROY] Timer %d for playerid (%d) was destroyed.", PlayerData[playerid][E_PLAYER_TIMER_ID], playerid ); + #endif*/ + + return 1; +} +forward Timer_FoldPlayer(handle, playerid); +public Timer_FoldPlayer(handle, playerid) +{ + if(TableData[handle][E_TABLE_CURRENT_TURN] == playerid && PlayerData[playerid][E_PLAYER_TIMER_STARTED]) + { + TableData[handle][E_TABLE_CURRENT_TURN] = INVALID_PLAYER_ID; + HidePlayerChoices(playerid); + ShowPlayerDialog(playerid, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + KillPlayerTurnTimer(playerid, true); + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + } + return 1; +} +/* + + GetTurnAfterPlayer(handle, playerid); //Returns the playerid of the next turn (skips players that have gone all in) + GetTurnAfterPlayerEx(handle, playerid); //Returns the playerid of the next turn (does not skip players that went all in) + +*/ + + +forward CheckRounds(handle, bool: start_showdown); +public CheckRounds(handle, bool: start_showdown) +{ + new next_turn = INVALID_PLAYER_ID; + //we can proceed to another round + switch(TableData[handle][E_TABLE_CURRENT_ROUND]) + { + case ROUND_PRE_FLOP: + { + //Display 3 cards now + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_FLOP; + for(new i = 0; i < 3; i++) + { + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][i] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][i], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + } + + SendTableMessage(handle, "{D07035}======================================================================================"); + SendTableMessage(handle, "{D07035} The Flop "); + SendTableMessage(handle, "{D07035}======================================================================================"); + TableData[handle][E_TABLE_LAST_BET] = 0; + + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, true); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterDealer(handle); + SetLastToRaise(handle, next_turn); + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + + + + } + case ROUND_FLOP: + { + //Display 1 card + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_TURN; + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][3] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][3], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][3]); + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + TableData[handle][E_TABLE_LAST_BET] = 0; + + SendTableMessage(handle, "{D07035}======================================================================================"); + SendTableMessage(handle, "{D07035} The Turn "); + SendTableMessage(handle, "{D07035}======================================================================================"); + + + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, true); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterDealer(handle); + SetLastToRaise(handle, next_turn); + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + + } + case ROUND_TURN: + { + //Display 1 more card + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_RIVER; + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][4] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][4], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][4]); + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + TableData[handle][E_TABLE_LAST_BET] = 0; + + SendTableMessage(handle, "{D07035}======================================================================================"); + SendTableMessage(handle, "{D07035} The River "); + SendTableMessage(handle, "{D07035}======================================================================================"); + //SendTableMessage(handle, "%s, %s, %s", CardData[TableData[handle][T_COM_CARDS_VALUES][0]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][1]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][2]][E_CARD_NAME]); + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, false); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterDealer(handle); + SetLastToRaise(handle, next_turn); + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + } + case ROUND_RIVER: + { + CheckShowdown(handle); + //Start a new game + StartNewPokerGame(handle, 8); + + //Show down + } + } + return 1; +} + +stock CheckShowdown(handle) +{ + SendTableMessage(handle, "{F25B13}======================================================================================"); + SendTableMessage(handle, "{F25B13} Showdown "); + SendTableMessage(handle, "{F25B13}======================================================================================"); + + foreach(new p: IT_PlayersTable) //loop through the players already in the table + { + foreach(new k: IT_PlayersInGame) //loop through the players already in the table + { + new seat = TableRotCorrections[TableData[PlayerData[k][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[k][E_PLAYER_CURRENT_CHAIR_SLOT]]; + new card1 = PlayerData[k][E_PLAYER_CARD_VALUES][0]; + new card2 = PlayerData[k][E_PLAYER_CARD_VALUES][1]; + + PlayerTextDrawSetString(p, PlayerData[p][E_PLAYER_CARDS_TXT_1][seat], CardData[card1][E_CARD_TEXTDRAW]); + PlayerTextDrawSetString(p, PlayerData[p][E_PLAYER_CARDS_TXT_2][seat], CardData[card2][E_CARD_TEXTDRAW]); + } + } + if(!Iter_Contains(IT_Sidepots[handle], MAIN_POT)) + { + Iter_Add(IT_Sidepots[handle], MAIN_POT); + foreach(new k: IT_PlayersInGame) //loop through the players already in the table + { + Iter_Add(It_SidepotMembers[_IT[handle][MAIN_POT]], k); + } + } + foreach(new pot_id: IT_Sidepots[handle]) + { + new highest_rank = -0x7FFFFFFF; + new PlayerRanks[MAX_PLAYERS]; + new high_id = INVALID_PLAYER_ID; + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + new card[7]; + card[0] = GetCardNativeIndex(PlayerData[p][E_PLAYER_CARD_VALUES][0]); + card[1] = GetCardNativeIndex(PlayerData[p][E_PLAYER_CARD_VALUES][1]); + card[2] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][0]); + card[3] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][1]); + card[4] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][2]); + card[5] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][3]); + card[6] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][4]); + + PlayerRanks[p] = calculate_hand_worth(card, 7); + + if(PlayerRanks[p] > highest_rank) + { + highest_rank = PlayerRanks[p]; + high_id = p; + } + } + new count = 0; + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(PlayerRanks[p] == highest_rank) + { + count++; + } + } + if(count == 1) + { + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(p == high_id) continue; + ApplyAnimation(p, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + } + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + SendTableMessage(handle, "{9FCF30}Player {FF8000}%s {9FCF30}has won with a {377CC8}%s", ReturnPlayerName(high_id), HAND_RANKS[highest_rank >> 12]); + SendTableMessage(handle, "{9FCF30}Prize: {377CC8}$%d!", TableData[handle][E_TABLE_POT_CHIPS][pot_id]); + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + PlayerData[high_id][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][pot_id]; + } + else + { + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + SendTableMessage(handle, "{9FCF30}Draw! These players have won with a {377CC8}%s:", HAND_RANKS[highest_rank >> 12]); + new amount = TableData[handle][E_TABLE_POT_CHIPS][pot_id] / count; + //new excess = TableData[handle][E_TABLE_POT_CHIPS][pot_id] % count + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(PlayerRanks[p] == highest_rank) + { + SendTableMessage(handle, "{9FCF30}%s", ReturnPlayerName(p)); + PlayerData[p][E_PLAYER_TOTAL_CHIPS] += amount; + } + else + { + ApplyAnimation(p, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + } + } + SendTableMessage(handle, "{9FCF30}Each receives 1/%d of the total pot available.", count); + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + } + UpdateTable(handle); + } + return 1; +} +stock CheckPotAndNextTurn(playerid, handle) +{ + if(GetPVarInt(playerid, "t_Clicked")) + { + SetPVarInt(playerid, "t_Clicked", 0); + } + new next_turn = INVALID_PLAYER_ID; + HidePlayerChoices(playerid); + new bool: is_cycle_complete = false; + + next_turn = GetTurnAfterPlayer(handle, playerid); + new last_to_raise = TableData[handle][E_TABLE_LAST_TO_RAISE]; + + + if(next_turn == INVALID_PLAYER_ID){ + is_cycle_complete = true; + } + + if(!is_cycle_complete) + { + if(next_turn == last_to_raise || next_turn == playerid) + { + is_cycle_complete = true; + } + else + { + //further checking + if(Iter_Count(IT_PlayersAllIn)) + { + new next_player = INVALID_PLAYER_ID; + new last_player = playerid; + for(new i = 0; i < Iter_Count(IT_PlayersInGame); i++) + { + next_player = GetTurnAfterPlayerEx(handle, last_player); + if(!Iter_Contains(IT_PlayersAllIn, next_player)) break; + if(next_player == last_to_raise) + { + is_cycle_complete = true; + break; + } + last_player = next_player; + } + } + + } + + if(!is_cycle_complete) + { + if(!Iter_Contains(IT_PlayersInGame, last_to_raise)) + { + new const total_seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + new slot = GetPlayerSeat(playerid) - 1; + if(slot < 0) slot = total_seats - 1; + new next_slot = ITER_NONE; + for(new i = 0; i < total_seats; i++) + { + if(slot < 0) slot = total_seats - 1; + next_slot = slot; + new player = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][next_slot]; + if(Iter_Contains(IT_PlayersInGame, player)) break; + + if(next_slot == TableData[handle][E_TABLE_LAST_TO_RAISE_SEAT]) + { + is_cycle_complete = true; + break; + } + slot--; + } + } + + } + } + + + if(TableData[handle][E_TABLE_FIRST_TURN] == playerid && TableData[handle][E_TABLE_CHECK_FIRST] && PlayerData[playerid][E_PLAYER_FOLDED]) + { + new turn = GetTurnAfterPlayer(handle, playerid); + SetLastToRaise(handle, turn); + is_cycle_complete = false; + TableData[handle][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[handle][E_TABLE_CHECK_FIRST] = false; + } + + PlayerData[playerid][E_PLAYER_FOLDED] = false; + if(is_cycle_complete) + { + if(Iter_Count(IT_PlayersAllIn)) + { + /*================================================================================================== + Main pot and sidepot creation + ==================================================================================================*/ + + for(new i = 0; i < Iter_Count(IT_PlayersInGame); i++) + { + new p_count = 0; + new min_bet = cellmax; + foreach(new player: IT_PlayersInGame) + { + new const player_bet = PlayerData[player][E_PLAYER_CURRENT_BET]; + if(!player_bet) continue; + if(player_bet < min_bet) + { + min_bet = player_bet; + } + p_count++; + } + if(!p_count || p_count == 1) + { + break; + } + else //greater than two players + { + new pot_id = Iter_Free(IT_Sidepots[handle]); + TableData[handle][E_TABLE_POT_CHIPS][pot_id] += min_bet * p_count; + foreach(new player: IT_PlayersInGame) + { + if(!PlayerData[player][E_PLAYER_CURRENT_BET]) continue; + PlayerData[player][E_PLAYER_CURRENT_BET] -= min_bet; + Iter_Add(It_SidepotMembers[_IT[handle][pot_id]], player); + } + Iter_Add(IT_Sidepots[handle], pot_id); + } + } + //Return any excess + foreach(new player: IT_PlayersInGame) + { + if(!PlayerData[player][E_PLAYER_CURRENT_BET]) continue; + PlayerData[player][E_PLAYER_TOTAL_CHIPS] += PlayerData[player][E_PLAYER_CURRENT_BET]; + } + } + else + { + foreach(new player: IT_PlayersInGame) + { + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] += PlayerData[player][E_PLAYER_CURRENT_BET]; + } + UpdateTable(handle); + } + + new const all_in = Iter_Count(IT_PlayersAllIn); + new const current_players = Iter_Count(IT_PlayersInGame); + if(all_in == current_players || all_in == current_players - 1) + { + CheckRounds(handle, true); + } + else + { + CheckRounds(handle, false); + } + } + else + { + SendTurnMessage(handle, next_turn); + } + UpdateTable(handle); + return 1; +} + +stock bool: FoldPlayer(handle, playerid) +{ + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + PlayerData[playerid][E_PLAYER_FOLDED] = true; + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, "{2DD9A9} * * %s folds.. * *", ReturnPlayerName(playerid)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{D6230A}** FOLDS ** "); + + PlayerData[playerid][E_PLAYER_IS_PLAYING] = false; + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] += PlayerData[playerid][E_PLAYER_CURRENT_BET]; + HidePlayerChoices(playerid); + Iter_Remove(IT_PlayersInGame, playerid); + new count = Iter_Count(IT_PlayersInGame); + if(count == 1) + { + Iter_Remove(IT_PlayersInGame, playerid); + new winner = Iter_First(IT_PlayersInGame); + HidePlayerChoices(winner); + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + SendTableMessage(handle, "{9FCF30}Player {FF8000}%s {9FCF30}has won the game!", ReturnPlayerName(winner)); + SendTableMessage(handle, "{9FCF30}Prize: {377CC8}$%d!", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]); + SendTableMessage(handle, "{9FCF30}****************************************************************************************"); + PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]; + PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += PlayerData[winner][E_PLAYER_CURRENT_BET]; + UpdateTable(handle); + StartNewPokerGame(handle, 8); + TableData[handle][E_TABLE_CURRENT_TURN] = INVALID_PLAYER_ID; + return true; + } + else if(!count) + { + Iter_Remove(IT_PlayersInGame, playerid); + //Might happen if all the players disconnect + AbortGame(handle); + return true; + } + else if(TableData[handle][E_TABLE_CURRENT_TURN] == playerid) + { + KillTimer(PlayerData[playerid][E_PLAYER_TIMER_ID]); + PlayerData[playerid][E_PLAYER_TIMER_STARTED] = false; + return false; + } + else + { + return false; + } +} +hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) +{ + if(PlayerData[playerid][E_PLAYER_IS_PLAYING]) + { + + if(GetPlayerClickedTxt(playerid)) return 1; + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD]) + { + //Fold + SetPlayerClickedTxt(playerid, true); + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + } + else if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL]) + { + //Call or check + if(TableData[handle][E_TABLE_LAST_BET] == PlayerData[playerid][E_PLAYER_CURRENT_BET]) //check + { + SetPlayerClickedTxt(playerid, true); + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, "{2DD9A9} * * %s checks .. * *", ReturnPlayerName(playerid)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CHECKS ** "); + } + else //call + { + new dif = TableData[handle][E_TABLE_LAST_BET] - PlayerData[playerid][E_PLAYER_CURRENT_BET]; + if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] >= dif) + { + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, "{2DD9A9} * * %s calls $%d .. * *", ReturnPlayerName(playerid), dif); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CALLS $%d ** ", dif); + RemoveChipsFromPlayer( playerid, dif); + PlayerData[playerid][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_LAST_BET]; + SetPlayerClickedTxt(playerid, true); + } + else + { + SendPokerMessage(playerid, "ERROR: You can't call as you don't have enough chips. You have two possible options: going all in or folding."); + return 1; + } + + } + CheckPotAndNextTurn(playerid, handle); + } + else if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE]) + { + switch(PlayerData[playerid][E_PLAYER_RCHOICE]) + { + case E_RAISE_BET: + { + SendPokerMessage(playerid, "Please enter an amount to bet, the total amount of chips you current have is: %d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + ShowPlayerRaiseDialog(playerid); + HidePlayerChoices(playerid); + } + case E_RAISE_RAISE: + { + SendPokerMessage(playerid, "Please enter an amount to raise, the total amount of chips you current have is: %d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + HidePlayerChoices(playerid); + ShowPlayerRaiseDialog(playerid); + } + case E_RAISE_ALL_IN: + { + ForcePlayerAllIn(playerid, handle); + SetPlayerClickedTxt(playerid, true); + } + } + } + } + return 1; +} + + +stock ForcePlayerAllIn(playerid, handle, bool:checkpot = true) +{ + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Idle_Loop", 4.1, 1, 1, 1, 0, 0, 1); + KillPlayerTurnTimer(playerid); + Iter_Add(IT_PlayersAllIn, playerid); + new raise = PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] + PlayerData[playerid][E_PLAYER_CURRENT_BET]; + PlayerData[playerid][E_PLAYER_CURRENT_BET] = raise; + SendTableMessage(handle, "{2DD9A9} * * %s goes all in with $%d .. * *", ReturnPlayerName(playerid), raise); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with $%d ** ", raise); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = 0; + if(checkpot) + CheckPotAndNextTurn(playerid, handle); + return 1; +} + +stock ShowPlayerRaiseDialog(playerid) +{ + return ShowPlayerDialogEx(playerid, DIALOG_INPUT_RAISE, DIALOG_STYLE_INPUT, "{FF8000}Input", "Submit", "Cancel", "{FFFFFF}Please input the desired amount of chips: \n{FFFFFF}You may type {FF8000}%d {FFFFFF} if you want to go All In\n", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); +} +hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) +{ + if(dialogid == DIALOG_BUY_IN) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(response) + { + GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN]; + SendTableMessage(handle, "Player %s has paid the buy-in fee of $%d chips to keep playing.", ReturnPlayerName(playerid), TableData[handle][E_TABLE_BUY_IN]); + } + else + { + SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Failure to pay the buy-in fee]"); + KickPlayerFromTable(playerid); + } + } + if(dialogid == DIALOG_INPUT_RAISE) + { + if(response) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) return 0; + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) + { + SendPokerMessage(playerid, "There isn't any active game at the moment."); + return 0; + } + if(!Iter_Contains(IT_PlayersInGame, playerid)) + { + return 0; + } + new raise = 0; + if(sscanf(inputtext, "d", raise)) + { + SendPokerMessage(playerid, "Input must be numeric."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + if(raise < 0) + { + SendPokerMessage(playerid, "Input must be greater than 0."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise > PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]) + { + SendPokerMessage(playerid, "You don't have that many chips available."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise <= TableData[handle][E_TABLE_LAST_BET]) + { + SendPokerMessage(playerid, "Value must be greater than the last bet: $%d", TableData[handle][E_TABLE_LAST_BET]); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise == PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]) + { + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Idle_Loop", 4.1, 1, 1, 1, 0, 0, 1); + KillPlayerTurnTimer(playerid); + //all in - not mandatory + SendTableMessage(handle, "{2DD9A9} * * %s goes all in with $%d .. * *", ReturnPlayerName(playerid), raise); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with $%d ** ", raise); + Iter_Add(IT_PlayersAllIn, playerid); + RemoveChipsFromPlayer( playerid, raise); + SetLastToRaise(handle, playerid); + + PlayerData[playerid][E_PLAYER_CURRENT_BET] += raise; + TableData[handle][E_TABLE_LAST_BET] = PlayerData[playerid][E_PLAYER_CURRENT_BET]; + CheckPotAndNextTurn(playerid, handle); + + } + else + { + KillPlayerTurnTimer(playerid); + new dif = raise - PlayerData[playerid][E_PLAYER_CURRENT_BET]; + TableData[handle][E_TABLE_LAST_BET] = raise; + SetLastToRaise(handle, playerid); + PlayerData[playerid][E_PLAYER_CURRENT_BET] = raise; + RemoveChipsFromPlayer( playerid, dif); + if(PlayerData[playerid][E_PLAYER_RCHOICE] == E_RAISE_BET) + { + SendTableMessage(handle, "{2DD9A9} * * %s bets $%d .. * *", ReturnPlayerName(playerid), raise); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** BETS $%d ** "); + } + else + { + SendTableMessage(handle, "{2DD9A9} * * %s raises to $%d .. * *", ReturnPlayerName(playerid), raise); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** RAISES to $%d ** ", raise); + } + CheckPotAndNextTurn(playerid, handle); + } + } + else + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) return 1; + if(TableData[handle][E_TABLE_CURRENT_TURN] == playerid) + { + SetPlayerClickedTxt(playerid, false); + ShowChoicesToPlayer(playerid); + } + else + { + ShowPlayerDialog(playerid, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + + } + } + } + return 1; +} + +hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) +{ + + if(PRESSED(KEY_SECONDARY_ATTACK)) + { + new handle = GetClosestTableForPlayer(playerid); + if(handle != ITER_NONE) + { + if(!Iter_Contains(IT_PlayersTable, playerid)) + { + if(IsPlayerInRangeOfTable(playerid, handle, T_JOIN_TABLE_RANGE)) + { + AddPlayerToTable(playerid, handle); + } + } + else + { + if((Iter_Contains(IT_PlayersInGame, playerid) && TableData[handle][E_TABLE_CURRENT_STATE] == STATE_BEGIN) + || TableData[T_MAX_POKER_TABLES][E_TABLE_LOADING_GAME]) + { + SendPokerMessage(playerid, "You cannot exit this table as there's currently an active match under process."); + return 0; + } + KickPlayerFromTable(playerid); + } + } + } + return 1; + +} + +#if defined AC_INCLUDED +hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart ) +#else +hook OnPlayerDeath(playerid, killerid, reason) +#endif +{ + if(GetPVarInt(playerid, "t_is_in_table")) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + + SendTableMessage(handle, "Player %s has died and has been kicked out from the table.", ReturnPlayerName(playerid)); + KickPlayerFromTable(playerid); + } + return 1; +} + +hook OnPlayerDisconnect(playerid, reason) +{ + if(GetPVarInt(playerid, "t_is_in_table")) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + + SendTableMessage(handle, "Player %s has disconnected and has been kicked out from the table.", ReturnPlayerName(playerid)); + KickPlayerFromTable(playerid); + } + return 1; +} + +hook OnGameModeExit() +{ + for(new i = 0; i < T_MAX_POKER_TABLES; i++) + { + if(!Iter_Contains(IT_Tables, i)) continue; + DestroyPokertable(i); + memcpy(TableData[i], TableData[T_MAX_POKER_TABLES], 0, sizeof(TableData[]) * 4, sizeof(TableData[])); + } + return 1; +} + +hook OnGameModeInit() +{ + //Setting values to dummy arrays + + //Player data: + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_HANDLE] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_CHAIR_SLOT] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CHAIR_ATTACH_INDEX_ID] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_IS_PLAYING] = false; + PlayerData[MAX_PLAYERS][E_PLAYER_TIMER_STARTED] = false; + PlayerData[MAX_PLAYERS][E_PLAYER_CARD_VALUES][0] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CARD_VALUES][1] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_BET] = 0; + PlayerData[MAX_PLAYERS][E_PLAYER_TOTAL_CHIPS] = 0; + PlayerData[MAX_PLAYERS][E_PLAYER_FOLDED] = false; + + TableData[T_MAX_POKER_TABLES][E_TABLE_STING_NEW_GAME] = false; + //Table data + TableData[T_MAX_POKER_TABLES][E_TABLE_TOTAL_SEATS] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_LOADING_GAME] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_CHECK_FIRST] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_CURRENT_STATE] = STATE_IDLE; + TableData[T_MAX_POKER_TABLES][E_TABLE_BUY_IN] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SMALL_BLIND] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_VIRTUAL_WORLD] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_INTERIOR] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_BIG_BLIND] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_X] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_Y] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_Z] = 0.0; + + TableData[T_MAX_POKER_TABLES][E_TABLE_OBJECT_IDS][0] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_OBJECT_IDS][1] = 0; + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[T_MAX_POKER_TABLES][E_TABLE_CHAIR_OBJECT_IDS][i] = INVALID_OBJECT_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_IS_SEAT_TAKEN][i] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_CHAIR_PLAYER_ID][i] = INVALID_PLAYER_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_X][i] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_Y][i] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_Z][i] = 0.0; + TableChips[T_MAX_POKER_TABLES][i][0] = 0; + TableChips[T_MAX_POKER_TABLES][i][1] = 0; + TableChips[T_MAX_POKER_TABLES][i][2] = 0; + TableChips[T_MAX_POKER_TABLES][i][3] = 0; + } + T_SendWarning("TPoker by ThreeKingz has been succesfully loaded!"); + return 1; +} + +/****************************************************************************************** + Commands +*******************************************************************************************/ + + +CMD:ctable(playerid, params[]) +{ + if(!IsPlayerAdmin(playerid)) return 0; + new seats, small_blind, buy_in; + if(sscanf(params, "ddd", seats, small_blind, buy_in)) + { + SendPokerMessage(playerid, "/ctable [number of seats] [small blind] [buy in]"); + return 1; + } + //Assumes the player is on a flat surface + new Float:Pos[3]; + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + new table = CreatePokerTable(buy_in, small_blind, Pos[0], Pos[1], Pos[2]-0.6, seats, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); + SendPokerMessage(playerid, "You have created table ID: %d | Small blind: $%d | Big blind: $%d | Buy In: $%d | Seats: %d", table, small_blind, small_blind*2, buy_in, seats); + return 1; +} +CMD:dtable(playerid, params[]) +{ + if(!IsPlayerAdmin(playerid)) return 0; + new ptable = 0; + if(sscanf(params, "d", ptable)) + { + SendClientMessage(playerid, 0x3E969FFF, "/ctable [pokertable ID]"); + return 1; + } + if(!IsValidTable(ptable)) + { + SendClientMessageFormatted(playerid, 0x3E969FFF, "Invalid pokertable ID"); + return 1; + } + SendPokerMessage(playerid, "You have deleted poker table ID: %d", ptable); + DestroyPokertable(ptable); + return 1; +} + + +CMD:agame(playerid, params[]) +{ + if(!IsPlayerAdmin(playerid)) return 0; + new ptable; + if(sscanf(params, "d", ptable)) + { + SendPokerMessage(playerid, "/agame [table ID]"); + SendPokerMessage(playerid, "Will abort a game if started, ejecting all the players out of the table."); + return 1; + } + if(!IsValidTable(ptable)) + { + SendClientMessageFormatted(playerid, 0x3E969FFF, "Invalid pokertable ID"); + return 1; + } + if(AbortGame(ptable)) + { + SendPokerMessage(playerid, "You have successfully aborted the game on table ID: %d", ptable); + } + else + { + SendPokerMessage(playerid, "No game has started in this table yet."); + } + return 1; +} diff --git a/pawno/include/irresistible/features/visage/poker.old.inc b/pawno/include/irresistible/features/visage/poker.old.inc new file mode 100644 index 0000000..8c1e000 --- /dev/null +++ b/pawno/include/irresistible/features/visage/poker.old.inc @@ -0,0 +1,2327 @@ +/****************************************************************************************** + + TPoker + + Texas Hold'em Poker Implementation + + Copyright (C) 2018 ThreeKingz (Freddy Borja) + + https://github.com/ThreeKingz + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*******************************************************************************************/ + +#include +#include +#include + +forward bool: FoldPlayer(handle, playerid); + +/* + native calculate_hand_worth(const hands[], count = sizeof(hands)); + + * hands[]: an array containing the cards to analyze (between 1 to 7 cards) + * count: the number of cards to analyze (between 1 to 7 cards) +*/ + +native calculate_hand_worth(const hands[], count = sizeof(hands)); + +/****************************************************************************************** + Utils +*******************************************************************************************/ +stock SetPlayerChatBubbleEx(playerid, color, Float:drawdistance, expiretime, const format[], va_args<>) +{ + return SetPlayerChatBubble(playerid, va_return(format, va_start<5>), color, drawdistance, expiretime); +} + +stock UpdateDynamic3DTextLabelTextEx(STREAMER_TAG_3D_TEXT_LABEL id, color, const format[], va_args<>) +{ + return UpdateDynamic3DTextLabelText(id, color, va_return(format, va_start<3>)); +} + +stock ShowPlayerDialogEx(playerid, dialogid, style, caption[], button1[], button2[], const format[], va_args<>) +{ + return ShowPlayerDialog(playerid, dialogid, style, caption, va_return(format, va_start<7>), button1, button2); +} + +/****************************************************************************************** + Constants +*******************************************************************************************/ + +// Limits +#define T_MAX_POKER_TABLES 30 +#define T_MAX_CHAIRS_PER_TABLE 7 +#define T_CHAIR_MODEL 2120 +#define T_MAX_CHIPS_PER_CHAIR 4 +#define T_MAX_WAIT_TIME 20 // 20 seconds to make a choice +#define T_START_DELAY 5 // 5 seconds +#define T_SAVE_PLAYER_POS true +#define MAX_CHIP_DIGITS 8 // Max number the chips can express 10^(MAX_CHIP_DIGITS) - 1 + +// Layout and design +#define T_Z_OFFSET 0.442852 +#define T_CHAIR_RANGE 1.250000 +#define T_Z_CAMERA_OFFSET 3.0 +#define T_CHIP_OFFSET 0.13 + +// Length and width of cards +#define T_CARD_X_SIZE 21.000000 +#define T_CARD_Y_SIZE 29.000000 +#define T_TWO_CARD_DISTANCE 23.904725 // Distance between the two cards each player receives +#define T_CARDS_RADIAL_DISTANCE 144.00000 // Distance from the first card to the center of the table +#define T_SCREEN_CENTER_X 320.00000 +#define T_SCREEN_CENTER_Y 215.00000 +#define T_CHIPS_DISTANCE 0.6582 +#define T_RADIUS 0.971977 +#define T_BET_LABEL_COLOR 0x0080FFFF +#define T_JOIN_TABLE_RANGE 2.5 // Radial distance required to enter a table + +// Textdraw constants +#define MAIN_POT 0 +#define CALL 2 +#define RAISE 3 +#define FOLD 4 + +// Dialog ids +#define DIALOG_BUY_IN 20000 +#define DIALOG_INPUT_RAISE 20001 + +// Macros +#define _IT[%0][%1] %0*T_MAX_POKER_TABLES+%1 +#define IsValidTable(%0) ((0 <= %0 < T_MAX_POKER_TABLES) && Iter_Contains(IT_Tables, %0)) +#define SendPokerMessage(%0,%1) (SendClientMessageFormatted(%0, -1, "{C0C0C0}[POKER] {FFFFFF}" # %1)) + +/****************************************************************************************** + Enums and arrays +*******************************************************************************************/ + +/* Iterators */ + +new Iterator:IT_Tables; +new Iterator:IT_TableCardSet[T_MAX_POKER_TABLES]<52>; //Card sample space + +new Iterator:IT_PlayersTable; //Current players in the table (might not be playing but just looking the rest of the players play) +new Iterator:IT_PlayersInGame; //Current players in the table playing +new Iterator:IT_PlayersAllIn; + +//Syntax: It_SidepotMembers[_IT[idx_table][idx_chair_slot]] +new Iterator:It_SidepotMembers[T_MAX_POKER_TABLES * T_MAX_CHAIRS_PER_TABLE]; +new Iterator:IT_Sidepots[T_MAX_POKER_TABLES]; + +enum E_TABLE_STATES +{ + STATE_IDLE, + STATE_BEGIN, //Game has started +} + +//Rankings: from lowest to highest +new const HAND_RANKS[][] = +{ + {"Undefined"}, //will never occur + {"High Card"}, + {"Pair"}, + {"Two Pair"}, + {"Three of a Kind"}, + {"Straight"}, + {"Flush"}, + {"Full House"}, + {"Four of a Kind"}, + {"Straight Flush"}, + {"Royal Flush"} +}; +enum E_CARD_SUITS +{ + SUIT_SPADES, + SUIT_HEARTS, + SUIT_CLUBS, + SUIT_DIAMONDS +}; + +enum E_CARD_DATA +{ + E_CARD_TEXTDRAW[48], + E_CARD_NAME[48], + E_CARD_SUITS:E_CARD_SUIT, + E_CARD_RANK +}; + + +new const CardData[ 52 ] [E_CARD_DATA] = { + + //Spades + {"LD_CARD:cd2s", "Two of Spades", SUIT_SPADES, 0}, + {"LD_CARD:cd3s", "Three of Spades", SUIT_SPADES, 1}, + {"LD_CARD:cd4s", "Four of Spades", SUIT_SPADES, 2}, + {"LD_CARD:cd5s", "Five of Spades", SUIT_SPADES, 3}, + {"LD_CARD:cd6s", "Six of Spades", SUIT_SPADES, 4}, + {"LD_CARD:cd7s", "Seven of Spades", SUIT_SPADES, 5}, + {"LD_CARD:cd8s", "Eight of Spades", SUIT_SPADES, 6}, + {"LD_CARD:cd9s", "Nine of Spades", SUIT_SPADES, 7}, + {"LD_CARD:cd10s", "Ten of Spades", SUIT_SPADES, 8}, + {"LD_CARD:cd11s", "Jack of Spades", SUIT_SPADES, 9}, + {"LD_CARD:cd12s", "Queen of Spades", SUIT_SPADES, 10}, + {"LD_CARD:cd13s", "King of Spades", SUIT_SPADES, 11}, + {"LD_CARD:cd1s", "Ace of Spades", SUIT_SPADES, 12}, + + //Hearts + {"LD_CARD:cd2h", "Two of Hearts", SUIT_HEARTS, 0}, + {"LD_CARD:cd3h", "Three of Hearts", SUIT_HEARTS, 1}, + {"LD_CARD:cd4h", "Four of Hearts", SUIT_HEARTS, 2}, + {"LD_CARD:cd5h", "Five of Hearts", SUIT_HEARTS, 3}, + {"LD_CARD:cd6h", "Six of Hearts", SUIT_HEARTS, 4}, + {"LD_CARD:cd7h", "Seven of Hearts", SUIT_HEARTS, 5}, + {"LD_CARD:cd8h", "Eight of Hearts", SUIT_HEARTS, 6}, + {"LD_CARD:cd9h", "Nine of Hearts", SUIT_HEARTS, 7}, + {"LD_CARD:cd10h", "Ten of Hearts", SUIT_HEARTS, 8}, + {"LD_CARD:cd11h", "Jack of Hearts", SUIT_HEARTS, 9}, + {"LD_CARD:cd12h", "Queen of Hearts", SUIT_HEARTS, 10}, + {"LD_CARD:cd13h", "King of Hearts", SUIT_HEARTS, 11}, + {"LD_CARD:cd1h", "Ace of Hearts", SUIT_HEARTS, 12}, + + //Clubs + {"LD_CARD:cd2c", "Two of Clubs", SUIT_CLUBS, 0}, + {"LD_CARD:cd3c", "Three of Clubs", SUIT_CLUBS, 1}, + {"LD_CARD:cd4c", "Four of Clubs", SUIT_CLUBS, 2}, + {"LD_CARD:cd5c", "Five of Clubs", SUIT_CLUBS, 3}, + {"LD_CARD:cd6c", "Six of Clubs", SUIT_CLUBS, 4}, + {"LD_CARD:cd7c", "Seven of Clubs", SUIT_CLUBS, 5}, + {"LD_CARD:cd8c", "Eight of Clubs", SUIT_CLUBS, 6}, + {"LD_CARD:cd9c", "Nine of Clubs", SUIT_CLUBS, 7}, + {"LD_CARD:cd10c", "Ten of Clubs", SUIT_CLUBS, 8}, + {"LD_CARD:cd11c", "Jack of Clubs", SUIT_CLUBS, 9}, + {"LD_CARD:cd12c", "Queen of Clubs", SUIT_CLUBS, 10}, + {"LD_CARD:cd13c", "King of Clubs", SUIT_CLUBS, 11}, + {"LD_CARD:cd1c", "Ace of Clubs", SUIT_CLUBS, 12}, + + //Diamonds + {"LD_CARD:cd2d", "Two of Diamonds", SUIT_DIAMONDS, 0}, + {"LD_CARD:cd3d", "Three of Diamonds", SUIT_DIAMONDS, 1}, + {"LD_CARD:cd4d", "Four of Diamonds", SUIT_DIAMONDS, 2}, + {"LD_CARD:cd5d", "Five of Diamonds", SUIT_DIAMONDS, 3}, + {"LD_CARD:cd6d", "Six of Diamonds", SUIT_DIAMONDS, 4}, + {"LD_CARD:cd7d", "Seven of Diamonds", SUIT_DIAMONDS, 5}, + {"LD_CARD:cd8d", "Eight of Diamonds", SUIT_DIAMONDS, 6}, + {"LD_CARD:cd9d", "Nine of Diamonds", SUIT_DIAMONDS, 7}, + {"LD_CARD:cd10d", "Ten of Diamonds", SUIT_DIAMONDS, 8}, + {"LD_CARD:cd11d", "Jack of Diamonds", SUIT_DIAMONDS, 9}, + {"LD_CARD:cd12d", "Queen of Diamonds", SUIT_DIAMONDS, 10}, + {"LD_CARD:cd13d", "King of Diamonds", SUIT_DIAMONDS, 11}, + {"LD_CARD:cd1d", "Ace of Diamonds", SUIT_DIAMONDS, 12} +}; + + +//Card rank = (array index % 13) | Card native index = 4 * rank + suit +#define GetCardNativeIndex(%0) ((4*((%0) % 13))+_:CardData[(%0)][E_CARD_SUIT]) + +new const TableRotCorrections[][] = +{ + {-1, -1, -1, -1, -1, -1},//0seats + {-1, -1, -1, -1, -1, -1},//1 seat + { 1, 0, -1, -1, -1, -1},//2 seats + { 1, 0, 2, -1, -1, -1},//3 seats + { 1, 0, 3, 2, -1, -1},//4 seats + { 1, 0, 4, 3, 2, -1},//5 seats + { 1, 0, 5, 4, 3, 2} //6 seats +}; + +new const colors[MAX_CHIP_DIGITS] = +{ + 0xFF0080C0,//1 + 0xFF008000,//10 + 0xFF324A4E,//100 + 0xFF7C4303,//1,000 + 0xFF63720E,//10,000 + 0xFFE2C241,//100,000 + 0xFFE4603F,//1,000,000 + 0xFFCD270A //100,000,000 + //0xFFFF2424, //1,000,000,000 + //0xFFFF2424, //10,000,000,000 + +}; + +new const chip_text[MAX_CHIP_DIGITS][8] = +{ + {"$1"}, + {"$10"}, + {"$100"}, + {"$1K"}, + {"$10K"}, + {"$100K"}, + {"$1M"}, + {"$10M"} + //{"$100M"} + //{"$1,000M"} +}; +/*============*/ + +enum E_TABLE_ROUNDS +{ + ROUND_PRE_FLOP, //no community cards displayed yet + ROUND_FLOP, + ROUND_TURN, //4th com card is shown + ROUND_RIVER //5th community card is shown +}; + +enum e_TABLE +{ + E_TABLE_BUY_IN, + E_TABLE_SMALL_BLIND, + E_TABLE_BIG_BLIND, + E_TABLE_LAST_TO_RAISE, + E_TABLE_CURRENT_TURN, + E_TABLE_LAST_BET, + E_TABLE_STATES:E_TABLE_CURRENT_STATE, + E_TABLE_PLAYER_DEALER_ID, + E_TABLE_PLAYER_BIG_BLIND_ID, + E_TABLE_PLAYER_SMALL_BLIND_ID, + bool:E_TABLE_CHECK_FIRST, + E_TABLE_FIRST_TURN, + //============SIDEPOTS=================== + E_TABLE_POT_CHIPS[T_MAX_CHAIRS_PER_TABLE], + + //======================================= + bool: E_TABLE_TIMER_STARTED, + E_TABLE_OBJECT_IDS[2], //Two objects (models 2111 and 2189) + Float:E_TABLE_POS_X, + Float:E_TABLE_POS_Y, + Float:E_TABLE_POS_Z, + E_TABLE_ROUNDS: E_TABLE_CURRENT_ROUND, + E_TABLE_TOTAL_SEATS, + E_TABLE_TIMER_ID, + bool: E_TABLE_LOADING_GAME, + bool: E_TABLE_STING_NEW_GAME, + E_TABLE_COM_CARDS_VALUES[5], + Text3D:E_TABLE_POT_LABEL, + + Text3D:E_TABLE_BET_LABELS[T_MAX_CHAIRS_PER_TABLE], + E_TABLE_CHAIR_OBJECT_IDS[T_MAX_CHAIRS_PER_TABLE], + bool:E_TABLE_IS_SEAT_TAKEN[T_MAX_CHAIRS_PER_TABLE], + E_TABLE_CHAIR_PLAYER_ID[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_X[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_Y[T_MAX_CHAIRS_PER_TABLE], + Float:E_TABLE_SEAT_POS_Z[T_MAX_CHAIRS_PER_TABLE], + + E_TABLE_CHIPS[MAX_CHIP_DIGITS], + E_TABLE_CHIPS_LABEL[MAX_CHIP_DIGITS] +}; +new TableData[T_MAX_POKER_TABLES + 1][e_TABLE]; +new TableChips[T_MAX_POKER_TABLES + 1][T_MAX_CHAIRS_PER_TABLE][MAX_CHIP_DIGITS]; +new TableChipsLabel[T_MAX_POKER_TABLES + 1][T_MAX_CHAIRS_PER_TABLE][MAX_CHIP_DIGITS]; + +#define SetTableFirstTurn(%0,%1) TableData[(%0)][E_TABLE_FIRST_TURN]=%1 +#define GetTableFirstTurn(%0) (TableData[(%0)][E_TABLE_FIRST_TURN]) + +enum E_RAISE_CHOICES +{ + E_RAISE_BET, + E_RAISE_RAISE, + E_RAISE_ALL_IN +}; +enum e_PLAYER +{ + bool: E_PLAYER_IS_PLAYING, + E_PLAYER_CURRENT_HANDLE, + E_PLAYER_CURRENT_BET, + E_PLAYER_CARD_VALUES[2], + E_PLAYER_TOTAL_CHIPS, + bool: E_PLAYER_CLICKED_TXT, + E_PLAYER_TIMER_ID, + bool:E_PLAYER_TIMER_STARTED, + bool:E_PLAYER_FOLDED, + //Textdraws + E_RAISE_CHOICES: E_PLAYER_RCHOICE, + PlayerText: E_PLAYER_COMMUNITY_CARDS_TXT[5], //5 cards + PlayerText: E_PLAYER_CARDS_TXT_1[T_MAX_CHAIRS_PER_TABLE], + PlayerText: E_PLAYER_CARDS_TXT_2[T_MAX_CHAIRS_PER_TABLE], + PlayerText: E_PLAYER_CHOICES_TXT[5], + PlayerText: E_PLAYER_INFO_TXT[6], + Text3D:E_PLAYER_3D_LABEL, + /*******/ + E_PLAYER_CURRENT_CHAIR_SLOT, + E_PLAYER_CHAIR_ATTACH_INDEX_ID +}; + +new PlayerData[MAX_PLAYERS + 1][e_PLAYER]; + + + +stock SetPlayerClickedTxt(playerid, bool:choice) +{ + PlayerData[playerid][E_PLAYER_CLICKED_TXT] = choice; + return 1; +} +#define GetPlayerClickedTxt(%0) (PlayerData[(%0)][E_PLAYER_CLICKED_TXT]) + + +forward Poker_StartGame(handle, dealer); + + +stock GetClosestTableForPlayer(playerid) +{ + new const Float:infinity = Float:0x7F800000; + new Float:tmpdist = infinity; + new Float:Pos[3]; + new handle = ITER_NONE; + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + foreach(new i: IT_Tables) + { + new const Float:dist = VectorSize(Pos[0]-TableData[i][E_TABLE_POS_X], Pos[1]-TableData[i][E_TABLE_POS_Y], Pos[2]-TableData[i][E_TABLE_POS_Z]); + if(dist < tmpdist) + { + tmpdist = dist; + handle = i; + } + } + return handle; +} + +stock bool:IsPlayerInRangeOfTable(playerid, handle, Float:range) +{ + if(!IsValidTable(handle)) return false; + if(IsPlayerInRangeOfPoint(playerid, range, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z])) return true; + return false; +} + +/****************************************************************************************** + Actual functions +*******************************************************************************************/ + +stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats) +{ + new handle = Iter_Free(IT_Tables); + + if(handle == ITER_NONE) + { + printf("Max number of poker tables has been reached. Increase T_MAX_POKER_TABLES."); + return ITER_NONE; + } + if(seats >= T_MAX_CHAIRS_PER_TABLE) + { + printf("Max number of chairs per table has been reached. Increase T_MAX_CHAIRS_PER_TABLE."); + return ITER_NONE; + } + if(buy_in <= small_blind || buy_in <= 2 * small_blind) + { + printf("Buy in cannot be less than the small blind or big blind."); + return ITER_NONE; + } + //TableData[T_MAX_POKER_TABLES] (dummy array) + memcpy(TableData[handle], TableData[T_MAX_POKER_TABLES], 0, sizeof(TableData[]) * 4, sizeof(TableData[])); + + + TableData[handle][E_TABLE_BUY_IN] = buy_in; + TableData[handle][E_TABLE_SMALL_BLIND] = small_blind; + TableData[handle][E_TABLE_BIG_BLIND] = small_blind * 2; + TableData[handle][E_TABLE_TOTAL_SEATS] = seats; + + + /* Objects */ + + //Table + TableData[handle][E_TABLE_OBJECT_IDS][0] = CreateDynamicObject(2189, X, Y, Z + T_Z_OFFSET - 0.01, 0.0, 0.0, 0.0); + TableData[handle][E_TABLE_OBJECT_IDS][1] = CreateDynamicObject(2111, X, Y, Z-0.01, 0.0, 0.0, 0.0); + printf("Object ID %d", TableData[handle][E_TABLE_OBJECT_IDS][0]); + + //Chairs + new str[128]; + format(str, sizeof(str), "Press ENTER To Play\n{FFFFFF}%s Minimum\n%s / %s Blinds", ConvertPrice(buy_in), ConvertPrice(small_blind), ConvertPrice(small_blind * 2)); + TableData[handle][E_TABLE_POT_LABEL] = CreateDynamic3DTextLabel(str, COLOR_GREY, X+T_CHIP_OFFSET, Y+T_CHIP_OFFSET, Z+0.5, 3.0); + + new Float:angle_step = floatdiv(360.0, float(seats)); + for(new i = 0; i < seats; i++) + { + new const Float:unit_posx = floatcos(float(i) * angle_step, degrees); + new const Float:unit_posy = floatsin(float(i) * angle_step, degrees); + new const Float:o_posx = unit_posx * T_CHAIR_RANGE + X; + new const Float:o_posy = unit_posy * T_CHAIR_RANGE + Y; + new const Float:c_posz = Z + 0.36; + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = CreateDynamicObject(T_CHAIR_MODEL, o_posx, o_posy, Z + 0.25, 0.0, 0.0, angle_step * float(i)); + TableData[handle][E_TABLE_SEAT_POS_X][i] = o_posx; + TableData[handle][E_TABLE_SEAT_POS_Y][i] = o_posy; + TableData[handle][E_TABLE_SEAT_POS_Z][i] = Z; + //Currently invisible + TableData[handle][E_TABLE_BET_LABELS][i] = CreateDynamic3DTextLabel("$9", T_BET_LABEL_COLOR & ~0xFF, 0.65 * floatcos(float(i) * angle_step, degrees) + X, 0.65 * floatsin(float(i) * angle_step, degrees) + Y, c_posz, 3.0); + + new const Float: or_x = 0.70 * floatcos(float(i) * angle_step, degrees) + X; + new const Float: or_y = 0.70 * floatsin(float(i) * angle_step, degrees) + Y; + new const Float: or_z = c_posz - 0.076; + + new Float: a_s = floatdiv(360.0, float(MAX_CHIP_DIGITS)); + + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:rad = 0.11; + new rand = random(20); + TableChips[handle][i][j] = CreateDynamicObject(1902, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0); + SetDynamicObjectMaterialText(TableChips[handle][i][j], 0, " ", .backcolor = colors[j]); + TableChipsLabel[handle][i][j] = CreateDynamicObject(1905, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0); + SetDynamicObjectMaterialText(TableChipsLabel[handle][i][j], + 0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 ); + } + } + new const Float: or_z = Z + 0.284; //No chips are visible + new Float: a_s = floatdiv(360.0, float(MAX_CHIP_DIGITS)); + //center chips + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:rad = 0.11; + new rand = random(20); + new Float:px = rad * floatcos(float(j) * a_s, degrees) + X + T_CHIP_OFFSET; + new Float:py = rad * floatsin(float(j) * a_s, degrees) + Y + T_CHIP_OFFSET; + TableData[handle][E_TABLE_CHIPS][j] = CreateDynamicObject(1902, px, py, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0); + SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS][j], 0, " ", .backcolor = colors[j]); + TableData[handle][E_TABLE_CHIPS_LABEL][j] = CreateDynamicObject(1905, px, py, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0); + SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS_LABEL][j], + 0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 ); + } + TableData[handle][E_TABLE_POS_X] = X; + TableData[handle][E_TABLE_POS_Y] = Y; + TableData[handle][E_TABLE_POS_Z] = Z; + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + Iter_Clear(IT_TableCardSet[handle]); + + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + /* Sidepots */ + Iter_Clear(IT_Sidepots[handle]); + + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[handle][E_TABLE_POT_CHIPS][i] = 0; + Iter_Clear(It_SidepotMembers[_IT[handle][i]]); + } + /*=================================================*/ + + Iter_Add(IT_Tables, handle); + return handle; +} + + +stock SetPotChipsValue(handle, value) +{ + new + dec_pos = 0, + Float: base_z = TableData[handle][E_TABLE_POS_Z] + 0.284 + ; + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableData[handle][E_TABLE_CHIPS][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z); + SetDynamicObjectPos(TableData[handle][E_TABLE_CHIPS_LABEL][j], c_x, c_y, base_z + 0.12); + } + for(new val = value; val != 0; val /= 10) + { + if(dec_pos >= MAX_CHIP_DIGITS) break; + new const digit = val % 10; + if(!digit) + { + dec_pos++; + continue; + } + new Float:c_x, Float:c_y, Float:c_z; + //Chip object + new objectid = TableData[handle][E_TABLE_CHIPS][dec_pos]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z + 0.016 * (float(digit))); + //Chip label: + SetDynamicObjectPos(TableData[handle][E_TABLE_CHIPS_LABEL][dec_pos], c_x, c_y, 0.125 + base_z + 0.016 * (float(digit))); + dec_pos++; + } + return 1; +} +stock SetChipsValue(handle, seat, value) +{ + new + dec_pos = 0, + Float: base_z = TableData[handle][E_TABLE_POS_Z] + 0.284 + ; + for(new j = 0; j < MAX_CHIP_DIGITS; j++) + { + new Float:c_x, Float:c_y, Float:c_z; + new objectid = TableChips[handle][seat][j]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z); + SetDynamicObjectPos(TableChipsLabel[handle][seat][j], c_x, c_y, base_z + 0.12); + } + for(new val = value; val != 0; val /= 10) + { + if(dec_pos >= MAX_CHIP_DIGITS) break; + new const digit = val % 10; + if(!digit) + { + dec_pos++; + continue; + } + new Float:c_x, Float:c_y, Float:c_z; + //Chip object + new objectid = TableChips[handle][seat][dec_pos]; + GetDynamicObjectPos(objectid, c_x, c_y, c_z); + SetDynamicObjectPos(objectid, c_x, c_y, base_z + 0.016 * (float(digit))); + //Chip label: + SetDynamicObjectPos(TableChipsLabel[handle][seat][dec_pos], c_x, c_y, 0.125 + base_z + 0.016 * (float(digit))); + dec_pos++; + } + return 1; +} + +stock DestroyPokertable( handle) +{ + if(!Iter_Contains(IT_Tables, handle)) return 0; + TableData[handle][E_TABLE_BUY_IN] = 0; + TableData[handle][E_TABLE_SMALL_BLIND] = 0; + TableData[handle][E_TABLE_BIG_BLIND] = 0; + + DestroyDynamicObject(TableData[handle][E_TABLE_OBJECT_IDS][0]); + TableData[handle][E_TABLE_OBJECT_IDS][0] = INVALID_OBJECT_ID; + + DestroyDynamicObject(TableData[handle][E_TABLE_OBJECT_IDS][1]); + TableData[handle][E_TABLE_OBJECT_IDS][1] = INVALID_OBJECT_ID; + + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + DestroyDynamicObject(TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i]); + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = INVALID_OBJECT_ID; + TableData[handle][E_TABLE_SEAT_POS_X][i] = 0.0; + TableData[handle][E_TABLE_SEAT_POS_Y][i] = 0.0; + TableData[handle][E_TABLE_SEAT_POS_Z][i] = 0.0; + } + TableData[handle][E_TABLE_TOTAL_SEATS] = 0; + Iter_Remove(IT_Tables, handle); + Iter_Clear(IT_TableCardSet[handle]); + Iter_Clear(IT_PlayersInGame); + Iter_Clear(IT_PlayersTable); + return 1; +} + + + +stock KickPlayerFromTable(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!Iter_Contains(IT_PlayersTable, playerid)) return 0; + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]; + new attach_index = PlayerData[playerid][E_PLAYER_CHAIR_ATTACH_INDEX_ID]; + RemovePlayerAttachedObject(playerid, attach_index); + ClearAnimations(playerid, 1); + TogglePlayerControllable(playerid, true); + new const Float:angle_step = floatdiv(360.0, TableData[handle][E_TABLE_TOTAL_SEATS]); + //Create the chair object again: + + TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot] = CreateDynamicObject(T_CHAIR_MODEL, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot], 0.0, 0.0, angle_step * float(slot)); + Internal_RemoveChairSlot(handle, slot); + SetPlayerPos(playerid, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot]); + SetCameraBehindPlayer(playerid); + + + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + for(new i = 0; i < 6; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + PlayerTextDrawDestroy(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + } + DestroyDynamic3DTextLabel(PlayerData[playerid][E_PLAYER_3D_LABEL]); + + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_BET_LABELS][slot], 0, " "); + + Iter_Remove(IT_PlayersTable, playerid); + + if(Iter_Contains(IT_PlayersInGame, playerid)) + Iter_Remove(IT_PlayersInGame, playerid); + + GivePlayerCash(playerid, PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + + memcpy(PlayerData[playerid], PlayerData[MAX_PLAYERS], 0, sizeof(PlayerData[]) * 4, sizeof(PlayerData[])); + + #if T_SAVE_PLAYER_POS == true + SetPlayerPos(playerid, GetPVarFloat(playerid, "t_temp_posX"), GetPVarFloat(playerid, "t_temp_posY"), GetPVarFloat(playerid, "t_temp_posZ")); + SetPlayerFacingAngle(playerid, GetPVarFloat(playerid, "t_temp_angle")); + #endif + SetPVarInt(playerid, "t_is_in_table", 0); + new Float:X, Float:Y, Float:Z; + X = TableData[handle][E_TABLE_POS_X]; + Y = TableData[handle][E_TABLE_POS_Y]; + Z = TableData[handle][E_TABLE_POS_Z]; + foreach(new i: Player) + { + if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z)) + { + Streamer_Update(i); + } + } + return 1; +} + +stock Player_CreateTextdraws(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + new Float:px; + new Float:py; + new Float:t_angle = 0.0; + + new const seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + switch(seats) + { + case 2: t_angle = 120.0; + case 3: t_angle = 180.0; + case 4: t_angle = 210.0; + case 5: t_angle = 240.0; + case 6: t_angle = 240.0; + } + //Hole cards + new const Float:angle_step = floatdiv(360.0, float(seats)); + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + px = (T_CARDS_RADIAL_DISTANCE * floatcos(float(i) * angle_step + t_angle, degrees)) + T_SCREEN_CENTER_X; + py = (T_CARDS_RADIAL_DISTANCE * floatsin(float(i) * angle_step + t_angle, degrees)) + T_SCREEN_CENTER_Y + 25.0; + + PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i] = CreatePlayerTextDraw(playerid, px, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], 4); + + + PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i] = CreatePlayerTextDraw(playerid, px + T_TWO_CARD_DISTANCE, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], 4); + } + //Community cards + for(new i = 0; i < 5; i++) + { + px = i * T_TWO_CARD_DISTANCE + T_SCREEN_CENTER_X - 58.0; + py = T_SCREEN_CENTER_Y + 10.0; + PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i] = CreatePlayerTextDraw(playerid, px, py, "LD_POKE:cdback"); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], T_CARD_X_SIZE, T_CARD_Y_SIZE); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], 2); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i], 4); + } + + //Buttons + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][0] = CreatePlayerTextDraw(playerid, 613.000122, 109.940643, "box"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0.000000, 8.599979); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0.000000, 57.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 177); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 169); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][0], 0); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][1] = CreatePlayerTextDraw(playerid, 612.000122, 110.770355, "Options"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0.000000, 53.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], -1061109505); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][1], 0); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL] = CreatePlayerTextDraw(playerid, 615.999755, 131.511154, "Call"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], -2139094785); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], 0); + //PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], true); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE] = CreatePlayerTextDraw(playerid, 615.999755, 148.518554, "Raise"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], -1378294017); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], 0); + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], true); + + PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD] = CreatePlayerTextDraw(playerid, 615.999755, 165.525954, "Fold"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0.182333, 1.039999); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 10.000000, 49.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], -1523963137); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 1); + PlayerTextDrawSetShadow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], 0); + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD], true); + + //Info + PlayerData[playerid][E_PLAYER_INFO_TXT][0] = CreatePlayerTextDraw(playerid, 597.333435, 253.051803, "box"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 0.000000, 7.366664); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 0.000000, 84.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 193); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][0], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][1] = CreatePlayerTextDraw(playerid, 597.999694, 253.466537, "INFORMATION"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 0.265333, 1.093926); + PlayerTextDrawTextSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 0.000000, 84.000000); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 2); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], -1); + PlayerTextDrawUseBox(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + PlayerTextDrawBoxColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], -2139062017); + PlayerTextDrawSetOutline(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 2); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][1], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][2] = CreatePlayerTextDraw(playerid, 559.666687, 268.814849, "Chips:_2934123"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][3] = CreatePlayerTextDraw(playerid, 559.666687, 279.600128, "Pot:_23124"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], -1); //10.785279 + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][4] = CreatePlayerTextDraw(playerid, 559.666687, 290.385407, "Last_bet:_$4213"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], 1); + + PlayerData[playerid][E_PLAYER_INFO_TXT][5] = CreatePlayerTextDraw(playerid, 559.666687, 301.170686, "Your_bet:_$124"); + PlayerTextDrawLetterSize(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 0.166999, 1.023407); + PlayerTextDrawAlignment(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + PlayerTextDrawColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], -1); + PlayerTextDrawBackgroundColor(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 255); + PlayerTextDrawFont(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + PlayerTextDrawSetProportional(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], 1); + + return 1; +} + +stock AddPlayerToTable(playerid, handle) +{ + if(!Iter_Contains(IT_Tables, handle)) return 0; + new slot = Internal_GetFreeChairSlot(handle); + if(slot == ITER_NONE) + { + SendPokerMessage(playerid, "There aren't currently any unnocupied seats in this table at the moment. You cannot enter it."); + return 0; + } + + if(GetPlayerCash(playerid) < TableData[handle][E_TABLE_BUY_IN]) return SendPokerMessage(playerid, "You don't have enough money to access this table. Buy In: %s", ConvertPrice(TableData[handle][E_TABLE_BUY_IN])); + + new index = Player_GetUnusedAttachIndex(playerid); + if(index == cellmin) + { + SendPokerMessage(playerid, "You cannot access this table in this moment."); + return 0; + } + //Reset player data + memcpy(PlayerData[playerid], PlayerData[MAX_PLAYERS], 0, sizeof(PlayerData[]) * 4, sizeof(PlayerData[])); + + + //Information to set the player's position, angle, etc.. + new Float:Pos[3]; + Pos[0] = TableData[handle][E_TABLE_SEAT_POS_X][slot]; + Pos[1] = TableData[handle][E_TABLE_SEAT_POS_Y][slot]; + Pos[2] = TableData[handle][E_TABLE_SEAT_POS_Z][slot]; + new const Float:angle_step = floatdiv(360.0, float(TableData[handle][E_TABLE_TOTAL_SEATS])); + new Float:facing_angle = (TableData[handle][E_TABLE_TOTAL_SEATS] == 2) ? (270 - angle_step * float(slot + 1)) : angle_step * float(slot + 1); + SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + SetPlayerFacingAngle(playerid, facing_angle); + DestroyDynamicObject(TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot]); + SetPlayerAttachedObject(playerid, index, T_CHAIR_MODEL, 7, 0.061999, -0.046, 0.095999, 90.6, -171.8, -10.5, 1.0, 1.0, 1.0); + SetPlayerCameraPos(playerid, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z]+T_Z_CAMERA_OFFSET); + SetPlayerCameraLookAt(playerid, TableData[handle][E_TABLE_POS_X], TableData[handle][E_TABLE_POS_Y], TableData[handle][E_TABLE_POS_Z]); + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.1, 1, 1, 1, 0, 0, 1); + new tstr[64]; + format(tstr, sizeof(tstr), "%s(%d)", ReturnPlayerName(playerid), slot); + PlayerData[playerid][E_PLAYER_3D_LABEL] = CreateDynamic3DTextLabel(tstr, 0x808080FF, Pos[0], Pos[1], Pos[2], 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 5.0); + + //Information that will be used later + PlayerData[playerid][E_PLAYER_CHAIR_ATTACH_INDEX_ID] = index; + PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] = slot; + PlayerData[playerid][E_PLAYER_CURRENT_HANDLE] = handle; + Player_CreateTextdraws(playerid); + //Iterators + Internal_AddChairSlot(handle, slot); + Iter_Add(IT_PlayersTable, playerid); + TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot] = playerid; + GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN]; + SendPokerMessage(playerid, "You've been charged %s as a result of joining in the table.", ConvertPrice(TableData[handle][E_TABLE_BUY_IN])); + //Allow players to join a table where a game has already started but there are empty seats remaining (these players will be able to play once the current match finishes) + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) + { + if(Iter_Count(IT_PlayersTable) == 2 && !TableData[handle][E_TABLE_LOADING_GAME]) //Minimum two seats + { + if(!TableData[handle][E_TABLE_STING_NEW_GAME]) + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" There are currently two players in the table."); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Any players interested in being part of this game have "#T_START_DELAY" seconds to join the table."); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" The game will begin in "#T_START_DELAY" seconds..."); + Iter_Clear(IT_PlayersInGame); + TableData[handle][E_TABLE_LOADING_GAME] = true; + SetTimerEx("Poker_StartGame", T_START_DELAY * 1000, false, "ii", handle, INVALID_PLAYER_ID); + } + } + } + else + { + SendPokerMessage(playerid, "You have entered this poker table but the game has already begun."); + SendPokerMessage(playerid, "You must wait until this match is finished to play!"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {25728B}- - Player %s has joined the table... - -", ReturnPlayerName(playerid)); + } + + foreach(new i: Player) + { + if(IsPlayerInRangeOfPoint(i, 35.0, Pos[0], Pos[1], Pos[2])) + { + Streamer_Update(i); + } + } + + #if T_SAVE_PLAYER_POS == true + + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + SetPVarFloat(playerid, "t_temp_posX", Pos[0]); + SetPVarFloat(playerid, "t_temp_posY", Pos[1]); + SetPVarFloat(playerid, "t_temp_posZ", Pos[2]); + GetPlayerFacingAngle(playerid, Pos[0]); + SetPVarFloat(playerid, "t_temp_angle", Pos[0]); + #endif + + SetPVarInt(playerid, "t_is_in_table", 1); + return 1; +} + +stock UpdateInfoTextdrawsForPlayer(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + new tstring[64]; + format(tstring, sizeof(tstring), "~g~Chips:_~w~%s", ConvertPrice(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS])); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], tstring); + format(tstring, sizeof(tstring), "~y~Pot:_~w~%s", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT])); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], tstring); + format(tstring, sizeof(tstring), "~r~Last_bet:_~w~%s", ConvertPrice(TableData[handle][E_TABLE_LAST_BET])); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], tstring); + format(tstring, sizeof(tstring), "~r~Your_bet:_~w~%s", ConvertPrice(PlayerData[playerid][E_PLAYER_CURRENT_BET])); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], tstring); + return 1; +} + +stock Player_Clearchat(playerid) +{ + for(new j = 0; j < 30; j++) + SendClientMessage(playerid, -1, " "); + return 1; +} + +public Poker_StartGame(handle, dealer) +{ + TableData[handle][E_TABLE_STING_NEW_GAME] = false; + if(Iter_Count(IT_PlayersTable) < 2) + { + TableData[handle][E_TABLE_LOADING_GAME] = false; + return 0; + } + for(new i = 0; i < MAX_PLAYERS; i++) + { + if(!Iter_Contains(IT_PlayersTable, i)) continue; + if(!PlayerData[i][E_PLAYER_TOTAL_CHIPS]) + { + SendPokerMessage(i, "You don't have any chips left."); + SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been kicked out of the table. [Reason: Ran out of chips]", ReturnPlayerName(i)); + KickPlayerFromTable(i); + ShowPlayerDialog(i, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + } + } + + if(Iter_Count(IT_PlayersTable) < 2) + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" There aren't enough players to start a game"); + TableData[handle][E_TABLE_LOADING_GAME] = false; + return 0; + } + TableData[handle][E_TABLE_LOADING_GAME] = true; + //Add these two players to (currently playing iterator) + foreach(new i: IT_PlayersTable) + { + Player_Clearchat(i); + Iter_Add(IT_PlayersInGame, i); + PlayerPlaySound(i, 1058, 0.0, 0.0, 0.0); + PlayerData[i][E_PLAYER_IS_PLAYING] = true; + ApplyAnimation(i, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.1, 1, 1, 1, 0, 0, 1); + + } + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_BEGIN; //Will prevent players from leaving the table + + foreach(new playerid: IT_PlayersInGame) + { + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], "LD_POKE:cdback"); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], "LD_POKE:cdback"); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + } + for(new i = 0; i < 5; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + for(new i = 0; i < 6; i++){ + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][i]); + } + } + + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] = 0; + + //Select BB, SB in terms of a random dealer + dealer = (dealer == INVALID_PLAYER_ID) ? Iter_Random(IT_PlayersInGame) : dealer; + + new count = Iter_Count(IT_PlayersInGame); + if(count < 2) + { + return -1; + } + else if(count == 2) + { + TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer; + TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = dealer; + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been chosen to be the dealer and big blind in this first stage of the game!", ReturnPlayerName(dealer)); + UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}Big Blind + Dealer", ReturnPlayerName(dealer)); + + //small blind.. + new next_turn = GetTurnAfterPlayer(handle, dealer); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_turn][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}Small Blind", ReturnPlayerName(next_turn)); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been chosen to be the small blind in this first stage of the game!", ReturnPlayerName(next_turn)); + TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_turn; + + + } + else + { + + //Dealer + UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}Dealer", ReturnPlayerName(dealer)); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been chosen to be the dealer in this first stage of the game!", ReturnPlayerName(dealer)); + TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer; + + //Big blind + new next_player = GetTurnAfterPlayer(handle, dealer); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}Small Blind", ReturnPlayerName(next_player)); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been chosen to be the Small Blind in this first stage of the game!", ReturnPlayerName(next_player)); + TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_player; + + //Small blind + next_player = GetTurnAfterPlayer(handle, next_player); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been chosen to be the Big Blind in this first stage of the game!", ReturnPlayerName(next_player)); + UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}Big Blind", ReturnPlayerName(next_player)); + TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = next_player; + } + + + foreach(new playerid: IT_PlayersInGame) //loop through the players already in the table + { + if(playerid != TableData[handle][E_TABLE_PLAYER_DEALER_ID] && playerid != TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] && playerid != TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]) + { + UpdateDynamic3DTextLabelTextEx(PlayerData[playerid][E_PLAYER_3D_LABEL], 0x7AC72EFF, "%s", ReturnPlayerName(playerid)); + } + for(new k = 0; k < 6; k++) + { + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][k]); + } + UpdateInfoTextdrawsForPlayer(playerid); + Streamer_Update(playerid); + } + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Dealer is shuffling the pack of cards...!"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Cards will be handed out in two seconds...!"); + //If everything executes without stop, it wouldn't look that nice for me, so a timer comes handy.. + SetTimerEx("Poker_DealCards", 2000, false, "i", handle); + return 1; +} + + +forward Poker_KickPlayers(handle); +public Poker_KickPlayers(handle) +{ + for(new i = 0; i < MAX_PLAYERS; i++) + { + if(!Iter_Contains(IT_PlayersInGame, i)) continue; + if(!PlayerData[i][E_PLAYER_TOTAL_CHIPS]) + { + if(GetPlayerCash(i) < TableData[handle][E_TABLE_BUY_IN]) + { + SendPokerMessage(i, "You don't have any chips left."); + SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been kicked out of the table. [Reason: Ran out of chips]"); + KickPlayerFromTable(i); + } + else + { + ShowPlayerDialog(i, DIALOG_BUY_IN, DIALOG_STYLE_MSGBOX, "Buy-In", "You've ran out of chips. Do you want to pay the buy-in fee again to continue playing?", "Yes", "No"); + } + } + } + Iter_Clear(IT_PlayersInGame); + return 1; +} + +stock StartNewPokerGame(handle, time) +{ + //This will allow players to leave before the new game begins. + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + TableData[handle][E_TABLE_STING_NEW_GAME] = true; + + TableData[handle][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[handle][E_TABLE_CHECK_FIRST] = false; + + TableData[handle][E_TABLE_LOADING_GAME] = false; + + UpdateDynamic3DTextLabelTextEx(TableData[handle][E_TABLE_POT_LABEL], COLOR_GREY, "Press ENTER To Play\n{FFFFFF}%s Minimum\n%s / %s Blinds", ConvertPrice(TableData[handle][E_TABLE_BUY_IN]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND] * 2)); + Iter_Clear(IT_TableCardSet[handle]); + + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + //Never change this order + Iter_Clear(IT_PlayersAllIn); + new next_dealer = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_DEALER_ID]); + Iter_Clear(IT_Sidepots[handle]); + + SetTimerEx("Poker_KickPlayers", 1000 * (time - 5), false, "i", handle); + + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[handle][E_TABLE_POT_CHIPS][i] = 0; + Iter_Clear(It_SidepotMembers[_IT[handle][i]]); + } + + if(Iter_Count(IT_PlayersTable) >= 2) + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Starting a new game in %d seconds...", time); + SetTimerEx("Poker_StartGame", 1000 * time, false, "ii", handle, next_dealer); + } + else + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" There are not enough players to start a new game!"); + } + return 1; +} + +stock GetTurnAfterPlayer(handle, playerid) +{ + /*Finds the ID of the player to the left of 'playerid', skips players not currently playing or empty seats. + The number of iterations it performs is the number of seats in between both players + Worst case would be the number of seats O(n), n = number of seats, O(1) would be the best case (players next to each other) + */ + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] - 1; + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + for(new i = 0, j = TableData[handle][E_TABLE_TOTAL_SEATS]; i < j; i++) + { + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + new const target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + if(Iter_Contains(IT_PlayersInGame, target) && !Iter_Contains(IT_PlayersAllIn, target)) + { + break; + } + slot--; + } + if(slot < 0 || slot >= T_MAX_CHAIRS_PER_TABLE) return INVALID_PLAYER_ID; + new next_player = INVALID_PLAYER_ID; + next_player = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + return next_player; +} +stock GetTurnAfterPlayerEx(handle, playerid) +{ + /*Finds the ID of the player to the left of 'playerid', skips players not currently playing or empty seats. + The number of iterations it performs is the number of seats in between both players + Worst case would be the number of seats O(n), n = number of seats, O(1) would be the best case (players next to each other) + */ + new slot = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT] - 1; + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + for(new i = 0, j = TableData[handle][E_TABLE_TOTAL_SEATS]; i < j; i++) + { + if(slot < 0) slot = TableData[handle][E_TABLE_TOTAL_SEATS] - 1; + new const target = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + if(Iter_Contains(IT_PlayersInGame, target)) + { + break; + } + slot--; + } + new next_player = INVALID_PLAYER_ID; + next_player = TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot]; + return next_player; +} +stock Internal_GetFreeChairSlot(handle) +{ + //This goes in reverse (left) + new seats = TableData[handle][E_TABLE_TOTAL_SEATS]; + for(new i = seats; i--; ) + { + if(!TableData[handle][E_TABLE_IS_SEAT_TAKEN][i]) + { + return i; + } + } + return ITER_NONE; +} +stock Internal_AddChairSlot(handle, slot) +{ + TableData[handle][E_TABLE_IS_SEAT_TAKEN][slot] = true; + return 1; +} +stock Internal_RemoveChairSlot(handle, slot) +{ + TableData[handle][E_TABLE_IS_SEAT_TAKEN][slot] = false; + return 1; +} + +stock RemoveChipsFromPlayer( forplayer, amount) +{ + PlayerData[forplayer][E_PLAYER_TOTAL_CHIPS] -= amount; + return 1; +} + +stock AbortGame(handle) +{ + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) return 0; + //Could have used Iter_SafeRemove, prefer not to + for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) + { + if(Iter_Contains(IT_PlayersTable, playerid)) + { + KickPlayerFromTable(playerid); + } + CancelSelectTextDraw(playerid); + } + Iter_Clear(IT_TableCardSet[handle]); + for(new i = 0; i < 52; i++) + Iter_Add(IT_TableCardSet[handle], i); + + TableData[handle][E_TABLE_CURRENT_STATE] = STATE_IDLE; + return 1; +} + +forward Poker_DealCards(handle); +public Poker_DealCards(handle) +{ + foreach(new playerid: IT_PlayersTable) //loop through the players already in the table + { + if(Iter_Contains(IT_PlayersInGame, playerid)) + { + new seat = TableRotCorrections[TableData[PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]]; + new card1 = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card1); + + + new card2 = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card2); + + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][seat], CardData[card1][E_CARD_TEXTDRAW]); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][seat], CardData[card2][E_CARD_TEXTDRAW]); + PlayerData[playerid][E_PLAYER_CARD_VALUES][0] = card1; + PlayerData[playerid][E_PLAYER_CARD_VALUES][1] = card2; + + foreach(new p: IT_PlayersInGame) + { + seat = TableRotCorrections[TableData[PlayerData[p][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[p][E_PLAYER_CURRENT_CHAIR_SLOT]]; + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][seat]); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][seat]); + PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0 ); + } + + PlayerData[playerid][E_PLAYER_CURRENT_BET] = 0; + } + else + { + for(new i = 0; i < TableData[handle][E_TABLE_TOTAL_SEATS]; i++) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i], "LD_POKE:cdback"); + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i], "LD_POKE:cdback"); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_1][i]); + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CARDS_TXT_2][i]); + } + } + + } + //Set variables + + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_PRE_FLOP; + + + + + new big_blind = TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]; + new small_blind = TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]; + + new bool: b_big_blind = (PlayerData[big_blind][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_BIG_BLIND]); + new bool: b_small_blind = (PlayerData[small_blind][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_SMALL_BLIND]); + if(b_big_blind && b_small_blind) + { + PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND]; + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s posts a small blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND])); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s posts a big blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_BIG_BLIND])); + new next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]); + TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + TableData[handle][E_TABLE_LAST_TO_RAISE] = next_turn; + RemoveChipsFromPlayer( big_blind, TableData[handle][E_TABLE_BIG_BLIND]); + RemoveChipsFromPlayer( small_blind, TableData[handle][E_TABLE_SMALL_BLIND]); + TableData[handle][E_TABLE_FIRST_TURN] = next_turn; + TableData[handle][E_TABLE_CHECK_FIRST] = true; + SendTurnMessage(handle, next_turn); + + UpdateTable(handle); + } + else + { + new next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]); + TableData[handle][E_TABLE_LAST_TO_RAISE] = next_turn; + if(!b_small_blind) + { + + ForcePlayerAllIn(small_blind, handle, false); + } + else + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s posts a small blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND])); + RemoveChipsFromPlayer( small_blind, TableData[handle][E_TABLE_SMALL_BLIND]); + PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND]; + } + + if(!b_big_blind) + { + TableData[handle][E_TABLE_LAST_TO_RAISE] = big_blind; + TableData[handle][E_TABLE_LAST_BET] = PlayerData[big_blind][E_PLAYER_TOTAL_CHIPS]; + ForcePlayerAllIn(big_blind, handle, false); + + if(!b_small_blind && GetTurnAfterPlayerEx(handle, next_turn) == small_blind) + { + TableData[handle][E_TABLE_LAST_TO_RAISE] = small_blind; + } + } + else + { + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s posts a big blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_BIG_BLIND])); + RemoveChipsFromPlayer( big_blind, TableData[handle][E_TABLE_BIG_BLIND]); + PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND]; + } + + if(Iter_Contains(IT_PlayersAllIn, next_turn)) + { + CheckPotAndNextTurn(next_turn, handle); + } + else + { + SendTurnMessage(handle, next_turn); + } + UpdateTable(handle); + + } + + return 1; +} + + + +static stock UpdateTable(handle) +{ + foreach(new playerid: IT_PlayersInGame) + { + UpdateInfoTextdrawsForPlayer(playerid); + new const seat = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT]; + new str[128 ]; + format(str, sizeof(str), ""COL_BLUE"Chips: "COL_WHITE"%s\n"COL_GREEN"Last bet: "COL_WHITE"%s", ConvertPrice(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]), ConvertPrice(PlayerData[playerid][E_PLAYER_CURRENT_BET])); + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_BET_LABELS][seat], T_BET_LABEL_COLOR, str); + SetChipsValue(handle, PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT], PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + + } + new str[256]; + new tmp[10]; + format(str, sizeof(str), ""COL_GOLD"Main Pot:"COL_GREY" %s\n", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT])); + SetPotChipsValue(handle, TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]); + if(Iter_Count(IT_Sidepots[handle] > 1)) + { + strcat(str, ""COL_GOLD"Side Pot:\n"COL_GREY""); + foreach(new i: IT_Sidepots[handle]) + { + if(i == MAIN_POT) continue; + format(tmp, sizeof(tmp), "%s\n", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][i])); + strcat(str, tmp); + } + } + str[strlen(str)-1] = EOS; + UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_POT_LABEL], T_BET_LABEL_COLOR, str); + + return 1; +} +static stock ShowChoicesToPlayer(playerid) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + //Call or check + if(TableData[handle][E_TABLE_LAST_BET] == PlayerData[playerid][E_PLAYER_CURRENT_BET]) //check + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], "Check"); + } + else //call + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], "Call"); + } + + //Bet, raise or all in + if(TableData[handle][E_TABLE_LAST_BET] == 0) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "Bet"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_BET; + } + else if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] > TableData[handle][E_TABLE_LAST_BET] + PlayerData[playerid][E_PLAYER_CURRENT_BET]) + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "Raise"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_RAISE; + } + else //player doesn't have enough money, only option is to go all in + { + PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE], "All In"); + PlayerData[playerid][E_PLAYER_RCHOICE] = E_RAISE_ALL_IN; + } + + if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] + PlayerData[playerid][E_PLAYER_CURRENT_BET] <= TableData[handle][E_TABLE_LAST_BET]) + { + //all in and fold are the only options available + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], false); + } + else + { + PlayerTextDrawSetSelectable(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL], true); + } + for(new i = 0; i < 5; i++) + { + PlayerTextDrawShow(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + + SelectTextDraw(playerid, 0x00FF00FF); + return 1; +} + +static stock HidePlayerChoices(playerid) +{ + for(new i = 0; i < 5; i++) + { + PlayerTextDrawHide(playerid, PlayerData[playerid][E_PLAYER_CHOICES_TXT][i]); + } + CancelSelectTextDraw(playerid); + return 1; +} + +static stock SendTurnMessage(handle, playerid) +{ + SetPlayerClickedTxt(playerid, false); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {008080}It's %s{008080}'s turn...", ReturnPlayerName(playerid)); + SendPokerMessage(playerid, "It's your turn. You have "#T_MAX_WAIT_TIME" seconds to make a decision."); + TableData[handle][E_TABLE_CURRENT_TURN] = playerid; + PlayerData[playerid][E_PLAYER_TIMER_STARTED] = true; + PlayerData[playerid][E_PLAYER_TIMER_ID] = SetTimerEx("Timer_FoldPlayer", T_MAX_WAIT_TIME * 1000, false, "ii", handle, playerid); + ShowChoicesToPlayer(playerid); + return 1; +} + +stock KillPlayerTurnTimer(playerid, bool: callback = false) +{ + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) + { + printf("[KillPlayerTurnTimer] Invalid handle passed (%d) for playerid: %d", handle, playerid); + return 0; + } + if(!Iter_Contains(IT_PlayersInGame, playerid)) + { + printf("[KillPlayerTurnTimer] Invalid playerid passed: %d, handle: %d, player is not in the game.", playerid, handle); + return 0; + } + if(!PlayerData[playerid][E_PLAYER_TIMER_STARTED]) return 0; + + PlayerData[playerid][E_PLAYER_TIMER_STARTED] = false; + + if(!callback) + KillTimer(PlayerData[playerid][E_PLAYER_TIMER_ID]); + return 1; +} + +function Timer_FoldPlayer(handle, playerid) +{ + if(TableData[handle][E_TABLE_CURRENT_TURN] == playerid && PlayerData[playerid][E_PLAYER_TIMER_STARTED]) + { + TableData[handle][E_TABLE_CURRENT_TURN] = INVALID_PLAYER_ID; + HidePlayerChoices(playerid); + ShowPlayerDialog(playerid, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + KillPlayerTurnTimer(playerid, true); + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + } + return 1; +} +/* + + GetTurnAfterPlayer(handle, playerid); //Returns the playerid of the next turn (skips players that have gone all in) + GetTurnAfterPlayerEx(handle, playerid); //Returns the playerid of the next turn (does not skip players that went all in) + +*/ + +forward CheckRounds(handle, bool: start_showdown); +public CheckRounds(handle, bool: start_showdown) +{ + new next_turn = INVALID_PLAYER_ID; + //we can proceed to another round + switch(TableData[handle][E_TABLE_CURRENT_ROUND]) + { + case ROUND_PRE_FLOP: + { + //Display 3 cards now + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_FLOP; + for(new i = 0; i < 3; i++) + { + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][i] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][i], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][i]); + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + } + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035} The Flop "); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + TableData[handle][E_TABLE_LAST_BET] = 0; + + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, true); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_DEALER_ID]); + TableData[handle][E_TABLE_LAST_TO_RAISE] = next_turn; + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + + + + } + case ROUND_FLOP: + { + //Display 1 card + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_TURN; + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][3] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][3], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][3]); + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + TableData[handle][E_TABLE_LAST_BET] = 0; + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035} The Turn "); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + + + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, true); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_DEALER_ID]); + TableData[handle][E_TABLE_LAST_TO_RAISE] = next_turn; + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + + } + case ROUND_TURN: + { + //Display 1 more card + TableData[handle][E_TABLE_CURRENT_ROUND] = ROUND_RIVER; + new card = Iter_Random(IT_TableCardSet[handle]); + Iter_Remove(IT_TableCardSet[handle], card); + TableData[handle][E_TABLE_COM_CARDS_VALUES][4] = card; + foreach(new k: IT_PlayersTable) + { + //for(new j = 0; j < 15; j++) SendTableMessage(k, " "); + PlayerData[k][E_PLAYER_CURRENT_BET] = 0; + PlayerTextDrawSetString(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][4], CardData[card][E_CARD_TEXTDRAW]); + PlayerTextDrawShow(k, PlayerData[k][E_PLAYER_COMMUNITY_CARDS_TXT][4]); + PlayerPlaySound(k, 1145, 0.0, 0.0, 0.0 ); + } + TableData[handle][E_TABLE_LAST_BET] = 0; + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035} The River "); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {D07035}======================================================================================"); + //SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" %s, %s, %s", CardData[TableData[handle][T_COM_CARDS_VALUES][0]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][1]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][2]][E_CARD_NAME]); + if(start_showdown) + { + SetTimerEx("CheckRounds", 2000, false, "ib", handle, false); + } + else + { + //Player next to the dealer + next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_DEALER_ID]); + TableData[handle][E_TABLE_LAST_TO_RAISE] = next_turn; + //player next to the dealer is the next turn + SendTurnMessage(handle, next_turn); + } + } + case ROUND_RIVER: + { + CheckShowdown(handle); + //Start a new game + StartNewPokerGame(handle, 8); + + //Show down + } + } + return 1; +} + +stock CheckShowdown(handle) +{ + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {F25B13}======================================================================================"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {F25B13} Showdown "); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {F25B13}======================================================================================"); + + foreach(new p: IT_PlayersTable) //loop through the players already in the table + { + foreach(new k: IT_PlayersInGame) //loop through the players already in the table + { + new seat = TableRotCorrections[TableData[PlayerData[k][E_PLAYER_CURRENT_HANDLE]][E_TABLE_TOTAL_SEATS]][ PlayerData[k][E_PLAYER_CURRENT_CHAIR_SLOT]]; + new card1 = PlayerData[k][E_PLAYER_CARD_VALUES][0]; + new card2 = PlayerData[k][E_PLAYER_CARD_VALUES][1]; + + PlayerTextDrawSetString(p, PlayerData[p][E_PLAYER_CARDS_TXT_1][seat], CardData[card1][E_CARD_TEXTDRAW]); + PlayerTextDrawSetString(p, PlayerData[p][E_PLAYER_CARDS_TXT_2][seat], CardData[card2][E_CARD_TEXTDRAW]); + } + } + if(!Iter_Contains(IT_Sidepots[handle], MAIN_POT)) + { + Iter_Add(IT_Sidepots[handle], MAIN_POT); + foreach(new k: IT_PlayersInGame) //loop through the players already in the table + { + Iter_Add(It_SidepotMembers[_IT[handle][MAIN_POT]], k); + } + } + foreach(new pot_id: IT_Sidepots[handle]) + { + new highest_rank = -0x7FFFFFFF; + new PlayerRanks[MAX_PLAYERS]; + new high_id = INVALID_PLAYER_ID; + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + new card[7]; + card[0] = GetCardNativeIndex(PlayerData[p][E_PLAYER_CARD_VALUES][0]); + card[1] = GetCardNativeIndex(PlayerData[p][E_PLAYER_CARD_VALUES][1]); + card[2] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][0]); + card[3] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][1]); + card[4] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][2]); + card[5] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][3]); + card[6] = GetCardNativeIndex(TableData[handle][E_TABLE_COM_CARDS_VALUES][4]); + + PlayerRanks[p] = calculate_hand_worth(card, 7); + + if(PlayerRanks[p] > highest_rank) + { + highest_rank = PlayerRanks[p]; + high_id = p; + } + } + new count = 0; + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(PlayerRanks[p] == highest_rank) + { + count++; + } + } + if(count == 1) + { + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(p == high_id) continue; + ApplyAnimation(p, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + } + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Player {FF8000}%s {9FCF30}has won with a {377CC8}%s", ReturnPlayerName(high_id), HAND_RANKS[highest_rank >> 12]); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Prize: {377CC8}%s!", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][pot_id])); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + PlayerData[high_id][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][pot_id]; + } + else + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Draw! These players have won with a {377CC8}%s:", HAND_RANKS[highest_rank >> 12]); + new amount = TableData[handle][E_TABLE_POT_CHIPS][pot_id] / count; + //new excess = TableData[handle][E_TABLE_POT_CHIPS][pot_id] % count + foreach(new p: It_SidepotMembers[_IT[handle][pot_id]]) + { + if(!Iter_Contains(IT_PlayersInGame, p)) continue; + if(PlayerRanks[p] == highest_rank) + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}%s", ReturnPlayerName(p)); + PlayerData[p][E_PLAYER_TOTAL_CHIPS] += amount; + } + else + { + ApplyAnimation(p, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + } + } + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Each receives 1/%d of the total pot available.", count); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + } + UpdateTable(handle); + } + return 1; +} +stock CheckPotAndNextTurn(playerid, handle) +{ + if(GetPVarInt(playerid, "t_Clicked")) + { + SetPVarInt(playerid, "t_Clicked", 0); + } + new next_turn = INVALID_PLAYER_ID; + HidePlayerChoices(playerid); + new bool: is_cycle_complete = false; + + next_turn = GetTurnAfterPlayer(handle, playerid); + new last_to_raise = TableData[handle][E_TABLE_LAST_TO_RAISE]; + if(next_turn == last_to_raise || next_turn == playerid) + { + is_cycle_complete = true; + } + else + { + //further checking + if(Iter_Count(IT_PlayersAllIn)) + { + new next_player = INVALID_PLAYER_ID; + new last_player = playerid; + for(new i = 0; i < Iter_Count(IT_PlayersInGame); i++) + { + next_player = GetTurnAfterPlayerEx(handle, last_player); + if(!Iter_Contains(IT_PlayersAllIn, next_player)) break; + if(next_player == last_to_raise) + { + is_cycle_complete = true; + break; + } + last_player = next_player; + } + } + + } + + if(TableData[handle][E_TABLE_FIRST_TURN] == playerid && TableData[handle][E_TABLE_CHECK_FIRST] && PlayerData[playerid][E_PLAYER_FOLDED]) + { + new turn = GetTurnAfterPlayer(handle, playerid); + TableData[handle][E_TABLE_LAST_TO_RAISE] = turn; + is_cycle_complete = false; + TableData[handle][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[handle][E_TABLE_CHECK_FIRST] = false; + } + + PlayerData[playerid][E_PLAYER_FOLDED] = false; + if(is_cycle_complete) + { + if(Iter_Count(IT_PlayersAllIn)) + { + /*================================================================================================== + Main pot and sidepot creation + ==================================================================================================*/ + + for(new i = 0; i < Iter_Count(IT_PlayersInGame); i++) + { + new p_count = 0; + new min_bet = cellmax; + foreach(new player: IT_PlayersInGame) + { + new const player_bet = PlayerData[player][E_PLAYER_CURRENT_BET]; + if(!player_bet) continue; + if(player_bet < min_bet) + { + min_bet = player_bet; + } + p_count++; + } + if(!p_count || p_count == 1) + { + break; + } + else //greater than two players + { + new pot_id = Iter_Free(IT_Sidepots[handle]); + TableData[handle][E_TABLE_POT_CHIPS][pot_id] += min_bet * p_count; + foreach(new player: IT_PlayersInGame) + { + if(!PlayerData[player][E_PLAYER_CURRENT_BET]) continue; + PlayerData[player][E_PLAYER_CURRENT_BET] -= min_bet; + Iter_Add(It_SidepotMembers[_IT[handle][pot_id]], player); + } + Iter_Add(IT_Sidepots[handle], pot_id); + } + } + //Return any excess + foreach(new player: IT_PlayersInGame) + { + if(!PlayerData[player][E_PLAYER_CURRENT_BET]) continue; + PlayerData[player][E_PLAYER_TOTAL_CHIPS] += PlayerData[player][E_PLAYER_CURRENT_BET]; + } + } + else + { + foreach(new player: IT_PlayersInGame) + { + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] += PlayerData[player][E_PLAYER_CURRENT_BET]; + } + UpdateTable(handle); + } + + new const all_in = Iter_Count(IT_PlayersAllIn); + new const current_players = Iter_Count(IT_PlayersInGame); + if(all_in == current_players || all_in == current_players - 1) + { + CheckRounds(handle, true); + } + else + { + CheckRounds(handle, false); + } + } + else + { + SendTurnMessage(handle, next_turn); + } + UpdateTable(handle); + return 1; +} + + +stock bool: FoldPlayer(handle, playerid) +{ + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Crash", 4.1, 0, 1, 1, 1, 0, 1); + PlayerData[playerid][E_PLAYER_FOLDED] = true; + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s folds.. * *", ReturnPlayerName(playerid)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{D6230A}** FOLDS ** "); + + Iter_Remove(IT_PlayersInGame, playerid); + PlayerData[playerid][E_PLAYER_IS_PLAYING] = false; + TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT] += PlayerData[playerid][E_PLAYER_CURRENT_BET]; + HidePlayerChoices(playerid); + + new count = Iter_Count(IT_PlayersInGame); + if(count == 1) + { + + new winner = Iter_First(IT_PlayersInGame); + HidePlayerChoices(winner); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Player {FF8000}%s {9FCF30}has won the game!", ReturnPlayerName(winner)); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}Prize: {377CC8}%s!", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT])); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {9FCF30}****************************************************************************************"); + PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]; + PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += PlayerData[winner][E_PLAYER_CURRENT_BET]; + UpdateTable(handle); + StartNewPokerGame(handle, 8); + TableData[handle][E_TABLE_CURRENT_TURN] = INVALID_PLAYER_ID; + return true; + } + else if(!count) + { + //Might happen if all the players disconnect + AbortGame(handle); + return true; + } + return false; +} + +stock ForcePlayerAllIn(playerid, handle, bool:checkpot = true) +{ + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Idle_Loop", 4.1, 1, 1, 1, 0, 0, 1); + KillPlayerTurnTimer(playerid); + Iter_Add(IT_PlayersAllIn, playerid); + new raise = PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] + PlayerData[playerid][E_PLAYER_CURRENT_BET]; + PlayerData[playerid][E_PLAYER_CURRENT_BET] = raise; + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s goes all in with %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with %s ** ", ConvertPrice(raise)); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = 0; + if(checkpot) + CheckPotAndNextTurn(playerid, handle); + return 1; +} + +stock ShowPlayerRaiseDialog(playerid) +{ + return ShowPlayerDialogEx(playerid, DIALOG_INPUT_RAISE, DIALOG_STYLE_INPUT, "{FF8000}Input", "Submit", "Cancel", "{FFFFFF}Please input the desired amount of chips: \n{FFFFFF}You may type {FF8000}%d {FFFFFF} if you want to go All In\n", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); +} + +/****************************************************************************************** + Hooks +*******************************************************************************************/ + +hook OnPlayerConnect(playerid) +{ + for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) + { + if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) continue; + RemovePlayerAttachedObject(playerid, i); + } + return 0; +} + +hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) +{ + if(PlayerData[playerid][E_PLAYER_IS_PLAYING]) + { + if(GetPlayerClickedTxt(playerid)) return 1; + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][FOLD]) + { + //Fold + SetPlayerClickedTxt(playerid, true); + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + } + else if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][CALL]) + { + //Call or check + if(TableData[handle][E_TABLE_LAST_BET] == PlayerData[playerid][E_PLAYER_CURRENT_BET]) //check + { + SetPlayerClickedTxt(playerid, true); + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s checks .. * *", ReturnPlayerName(playerid)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CHECKS ** "); + } + else //call + { + new dif = TableData[handle][E_TABLE_LAST_BET] - PlayerData[playerid][E_PLAYER_CURRENT_BET]; + if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] >= dif) + { + KillPlayerTurnTimer(playerid); + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s calls %s .. * *", ReturnPlayerName(playerid), ConvertPrice(dif)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CALLS %s ** ", ConvertPrice(dif)); + RemoveChipsFromPlayer( playerid, dif); + PlayerData[playerid][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_LAST_BET]; + SetPlayerClickedTxt(playerid, true); + } + else + { + SendPokerMessage(playerid, "ERROR: You can't call as you don't have enough chips. You have two possible options: going all in or folding."); + return 1; + } + + } + CheckPotAndNextTurn(playerid, handle); + } + else if(playertextid == PlayerData[playerid][E_PLAYER_CHOICES_TXT][RAISE]) + { + switch(PlayerData[playerid][E_PLAYER_RCHOICE]) + { + case E_RAISE_BET: + { + SendPokerMessage(playerid, "Please enter an amount to bet, the total amount of chips you current have is: %d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + ShowPlayerRaiseDialog(playerid); + HidePlayerChoices(playerid); + } + case E_RAISE_RAISE: + { + SendPokerMessage(playerid, "Please enter an amount to raise, the total amount of chips you current have is: %d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]); + HidePlayerChoices(playerid); + ShowPlayerRaiseDialog(playerid); + } + case E_RAISE_ALL_IN: + { + ForcePlayerAllIn(playerid, handle); + SetPlayerClickedTxt(playerid, true); + } + } + } + } + return 1; +} + +hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) +{ + if(dialogid == DIALOG_BUY_IN) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(response) + { + GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]); + PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN]; + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has paid the buy-in fee of %s chips to keep playing.", ReturnPlayerName(playerid), ConvertPrice(TableData[handle][E_TABLE_BUY_IN])); + } + else + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has been kicked out of the table. [Reason: Failure to pay the buy-in fee]"); + KickPlayerFromTable(playerid); + } + } + if(dialogid == DIALOG_INPUT_RAISE) + { + if(response) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) return 0; + if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN) + { + SendPokerMessage(playerid, "There isn't any active game at the moment."); + return 0; + } + if(!Iter_Contains(IT_PlayersInGame, playerid)) + { + return 0; + } + new raise = 0; + if(sscanf(inputtext, "d", raise)) + { + SendPokerMessage(playerid, "Input must be numeric."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + if(raise < 0) + { + SendPokerMessage(playerid, "Input must be greater than 0."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise > PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]) + { + SendPokerMessage(playerid, "You don't have that many chips available."); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise <= TableData[handle][E_TABLE_LAST_BET]) + { + SendPokerMessage(playerid, "Value must be greater than the last bet: %s", ConvertPrice(TableData[handle][E_TABLE_LAST_BET])); + ShowPlayerRaiseDialog(playerid); + return 1; + } + else if(raise == PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]) + { + ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Idle_Loop", 4.1, 1, 1, 1, 0, 0, 1); + KillPlayerTurnTimer(playerid); + //all in - not mandatory + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s goes all in with %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with %s ** ", ConvertPrice(raise)); + Iter_Add(IT_PlayersAllIn, playerid); + RemoveChipsFromPlayer( playerid, raise); + TableData[handle][E_TABLE_LAST_TO_RAISE] = playerid; + + PlayerData[playerid][E_PLAYER_CURRENT_BET] += raise; + TableData[handle][E_TABLE_LAST_BET] = PlayerData[playerid][E_PLAYER_CURRENT_BET]; + CheckPotAndNextTurn(playerid, handle); + + } + else + { + KillPlayerTurnTimer(playerid); + new dif = raise - PlayerData[playerid][E_PLAYER_CURRENT_BET]; + TableData[handle][E_TABLE_LAST_BET] = raise; + TableData[handle][E_TABLE_LAST_TO_RAISE] = playerid; + PlayerData[playerid][E_PLAYER_CURRENT_BET] = raise; + RemoveChipsFromPlayer( playerid, dif); + if(PlayerData[playerid][E_PLAYER_RCHOICE] == E_RAISE_BET) + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s bets %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** BETS %s ** ", ConvertPrice(raise)); + } + else + { + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" {2DD9A9} * * %s raises to %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise)); + SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** RAISES to %s ** ", ConvertPrice(raise)); + } + CheckPotAndNextTurn(playerid, handle); + } + } + else + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!IsValidTable(handle)) return 1; + if(TableData[handle][E_TABLE_CURRENT_TURN] == playerid) + { + SetPlayerClickedTxt(playerid, false); + ShowChoicesToPlayer(playerid); + } + else + { + ShowPlayerDialog(playerid, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " "); + + } + } + } + return 1; +} + +hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) +{ + if(PRESSED(KEY_SECONDARY_ATTACK)) + { + new handle = GetClosestTableForPlayer(playerid); + if(handle != ITER_NONE) + { + if(!Iter_Contains(IT_PlayersTable, playerid)) + { + if(IsPlayerInRangeOfTable(playerid, handle, T_JOIN_TABLE_RANGE)) + { + AddPlayerToTable(playerid, handle); + } + } + else + { + if((Iter_Contains(IT_PlayersInGame, playerid) && TableData[handle][E_TABLE_CURRENT_STATE] == STATE_BEGIN) + || TableData[T_MAX_POKER_TABLES][E_TABLE_LOADING_GAME]) + { + SendPokerMessage(playerid, "You cannot exit this table as there's currently an active match under process."); + return 0; + } + KickPlayerFromTable(playerid); + } + } + } + return 1; + +} + +hook OnPlayerDisconnect(playerid, reason) +{ + if(GetPVarInt(playerid, "t_is_in_table")) + { + new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE]; + if(!FoldPlayer(handle, playerid)) + CheckPotAndNextTurn(playerid, handle); + + SendTableMessage(handle, ""COL_GREY"[POKER]"COL_WHITE" Player %s has disconnected and has been kicked out from the table.", ReturnPlayerName(playerid)); + KickPlayerFromTable(playerid); + } + return 1; +} + +hook OnGameModeExit() +{ + for(new i = 0; i < T_MAX_POKER_TABLES; i++) + { + if(!Iter_Contains(IT_Tables, i)) continue; + DestroyPokertable(i); + memcpy(TableData[i], TableData[T_MAX_POKER_TABLES], 0, sizeof(TableData[]) * 4, sizeof(TableData[])); + } + return 1; +} + +hook OnGameModeInit() +{ + //Setting values to dummy arrays + + //Player data: + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_HANDLE] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_CHAIR_SLOT] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CHAIR_ATTACH_INDEX_ID] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_IS_PLAYING] = false; + PlayerData[MAX_PLAYERS][E_PLAYER_TIMER_STARTED] = false; + PlayerData[MAX_PLAYERS][E_PLAYER_CARD_VALUES][0] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CARD_VALUES][1] = ITER_NONE; + PlayerData[MAX_PLAYERS][E_PLAYER_CURRENT_BET] = 0; + PlayerData[MAX_PLAYERS][E_PLAYER_TOTAL_CHIPS] = 0; + PlayerData[MAX_PLAYERS][E_PLAYER_FOLDED] = false; + + TableData[T_MAX_POKER_TABLES][E_TABLE_STING_NEW_GAME] = false; + //Table data + TableData[T_MAX_POKER_TABLES][E_TABLE_TOTAL_SEATS] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_LOADING_GAME] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_CHECK_FIRST] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_CURRENT_STATE] = STATE_IDLE; + TableData[T_MAX_POKER_TABLES][E_TABLE_BUY_IN] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SMALL_BLIND] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_BIG_BLIND] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_X] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_Y] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_POS_Z] = 0.0; + + TableData[T_MAX_POKER_TABLES][E_TABLE_OBJECT_IDS][0] = 0; + TableData[T_MAX_POKER_TABLES][E_TABLE_OBJECT_IDS][1] = 0; + for(new i = 0; i < T_MAX_CHAIRS_PER_TABLE; i++) + { + TableData[T_MAX_POKER_TABLES][E_TABLE_CHAIR_OBJECT_IDS][i] = INVALID_OBJECT_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_IS_SEAT_TAKEN][i] = false; + TableData[T_MAX_POKER_TABLES][E_TABLE_CHAIR_PLAYER_ID][i] = INVALID_PLAYER_ID; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_X][i] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_Y][i] = 0.0; + TableData[T_MAX_POKER_TABLES][E_TABLE_SEAT_POS_Z][i] = 0.0; + TableChips[T_MAX_POKER_TABLES][i][0] = 0; + TableChips[T_MAX_POKER_TABLES][i][1] = 0; + TableChips[T_MAX_POKER_TABLES][i][2] = 0; + TableChips[T_MAX_POKER_TABLES][i][3] = 0; + } + printf("TPoker by ThreeKingz has been succesfully loaded!"); + return 1; +} + +stock SendTableMessage(handle, const format[], va_args<>) +{ + new + sstr[144]; + + va_format(sstr, sizeof (sstr), format, va_start<2>); + + foreach(new playerid: IT_PlayersTable) { + SendClientMessage(playerid, -1, sstr); + } + return 1; +} + +/****************************************************************************************** + Commands +*******************************************************************************************/ + +CMD:ctable(playerid, params[]) +{ + new seats, small_blind, buy_in; + if(sscanf(params, "ddd", seats, small_blind, buy_in)) + { + SendPokerMessage(playerid, "/ctable [number of seats] [small blind] [buy in]"); + return 1; + } + //Assumes the player is on a flat surface + new Float:Pos[3]; + GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); + new table = CreatePokerTable(buy_in, small_blind, Pos[0], Pos[1], Pos[2]-0.6, seats); + SendPokerMessage(playerid, "You have created table ID: %d | Small blind: %s | Big blind: %s | Buy In: %s | Seats: %d", ConvertPrice(table), ConvertPrice(small_blind), ConvertPrice(small_blind*2), ConvertPrice(buy_in), seats); + return 1; +} + +CMD:dtable(playerid, params[]) +{ + new ptable = 0; + if(sscanf(params, "d", ptable)) + { + SendClientMessage(playerid, 0x3E969FFF, "/ctable [pokertable ID]"); + return 0; + } + if(!IsValidTable(ptable)) + { + SendError(playerid, "Invalid pokertable ID"); + return 0; + } + SendPokerMessage(playerid, "You have deleted poker table ID: %d", ptable); + DestroyPokertable(ptable); + return 1; +} + +CMD:agame(playerid, params[]) +{ + new ptable; + if(sscanf(params, "d", ptable)) + { + SendPokerMessage(playerid, "/agame [table ID]"); + SendPokerMessage(playerid, "Will abort a game if started, ejecting all the players out of the table."); + return 1; + } + if(!IsValidTable(ptable)) + { + SendError(playerid, "Invalid pokertable ID"); + return 1; + } + if(AbortGame(ptable)) + { + SendPokerMessage(playerid, "You have successfully aborted the game on table ID: %d", ptable); + } + else + { + SendPokerMessage(playerid, "No game has started in this table yet."); + } + return 1; +} diff --git a/pawno/include/irresistible/features/visage/static_casino.inc b/pawno/include/irresistible/features/visage/static_casino.inc new file mode 100644 index 0000000..937dc65 --- /dev/null +++ b/pawno/include/irresistible/features/visage/static_casino.inc @@ -0,0 +1,2255 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: casino.inc + * Purpose: related to implementing the casino of visage + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Variables ** */ +static const VISAGE_APARTMENT_INT = 32; +static VISAGE_APARTMENT_WORLD; + +/* ** Hooks ** */ +hook OnGameModeInit( ) +{ + InitializeCasinoInterior( ); // create interior + InitializeCasinoApartments( ); // create player apartments + return 1; +} + +hook OnPlayerConnect( playerid ) +{ + // Remove Visage Building + RemoveBuildingForPlayer( playerid, 7584, 1947.3828, 1916.1953, 78.1953, 0.25 ); + RemoveBuildingForPlayer( playerid, 7716, 1947.3828, 1916.1953, 78.1953, 0.25 ); + return 1; +} + +// purpose: creates the interior itself +static stock InitializeCasinoInterior( ) +{ + // Main Visage Object + CreateDynamicObject( 7584, 1947.38281, 1916.19531, 78.19531, 0.00000, 0.00000, 0.00000, 0, 0, -1, 500.0 ); // visible to 500m in world & interior 0 + + // The Visage Casino + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3186.426025, 2894.111083, 81.443000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 81.416999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 34.516998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3128.611083, 2887.888916, 34.519001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3130.450927, 2887.888916, 34.520999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3132.292968, 2887.888916, 34.522998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3134.093017, 2887.888916, 34.525001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3135.894042, 2887.888916, 34.528999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3137.701904, 2887.888916, 34.530998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3139.501953, 2887.888916, 34.533000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3141.281005, 2887.888916, 34.534999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3143.070068, 2887.888916, 34.536998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3107.142089, 2900.892089, 60.563999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3107.156005, 2874.889892, 60.563999, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3136.159912, 2845.888916, 60.563999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3136.159912, 2929.893066, 60.563999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3120.439941, 2910.885986, 60.563999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3122.824951, 2864.897949, 60.563999, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); + CreateDynamicObject( 14629, 3167.575927, 2895.346923, 65.593002, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.125000, 2887.856933, 54.701999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.541992, 2895.730957, 54.701999, 0.000000, 0.000000, 173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3145.545898, 2879.970947, 54.701999, 0.000000, 0.000000, -173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3146.805908, 2872.185058, 54.700000, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3146.804931, 2903.468994, 54.701999, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3148.510009, 2864.377929, 54.700000, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3148.522949, 2911.281982, 54.701999, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3146.720947, 2887.888916, 33.365001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3148.530029, 2887.888916, 33.367000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.990966, 2879.989013, 53.532001, 0.000000, 0.000000, -173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.991943, 2895.721923, 53.532001, 0.000000, 0.000000, 173.899993, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3152.260009, 2903.498046, 53.532001, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.649902, 2894.111083, 52.395000, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3150.573974, 2887.856933, 53.532001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3152.251953, 2872.224121, 53.532001, 0.000000, 0.000000, -167.699005, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3154.028076, 2864.474121, 53.532001, 0.000000, 0.000000, -166.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14394, 3153.977050, 2911.301025, 53.532001, 0.000000, 0.000000, 167.598999, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3126.739013, 2887.888916, 82.416999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3128.611083, 2887.888916, 82.418998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3130.450927, 2887.888916, 82.420997, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3132.292968, 2887.888916, 82.422996, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3134.093017, 2887.888916, 82.425003, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3135.894042, 2887.888916, 82.429000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3137.701904, 2887.888916, 82.430999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3139.501953, 2887.888916, 82.432998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3141.281005, 2887.888916, 82.434997, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19884, 3143.070068, 2887.888916, 82.436996, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3148.958007, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2887.405029, 60.925998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2887.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2897.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2877.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2867.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.455078, 2907.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2887.405029, 60.928001, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2897.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2877.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2867.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.455078, 2907.405029, 60.923999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.649902, 2894.111083, 67.394996, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); + CreateDynamicObject( 19943, 3160.447021, 2902.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3138.958007, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.638916, 2887.406982, 60.956001, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + CreateDynamicObject( 19943, 3160.447021, 2872.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3167.947021, 2887.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3175.447021, 2894.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3175.447021, 2902.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3175.447021, 2879.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3175.447021, 2872.394042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3160.447021, 2894.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19943, 3160.447021, 2879.894042, 53.384998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2887.418945, 32.412998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2879.876953, 32.412998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2872.408935, 32.410999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2894.900878, 32.415000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3178.587890, 2902.379882, 32.415000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "casino_carp", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2877.175048, 50.896999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2881.586914, 50.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + CreateDynamicObject( 2188, 3156.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3159.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3161.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3164.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3166.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3169.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3171.629882, 2885.523925, 54.379001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, 3174.129882, 2881.750976, 54.379001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, 3176.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3155.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2888.267089, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3175.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 3165.855957, 2898.220947, 50.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3201.839111, 2894.111083, 52.415000, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 14597, "papaerchaseoffice", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3183.584960, 2909.878906, 46.729999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3183.584960, 2865.919921, 46.729999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); + CreateDynamicObject( 2111, 3156.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, 3161.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, 3166.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, 3171.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, 3176.923095, 2891.148925, 53.761001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3204.259033, 2844.235107, 46.729999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3204.259033, 2930.519042, 46.729999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14627, "ab_optilite", "ab_optilite", -16 ); + CreateDynamicObject( 19929, 3156.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3160.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3164.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3168.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3172.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3176.495117, 2898.645019, 54.188999, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3176.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3172.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3168.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3164.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3160.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19929, 3156.195068, 2898.646972, 54.191001, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.529052, 2899.382080, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.529052, 2898.622070, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.529052, 2897.862060, 54.959999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3156.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.079101, 2897.902099, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.079101, 2898.662109, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3176.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3172.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3168.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3164.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, 3160.079101, 2899.422119, 54.959999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3162.819091, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3167.918945, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3173.019042, 2894.870117, 54.078998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3162.819091, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3167.918945, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3173.019042, 2879.899902, 54.078998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2001, 3180.612060, 2903.082031, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2001, 3180.612060, 2871.708007, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2001, 3180.612060, 2887.403076, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2001, 3180.612060, 2879.861083, 53.374000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.465087, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3175.445068, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.472900, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2910.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2900.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2890.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2880.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.441894, 2870.861083, 60.937999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3140.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.649902, 2887.413085, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3170.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3180.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3160.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3150.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3140.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3130.649902, 2887.393066, 60.958000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3988, "civic06_lan", "casinobulb2_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3206.428955, 2894.111083, 61.444999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3205.305908, 2894.111083, 65.433998, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2894.382080, 51.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2880.403076, 51.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2880.413085, 61.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.190917, 2880.403076, 59.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.180908, 2894.382080, 61.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3195.190917, 2894.394042, 59.900001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 3194.886962, 2888.254882, 57.493999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 3194.883056, 2886.345947, 57.495998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 3195.592041, 2887.418945, 62.664001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3196.168945, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3200.020019, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3203.868896, 2875.896972, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.664062, 2876.389892, 51.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3196.168945, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3200.020019, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3203.868896, 2898.876953, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.664062, 2898.381103, 51.900001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2898.896972, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2875.895996, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.680908, 2898.906982, 61.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.670898, 2875.895019, 61.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.681884, 2898.876953, 59.888000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3200.681884, 2875.904052, 59.888000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3200.746093, 2887.375000, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3200.746093, 2887.375000, 53.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.169921, 2889.885986, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.169921, 2884.905029, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3199.729003, 2885.687988, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3199.729003, 2889.097900, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3197.021972, 2886.864990, 59.904998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3197.021972, 2888.035888, 59.907001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3199.021972, 2888.035888, 59.909000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, 3199.021972, 2886.864990, 59.907001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 869, 3196.104003, 2888.270996, 57.895000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3196.104003, 2886.949951, 57.895000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.169921, 2884.905029, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.169921, 2889.885986, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + CreateDynamicObject( 11727, 3198.472900, 2888.979980, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3198.472900, 2885.798095, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2889.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2891.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2893.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2895.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2897.908935, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2884.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2882.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2880.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2878.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3195.202880, 2876.906005, 57.415000, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3198.041992, 2875.916015, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3201.995117, 2875.916015, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3198.041992, 2898.856933, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11727, 3201.943115, 2898.856933, 57.384998, 90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2891.262939, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2893.262939, 53.784000, 0.000000, 0.000000, 24.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2895.262939, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2897.262939, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3197.302001, 2899.573974, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3198.551025, 2899.705078, 53.784000, 0.000000, 0.000000, 30.899999, -1, -1, -1 ); + CreateDynamicObject( 2350, 3202.224121, 2899.573974, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2883.510986, 53.784000, 0.000000, 0.000000, 122.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2881.510986, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2879.510986, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3194.061035, 2877.510986, 53.784000, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3197.361083, 2875.311035, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3199.009033, 2875.210937, 53.784000, 0.000000, 0.000000, -36.299999, -1, -1, -1 ); + CreateDynamicObject( 2350, 3198.142089, 2875.090087, 53.784000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3201.231933, 2876.131103, 54.794998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2350, 3202.383056, 2876.131103, 54.794998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1542, 3195.688964, 2895.531982, 54.234001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1541, 3195.739013, 2896.802978, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1541, 3195.739013, 2893.423095, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1542, 3195.688964, 2892.121093, 54.234001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1545, 3195.759033, 2882.740966, 54.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1541, 3195.739013, 2881.292968, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1545, 3195.759033, 2878.249023, 54.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1541, 3195.739013, 2879.943115, 54.433998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1548, 3195.187988, 2892.004882, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1548, 3195.187988, 2895.085937, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1548, 3195.187988, 2882.812988, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1548, 3195.187988, 2878.314941, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1548, 3195.187988, 2880.643066, 54.415000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14565, 3204.690917, 2884.108886, 55.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14565, 3204.690917, 2890.573974, 55.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3204.097900, 2892.910888, 51.875000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -17895696 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3204.097900, 2880.491943, 51.875000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -17895696 ); + CreateDynamicObject( 11686, 3203.916992, 2880.778076, 53.270000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 11686, 3203.916992, 2893.804931, 53.270000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14611, 3200.092041, 2880.576904, 59.959999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14611, 3200.092041, 2894.250000, 59.959999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2888.885986, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2885.904052, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2886.895019, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.177001, 2887.895996, 58.345001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + CreateDynamicObject( 1491, 3195.846923, 2886.649902, 53.375000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.178955, 2886.176025, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3196.178955, 2888.666992, 54.935001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10765, "airportgnd_sfse", "white", -16 ); + CreateDynamicObject( 2528, 3197.761962, 2888.893066, 53.404998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19873, 3197.743896, 2889.299072, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19873, 3197.604003, 2889.299072, 54.415000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19873, 3197.694091, 2889.299072, 54.534999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3180.437011, 2910.893066, 52.395000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2898.866943, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3199.700927, 2875.912109, 59.897998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 9495, "vict_sfw", "newall10_seamless", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3180.437011, 2864.899902, 52.395000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 4830, "airport2", "LASLACMA96", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3165.652099, 2864.927978, 81.424003, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3166.947998, 2910.870117, 81.414001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14625, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.177001, 2884.895019, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.150878, 2884.895019, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3198.187011, 2889.886962, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3203.142089, 2889.886962, 54.415000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 14493, 3198.009033, 2885.052978, 55.694999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3197.527099, 2885.581054, 51.674999, 0.000000, 0.000000, -43.099998, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2898.687988, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "SLOTS", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2891.133056, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "POKER", 130, "Times New Roman", 70, 0, -2987746, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2883.635986, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BLACKJACK", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3180.959960, 2876.062988, 53.404998, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "ROULETTE", 130, "Times new Roman", 70, 0, -2987746, 0, 1 ); + CreateDynamicObject( 1978, 3170.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, 3164.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, 3158.070068, 2875.992919, 54.446998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2685, 3197.076904, 2889.364013, 54.604999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, 3175.497070, 2898.697998, 58.275001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "$100,000,000 PRIZE!", 120, "Arial", 60, 0, -16724736, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, 3160.444091, 2898.697998, 58.275001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "$50,000,000 PRIZE!", 120, "Arial", 60, 0, -16724736, 0, 1 ); + CreateDynamicObject( 19819, 3195.177001, 2896.531005, 54.485000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19822, 3195.106933, 2896.200927, 54.375000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3194.710937, 2880.634033, 59.634998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BAR", 130, "Times New Roman", 110, 0, -2987746, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 3194.710937, 2894.579101, 59.634998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BAR", 130, "Times New Roman", 110, 0, -2987746, 0, 1 ); + tmpVariable = CreateDynamicActor( 252, 3198.350097, 2885.939941, 54.345001, 20.000000, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "blowjobz", "BJ_COUCH_LOOP_P", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 237, 3198.120117, 2886.320068, 55.384998, 215.000000, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 1, 1, 1, 0 ); + CreateDynamicActor( 172, 3196.590087, 2892.739990, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 172, 3196.590087, 2895.449951, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 172, 3196.590087, 2882.320068, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 172, 3196.590087, 2879.510009, 54.415000, 90.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 163, 3159.459960, 2894.860107, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); + tmpVariable = CreateDynamicActor( 163, 3159.459960, 2902.409912, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 163, 3159.459960, 2879.870117, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "COP_AMBIENT", "Coplook_nod", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 163, 3159.459960, 2872.320068, 54.403999, 90.000000, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 187, 3194.340087, 2896.699951, 54.465000, 177.600006, 1, 100.0, -1, -1, -1 ); + ApplyDynamicActorAnimation( tmpVariable, "misc", "Plyrlean_loop", 4.1, 1, 1, 1, 1, 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3105.908935, 2898.173095, 55.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3125.148925, 2853.114990, 56.500999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3125.148925, 2922.708984, 56.500999, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3124.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3116.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3105.909912, 2883.181884, 55.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 3125.523925, 2887.237060, 153.826995, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3108.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3100.666015, 2896.413085, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3100.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3108.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3124.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3111.502929, 2898.173095, 64.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19545, 3111.502929, 2883.178955, 64.527999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14390, "dr_gsnew", "mp_motel_carpet1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 3112.668945, 2908.408935, 59.921001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 3112.668945, 2867.394042, 59.921001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3112.666992, 2879.399902, 59.917999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -1118480 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3112.666992, 2896.403076, 59.917999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -1118480 ); + tmpVariable = CreateDynamicObject( 970, 3111.622070, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3113.684082, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3121.733886, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3119.672119, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3103.572021, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3105.634033, 2895.927978, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3111.622070, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3113.684082, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3103.572021, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3105.634033, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3121.733886, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + tmpVariable = CreateDynamicObject( 970, 3119.672119, 2879.868896, 60.967998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "goldPillar", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14410, 3098.326904, 2877.740966, 57.217998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3095.433105, 2874.910888, 58.160999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14410, 3096.274902, 2881.750000, 55.467998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); + tmpVariable = CreateDynamicObject( 14410, 3098.326904, 2898.162109, 57.217998, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "ab_carpGreenEdge", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3095.433105, 2900.900878, 58.160999, 90.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + tmpVariable = CreateDynamicObject( 14410, 3096.074951, 2894.064941, 55.467998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "ab_carpGreenEdge", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.675048, 2896.413085, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.424072, 2896.413085, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.675048, 2896.415039, 47.930000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.675048, 2879.391113, 47.928001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.414062, 2879.391113, 47.930000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3099.075927, 2879.393066, 47.931999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, 3126.132080, 2886.333984, 89.027999, 90.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3098.424072, 2896.741943, 53.179000, 0.000000, 55.599998, 90.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2891.930908, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2892.930908, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + CreateDynamicObject( 948, 3098.440917, 2892.180908, 56.748001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 3098.424072, 2878.918945, 53.275001, 0.000000, 55.599998, -90.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + CreateDynamicObject( 948, 3098.440917, 2883.577880, 56.748001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2883.879882, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3098.426025, 2882.879882, 44.257999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + tmpVariable = CreateDynamicObject( 19940, 3098.368896, 2882.499023, 57.138999, -34.299999, 90.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 6098, "tempo22_law", "newall8-1blue", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2880.851074, 58.259998, -34.299999, 90.000000, 0.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2893.346923, 57.195999, -34.299999, 90.000000, 180.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 3098.368896, 2895.010009, 58.328998, -34.299999, 90.000000, 180.000000, -1, -1, -1 ), 0, 6098, "tempo22_law", "newall8-1blue", -16 ); + CreateDynamicObject( 638, 3099.340087, 2879.381103, 60.729999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 638, 3099.340087, 2896.398925, 60.729999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3123.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3116.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3109.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3102.727050, 2899.356933, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3123.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3116.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3109.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 638, 3102.727050, 2876.311035, 61.085998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + CreateDynamicObject( 1702, 3107.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1702, 3114.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1702, 3121.250000, 2876.491943, 60.409000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1702, 3105.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1702, 3112.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1702, 3119.278076, 2899.353027, 60.409000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3095.510009, 2887.805908, 57.178001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3095.510009, 2890.326904, 57.178001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3110.603027, 2875.812011, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3113.104003, 2875.812011, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3110.603027, 2899.966064, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, 3113.104003, 2899.962890, 57.178001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 2946, "sw_doors", "bevdoor03_law", -16 ); + CreateDynamicObject( 1726, 3120.103027, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3123.292968, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3106.415039, 2876.621093, 55.518001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1727, 3106.420898, 2879.346923, 55.523998, 0.000000, 0.400000, -54.400001, -1, -1, -1 ); + CreateDynamicObject( 1727, 3103.358886, 2878.917968, 55.544998, 0.000000, 0.400000, 45.299999, -1, -1, -1 ); + CreateDynamicObject( 1727, 3122.888916, 2879.417968, 55.458000, 0.000000, 0.400000, -54.400001, -1, -1, -1 ); + CreateDynamicObject( 1727, 3118.091064, 2879.102050, 55.487998, 0.000000, 0.400000, 36.500000, -1, -1, -1 ); + CreateDynamicObject( 2315, 3120.025878, 2878.106933, 55.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1820, 3104.628906, 2877.575927, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3118.101074, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3121.434082, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3104.576904, 2899.156982, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1726, 3102.195068, 2896.812988, 55.518001, 0.000000, 0.000000, 70.500000, -1, -1, -1 ); + CreateDynamicObject( 2311, 3104.243896, 2897.230957, 55.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1433, 3121.701904, 2897.406982, 55.698001, 0.000000, 0.000000, 10.000000, -1, -1, -1 ); + CreateDynamicObject( 1433, 3119.587890, 2897.194091, 55.698001, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); + CreateDynamicObject( 1727, 3123.112060, 2895.913085, 55.498001, 0.000000, 0.000000, -143.899993, -1, -1, -1 ); + CreateDynamicObject( 1727, 3118.779052, 2895.469970, 55.498001, 0.000000, 0.000000, 134.300003, -1, -1, -1 ); + CreateDynamicObject( 948, 3116.669921, 2895.537109, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 948, 3108.666015, 2895.537109, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 948, 3108.666015, 2880.134033, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 948, 3116.660888, 2880.134033, 55.507999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.363037, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2889.547119, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.358886, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2892.718994, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2889.547119, 60.676998, 0.000000, 180.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19795, 3125.608886, 2886.363037, 57.227001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5785, "melrosetr1_lawn", "711doors1", -268435456 ); + CreateDynamicObject( 2001, 3126.614990, 2882.853027, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2001, 3126.614990, 2892.996093, 55.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3135.653076, 2878.382080, 55.995998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3133.643066, 2880.384033, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3128.639892, 2881.375000, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3135.653076, 2897.405029, 55.995998, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3133.643066, 2895.395996, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 3128.652099, 2894.395019, 55.998001, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "marble_wall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3133.259033, 2898.172119, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3128.645996, 2897.381103, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3133.259033, 2878.374023, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, 3128.645996, 2878.378906, 53.591999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 10931, "traingen_sfse", "desgreengrass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 3116.666015, 2879.389892, 56.527999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14777, "int_casinoint3", "GB_midbar01", -16 ); + CreateDynamicObject( 869, 3133.541992, 2897.909912, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3128.939941, 2898.900878, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3128.610107, 2896.730957, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3133.541992, 2877.931884, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3129.221923, 2877.041992, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 869, 3128.622070, 2879.133056, 56.518001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2010, 3131.676025, 2881.336914, 55.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2010, 3131.676025, 2894.341064, 55.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2906.809082, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2872.770019, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 1256, 3138.103027, 2868.766113, 56.169998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Visage Casino", 120, "David", 60, 1, -1, -16777216, 1 ); + CreateDynamicObject( 19324, 3141.304931, 2909.555908, 56.152000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19324, 3141.304931, 2866.250000, 56.152000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 19324, 3144.304931, 2866.251953, 56.152000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + + // Visage Apartment + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.661743, 1914.424804, 79.601951, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1994.449218, 1884.952758, 79.601951, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2004.888793, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.909790, 1913.835815, 83.722656, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1995.665649, 1915.413085, 84.282653, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1979.837280, 1895.915283, 84.282653, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.625000, 1901.715698, 78.544792, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1991.619384, 1903.713989, 83.722656, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.621337, 1901.721191, 83.722656, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.911743, 1909.958740, 88.692619, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1991.613647, 1903.726074, 78.544792, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.909790, 1905.994750, 83.722656, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 19273, 1983.361083, 1911.785644, 84.628677, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1983.600341, 1914.543701, 83.288696, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1981.448242, 1893.984619, 84.282653, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.454833, 1887.915161, 78.544792, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.446777, 1887.917114, 78.544792, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1981.458862, 1893.979125, 83.034774, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1981.468872, 1893.989135, 83.034774, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.621337, 1896.980468, 92.282592, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1986.308105, 1903.982910, 89.782653, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 2137, 1980.834960, 1895.928710, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2305, 1980.834960, 1894.977783, 83.250732, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1980.834960, 1896.908447, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2135, 1980.834960, 1897.899414, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2135, 1980.834960, 1898.888183, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1981.825927, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1982.806640, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2136, 1984.778564, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1984.776855, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1980.834960, 1899.878417, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2137, 1980.834960, 1900.869384, 83.250732, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1894.721191, 71.800598, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1895.721191, 71.800598, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1896.721191, 71.800598, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1897.721191, 71.800598, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1898.721191, 71.800598, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); + CreateDynamicObject( 1739, 1986.796630, 1898.349609, 84.180664, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1739, 1986.796630, 1897.000000, 84.170654, 0.000000, 0.000000, 12.399991, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1739, 1986.796630, 1895.768798, 84.180664, 0.000000, 0.000000, -22.099998, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2139, 1984.762695, 1898.737792, 83.230712, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2139, 1984.762695, 1897.768066, 83.230712, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2139, 1984.762695, 1896.787353, 83.230712, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2139, 1984.762695, 1895.806640, 83.230712, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2139, 1984.762695, 1894.827148, 83.230712, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2140, 1982.893066, 1902.996582, 83.292724, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2140, 1981.561767, 1902.996582, 83.292724, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 1986.031005, 1898.284179, 84.330688, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 1986.031005, 1897.073974, 84.330688, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 1986.031005, 1895.782958, 84.330688, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11707, 1984.501708, 1897.107910, 84.120666, 0.000000, 0.000000, -90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 1992.918212, 1900.991699, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 1990.614746, 1903.052856, 84.790649, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1992.904296, 1900.227783, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 1992.904296, 1900.448242, 84.790649, 0.000000, 0.000000, 43.199996, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19820, 1992.892089, 1900.710937, 84.790649, 0.000000, 0.000000, 43.199996, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1992.904296, 1901.708496, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1992.904296, 1901.508300, 84.800659, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1989.802978, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1990.043212, 1903.019775, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19820, 1990.343505, 1903.059814, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 1990.864013, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1991.333251, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 1992.956298, 1901.189453, 84.790588, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1543, 1992.956298, 1900.969238, 84.790588, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 1990.605468, 1903.050048, 84.790588, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1543, 1991.135986, 1903.100097, 84.790588, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1808, 1988.953369, 1894.689208, 83.272491, 0.000000, 0.000000, 180.000000, -1, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.451171, 1887.909912, 83.722656, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.661743, 1884.971435, 79.601951, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1998.248657, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1888.752929, 85.264495, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1910.636108, 85.264495, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1895.393188, 85.264495, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1903.994750, 85.264495, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2008.671508, 1899.891967, 85.841941, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.665649, 1896.968994, 87.758689, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.665649, 1921.847900, 87.758689, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1971.665649, 1896.968994, 87.758689, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1971.665649, 1921.847900, 87.758689, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, 2008.238403, 1899.906250, 84.982055, 90.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 18029, "genintintsmallrest", "GB_restaursmll05", -69904 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1990.859985, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1984.218017, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1980.809814, 1884.961425, 79.601959, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 11727, 2008.314941, 1904.036865, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1907.036865, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1910.036865, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1913.036865, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1895.664550, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1892.664550, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1889.664550, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1886.664550, 87.240608, 90.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1980.878051, 1904.002807, 83.722656, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 638, 1983.773315, 1905.277221, 83.990600, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18756, 1985.204223, 1909.457153, 85.249107, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18757, 1985.200561, 1909.448852, 85.244979, 0.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1992.364257, 1902.420532, 82.782791, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "ah_carp1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.164916, 1902.420532, 82.776794, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "ah_carp1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.164916, 1897.489624, 82.772796, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "ah_carp1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1992.364257, 1897.498657, 82.784790, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "ah_carp1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.770019, 1915.411010, 83.034774, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1982.918823, 1915.986816, 83.034774, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1979.847045, 1907.206665, 83.034774, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.652221, 1902.449829, 83.026802, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654174, 1897.488403, 83.028800, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.774536, 1884.966796, 83.028800, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1970.775024, 1884.966796, 83.028800, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1993.734741, 1884.956787, 83.032798, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.676635, 1884.956787, 83.036796, 0.000000, 90.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.664184, 1897.918579, 83.038803, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.664184, 1922.916625, 83.038803, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1979.838256, 1897.928344, 83.028800, 0.000000, 90.000000, 90.000000, -1, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, 1994.047973, 1901.686523, 85.392059, 90.000000, 0.000000, 0.000000, -1, VISAGE_APARTMENT_INT ), 0, 18029, "genintintsmallrest", "GB_restaursmll05", -69904 ); + + // Highroller Lounge + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6887.533203, 299.239013, 11.116000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -69904 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6903.533203, 299.239013, 11.107999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6895.533203, 290.239013, 11.114000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6895.533203, 307.239013, 11.109999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + tmpVariable = CreateDynamicObject( 1763, -6897.912109, 323.256988, 17.152000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14748, "sfhsm1", "AH_strntiles", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17566, "contachou1_lae2", "Heliconcrete", -16777216 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6890.167968, 306.134002, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6899.790039, 306.134002, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6899.790039, 289.454010, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6890.171875, 289.454010, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6890.167968, 300.134002, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6899.790039, 300.134002, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6890.171875, 295.454010, 6.375999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -6897.465820, 298.585998, 9.878000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -6892.465820, 298.536010, 9.876000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -6892.465820, 297.055999, 9.878000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -6897.465820, 297.045989, 9.876000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6885.440917, 300.222991, 6.375999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6885.440917, 295.223999, 6.375999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6904.519042, 295.223999, 6.379000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6904.514160, 300.222991, 6.379000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + CreateDynamicObject( 1978, -6889.035156, 292.821014, 12.635999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, -6900.667968, 292.821014, 12.635999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, -6894.826171, 291.688995, 12.576000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, -6894.826171, 293.299011, 12.576000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, -6894.826171, 303.998992, 12.576000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2188, -6894.826171, 302.259002, 12.576000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, -6889.035156, 303.351013, 12.635999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1978, -6900.667968, 303.341003, 12.635999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, -6895.064941, 297.684997, 11.973999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -6895.731933, 292.455993, 11.593999, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BLACKJACK", 130, "Times new roman", 70, 0, -2448096, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -6902.714843, 297.756011, 11.593999, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "POKER", 130, "Times new roman", 70, 0, -2448096, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -6902.733886, 302.786010, 11.593999, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "ROULETTE", 130, "Times new roman", 70, 0, -2448096, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -6902.733886, 292.955993, 11.593999, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "ROULETTE", 130, "Times new roman", 70, 0, -2448096, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -6895.731933, 303.225006, 11.593999, -90.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "BLACKJACK", 130, "Times new roman", 70, 0, -2448096, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6877.787109, 307.087005, 11.531999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "ah_poshwdflr1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6877.787109, 287.826995, 11.531999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "ah_poshwdflr1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6882.541992, 270.516998, 0.172000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6895.534179, 267.346984, 0.172000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6895.533203, 265.239013, 11.114000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6870.533203, 312.226013, 0.172000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6870.533203, 282.526000, 0.172000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6878.196777, 311.816986, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6878.196777, 282.927001, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6875.557128, 314.217010, 0.172000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6875.557128, 280.527008, 0.172000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14702, "sfhsm1", "ah_pnwainscot6", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6875.964843, 306.536987, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6875.964843, 288.207000, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + CreateDynamicObject( 14394, -6874.937011, 300.640991, 12.406000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14394, -6874.937011, 292.651000, 12.406000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6861.321777, 299.239013, 12.736000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -69904 ); + CreateDynamicObject( 14394, -6869.994140, 292.651000, 14.026000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14394, -6869.994140, 300.640991, 14.026000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14723, -6871.509765, 292.209991, 13.755999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6891.759765, 321.648986, 17.059999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + CreateDynamicObject( 14726, -6904.882812, 318.233001, 115.858001, 0.000000, 90.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6904.882812, 278.822998, 15.857999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6904.000000, 276.494995, 15.859999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 14726, -6900.628906, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6897.085937, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6898.750000, 321.648986, 17.059999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6909.247070, 321.648986, 17.059999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6875.962890, 287.769012, 17.902999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6875.962890, 306.979003, 17.902999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6856.664062, 302.609985, 14.357999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + CreateDynamicObject( 14394, -6863.557128, 292.651000, 16.325000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14394, -6864.837890, 292.651000, 15.444999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14394, -6863.557128, 300.631011, 16.325000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14394, -6864.837890, 300.631011, 15.444999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6849.950195, 262.540008, 16.662000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6849.950195, 297.570007, 16.662000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16768410 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6871.224121, 301.807006, 17.900999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6871.224121, 292.937011, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6867.222167, 282.927001, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6867.222167, 311.816009, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6873.049804, 282.928985, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6870.020996, 311.817993, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6862.485839, 287.657012, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6862.485839, 307.087005, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6867.277832, 301.808990, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6867.270996, 292.938995, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6862.483886, 288.209014, 17.902999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6862.481933, 306.540985, 17.905000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + CreateDynamicObject( 14723, -6871.509765, 300.739990, 13.755999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 14723, -6865.458007, 292.209991, 15.847000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 14723, -6865.458007, 300.709991, 15.857000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 14723, -6876.184082, 292.209991, 12.175000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 14723, -6876.184082, 300.679992, 12.175000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 1759, -6895.622070, 323.256988, 17.152000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14748, "sfhsm1", "AH_strntiles", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17566, "contachou1_lae2", "Heliconcrete", -16777216 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6863.839843, 316.555999, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6863.839843, 278.196014, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6858.689941, 292.165985, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6853.839843, 287.815002, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6857.632812, 302.966003, 17.900999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6853.839843, 306.936004, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6892.723144, 295.455993, 6.377999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + CreateDynamicObject( 948, -6900.103027, 277.636993, 17.118000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6893.558105, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6890.048828, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2784, -6876.574218, 287.941009, 12.895999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2784, -6876.574218, 306.901000, 12.895999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2783, -6876.564941, 306.933013, 12.935999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2783, -6876.564941, 287.983001, 12.935999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, -6876.494140, 287.971008, 13.178000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2325, -6876.494140, 306.941009, 13.178000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2773, -6893.497070, 292.484008, 12.116000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2773, -6896.229003, 292.484008, 12.116000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2773, -6896.229003, 303.125000, 12.116000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2773, -6893.376953, 303.125000, 12.116000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -6895.519042, 326.334014, 22.486000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 14726, -6904.121093, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.644042, 317.208007, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 317.208007, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 317.208007, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 317.208007, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 14726, -6885.898925, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6882.429199, 318.123992, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6906.171875, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6903.907226, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.642089, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6899.376953, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6897.112792, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6894.848144, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6892.583007, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6890.317871, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6888.053222, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6885.788085, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.522949, 317.208007, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -6895.533203, 332.239013, 11.109999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14702, "masmall3int2", "WH_carpet1", -4368 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.522949, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6885.788085, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6888.053222, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6890.317871, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6892.583007, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6894.848144, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6897.112792, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6899.376953, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.642089, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6903.907226, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6906.171875, 277.608001, 22.645999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 14726, -6904.882812, 278.822998, 15.857999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6900.628906, 278.523986, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6897.085937, 278.523986, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6893.558105, 278.523986, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6890.048828, 278.523986, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 14726, -6885.898925, 278.523986, 15.836000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 277.608001, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6889.421875, 277.608001, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 277.608001, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 277.608001, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 277.608001, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.421875, 277.608001, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6883.419921, 277.609985, 21.773000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.638183, 277.608001, 13.586000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.638183, 277.608001, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.638183, 277.608001, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.638183, 277.608001, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.636230, 277.609985, 21.888000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 15.850999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6907.638183, 277.608001, 11.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 18.115999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 20.381000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, -6901.644042, 277.608001, 21.846000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6888.256835, 321.639007, 27.062000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6898.751953, 321.639007, 17.062000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6909.180175, 321.639007, 17.063999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6887.787109, 276.230010, 17.059999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6898.740234, 273.169006, 17.059999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6909.208007, 273.169006, 17.059999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6898.745117, 273.178985, 17.062000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6909.224121, 273.178985, 17.062000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9339, -6896.428222, 317.041992, 18.000000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 18980, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9339, -6896.428222, 277.532989, 18.000000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 18980, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6885.436035, 332.721008, 10.618000, 0.000000, 180.000000, 90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_halltiles", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6885.436035, 268.372009, 1.878000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6885.436035, 325.721984, 1.878000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6909.006835, 341.721008, 1.878000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6882.057128, 253.011001, 1.878000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6909.006835, 253.042007, 1.878000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6908.997070, 253.022003, -8.302000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6878.079101, 266.872009, -8.302000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6882.063964, 253.022003, -8.302000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6882.057128, 341.742004, 1.878000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6882.063964, 341.731994, -8.302000, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6878.079101, 326.712005, -8.302000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6908.966796, 341.701995, -8.302000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6885.436035, 262.031005, 10.618000, 0.000000, 180.000000, 90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_halltiles", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6937.995117, 293.330993, 10.618000, 0.000000, 180.000000, 90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_halltiles", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6937.997070, 312.701995, 1.878000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6938.017089, 282.041992, 1.878000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6914.963867, 282.041992, 1.878000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 14754, "sfhsb3", "ah_wpaper10", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6914.950195, 299.411987, -8.302000, 0.000000, 90.000000, 180.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6937.985839, 312.691986, -8.302000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6938.016113, 282.052001, -8.302000, 0.000000, 90.000000, -90.000000, -1, -1, -1 ), 0, 9583, "bigshap_sfw", "bridge_walls2_sfw", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6894.157226, 297.541992, 23.722999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6852.694824, 297.541992, 23.721000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6914.036132, 306.536987, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6914.036132, 287.786987, 17.900999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6914.036132, 297.117004, 21.721000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + CreateDynamicObject( 14394, -6910.078125, 297.180999, 12.223999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -6913.954101, 301.231994, 10.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -6913.954101, 293.102996, 10.548000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -6913.681152, 298.253997, 10.548999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -6913.681152, 295.984008, 10.550999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 13691, "bevcunto2_lahills", "adeta", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, -6913.950195, 300.872009, 14.437000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3980, "cityhall_lan", "bevdoor03_law", -16 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6913.986816, 296.894012, 18.402999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "Highrollers", 130, "Times new ROMAN", 70, 1, -1, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6913.986816, 296.894012, 19.423999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "The Visage", 130, "Times new ROMAN", 100, 1, -1, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6853.839843, 297.355987, 26.600999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6853.837890, 306.548004, 17.902999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6853.835937, 288.320007, 17.905000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, -6913.950195, 295.842010, 14.437000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3980, "cityhall_lan", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19796, -6913.950195, 298.361999, 14.437000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3980, "cityhall_lan", "bevdoor03_law", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6890.904785, 276.231994, 17.058000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + CreateDynamicObject( 14410, -6886.852050, 269.070007, 13.949999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6894.556152, 271.079986, 17.055999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6884.934082, 272.761993, 17.058000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6894.994140, 273.178985, 17.065999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6884.935058, 276.248992, 17.065999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6884.935058, 272.778991, 17.065999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6888.179199, 271.098999, 11.880000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6885.201171, 318.598999, 17.059999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + CreateDynamicObject( 14410, -6886.852050, 325.070007, 13.949999, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6885.201171, 321.248992, 17.062000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6888.179199, 322.928985, 11.880000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6895.256835, 321.640991, 17.063999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6885.246093, 321.260986, 17.065999, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19454, -6885.246093, 318.580993, 17.068000, 0.000000, 90.000000, 90.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6846.889160, 300.268005, 17.902999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6846.887207, 292.579986, 17.905000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6899.695800, 295.454010, 6.377999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + CreateDynamicObject( 2111, -6889.064941, 297.684997, 11.973999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2111, -6901.064941, 297.684997, 11.973999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6849.104980, 301.817993, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6849.104980, 293.048004, 17.902999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "carpet-tile", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19890, -6832.902832, 297.541992, 22.340999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 14420, "dr_gsbits", "mp_gs_carpet", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2026, -6850.419921, 297.571990, 20.322000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19089, -6850.414062, 297.571990, 27.662000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + CreateDynamicObject( 2111, -6850.415039, 297.571990, 17.531999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6846.944824, 297.473999, 20.292999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "SUPER HIGH STAKES", 120, "Times new roman", 40, 0, -7563930, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6846.944824, 297.473999, 19.152999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "POKER", 120, "Times new roman", 50, 1, -10646872, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6856.359863, 302.989013, 19.521999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 1, 8501, "casroyale", "carfx1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6860.034179, 302.989013, 19.521999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 1, 8501, "casroyale", "carfx1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6860.034179, 292.148986, 19.521999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 8501, "casroyale", "carfx1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6856.359863, 292.158996, 19.521999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 8501, "casroyale", "carfx1", 0 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6858.335937, 292.239013, 21.371999, 0.000000, 1.299999, 90.000000, -1, -1, -1 ), 0, "www.sfcnr.com", 120, "Arial", 34, 0, -1, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3352, -6858.335937, 302.910003, 21.391000, 0.000000, -0.699999, 90.000000, -1, -1, -1 ), 0, "www.irresistiblegaming.com", 120, "Arial", 34, 0, -1, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6860.026855, 302.980010, 19.521999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 1, 7584, "miragecasino2", "visagesign2_256", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6856.359863, 302.980010, 119.522003, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 1, 7584, "miragecasino2", "visagesign2_256", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6860.026855, 292.199005, 19.521999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 7584, "miragecasino2", "visagesign2_256", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, -6856.349121, 292.199005, 19.521999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 1, 7584, "miragecasino2", "visagesign2_256", 0 ); + tmpVariable = CreateDynamicObject( 2773, -6853.829101, 300.569000, 17.691999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14626, "mafcassigns1", "ab_goldpipe", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14626, "mafcassigns1", "ab_goldpipe", -11862001 ); + tmpVariable = CreateDynamicObject( 2773, -6853.829101, 294.269012, 17.691999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14626, "mafcassigns1", "ab_goldpipe", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14626, "mafcassigns1", "ab_goldpipe", -11862001 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, -6859.951171, 297.570007, 15.671999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16764007 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, -6854.951171, 297.570007, 15.671999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16764007 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, -6849.951171, 297.570007, 15.671999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16764007 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18763, -6844.951171, 297.570007, 15.671999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 17946, "carter_mainmap", "mp_carter_carpet", -16764007 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -6877.787109, 297.446014, 11.531999, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 14748, "sfhsm1", "ah_poshwdflr1", 0 ); + CreateDynamicObject( 19146, -6853.402832, 301.085998, 21.351999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 19146, -6850.878906, 301.085998, 21.351999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 19146, -6847.959960, 301.085998, 21.351999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 19146, -6853.402832, 293.596008, 21.351999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19146, -6850.516113, 293.596008, 21.351999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19146, -6847.837890, 293.596008, 21.351999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, -6846.904785, 297.716003, 18.242000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "I", 140, "Arial Black", 80, 1, -16724737, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, -6846.904785, 297.526000, 18.242000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "G", 140, "Arial Black", 80, 1, -1, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -6850.488769, 293.082000, 19.302000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5418, "idlewood3_lae", "pizzasign2LA", -16 ); + CreateDynamicObject( 2734, -6851.416992, 301.638000, 18.722000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2732, -6850.203125, 301.638000, 18.722000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2735, -6851.416992, 301.638000, 20.002000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2733, -6850.205078, 301.638000, 20.002000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, -6846.904785, 300.865997, 17.461999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "CREATED BY GAL", 140, "Arial", 30, 1, -16724737, 0, 1 ); + CreateDynamicActor( 165, -6854.379882, 292.701995, 18.176000, 45.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 166, -6854.529785, 302.300994, 18.176000, 135.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 186, -6859.180175, 302.156005, 18.166000, 0.000000, 1, 100.0, -1, -1, -1 ); + CreateDynamicActor( 185, -6860.259765, 300.752014, 18.176000, 0.000000, 1, 100.0, -1, -1, -1 ); +} + +// purpose: creates the player associated apartments +static stock InitializeCasinoApartments( ) +{ + // Ashley Apartment + VISAGE_APARTMENT_WORLD = 10; + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 1988.261962, 1914.888305, 86.762825, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Ashley's Apartment", 120, "Comic Sans MS", 64, 1, -52429, 0, 1 ); + CreateDynamicObject( 948, 1983.599975, 1914.543945, 83.289001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 1992.917968, 1900.991943, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 1990.614990, 1903.052978, 84.791000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1992.904052, 1900.228027, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 1992.904052, 1900.447998, 84.791000, 0.000000, 0.000000, 43.200000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19820, 1992.891967, 1900.711059, 84.791000, 0.000000, 0.000000, 43.200000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1992.904052, 1901.708007, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1992.904052, 1901.508056, 84.801002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 1989.802978, 1903.079956, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1990.042968, 1903.020019, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19820, 1990.343994, 1903.060058, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 1990.864013, 1903.079956, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 1991.333007, 1903.079956, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 1992.956054, 1901.188964, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1543, 1992.956054, 1900.968994, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 1990.604980, 1903.050048, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1543, 1991.135986, 1903.099975, 84.791000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1904.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1907.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1910.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1913.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1895.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1892.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1889.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1886.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14891, 1984.292968, 1890.530029, 85.569000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14888, 1981.849975, 1887.232055, 84.111000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 16151, 2007.610961, 1890.974975, 83.640998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14890, 1980.894042, 1891.415039, 84.289001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2084, 1992.672973, 1888.204956, 83.278999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightred2_32", 0 ); + CreateDynamicObject( 2245, 1992.639038, 1888.000976, 84.458999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19317, 1992.203979, 1888.743041, 84.051002, -8.000000, 0.000000, -162.300003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1828, 1988.062011, 1889.428955, 83.268997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 1991.748046, 1904.704956, 83.291000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightred2_32", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 1994.847045, 1901.754028, 83.291000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightred2_32", 0 ); + CreateDynamicObject( 948, 1994.401000, 1904.489013, 83.240997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1994.401000, 1899.498046, 83.240997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1989.369995, 1904.489013, 83.240997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2255, 1980.813964, 1891.467041, 85.119003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2256, 1991.715942, 1904.239990, 85.669998, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2254, 1994.142944, 1901.635986, 85.710998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2726, 1981.689941, 1888.769042, 83.619003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1510, 1981.680053, 1888.769042, 83.929000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 16779, 1989.160034, 1889.270019, 87.238998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1702, 2000.827026, 1902.366943, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1702, 1999.467041, 1899.116943, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1702, 2004.438964, 1901.108032, 83.285003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1702, 2002.817016, 1897.704956, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1433, 2001.786987, 1900.089965, 83.444999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2244, 2001.732055, 1900.087036, 84.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 822, "gta_proc_ferns", "veg_bush2", -8734095 ); + CreateDynamicObject( 2726, 2002.089965, 1899.803955, 84.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2726, 2000.999023, 1900.614990, 83.635002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1485, 2000.999023, 1900.614990, 83.794998, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1510, 2000.999023, 1900.614990, 83.944999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1510, 2002.089965, 1899.803955, 84.625000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2026, 2001.682983, 1899.994018, 87.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 2008.140014, 1899.874023, 85.535003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 2008.235961, 1899.276000, 84.144996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "$", 130, "Arial", 50, 1, -1, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 2008.235961, 1900.447021, 84.144996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "$", 130, "Arial", 50, 1, -1, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 2008.235961, 1899.677001, 84.144996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "$", 130, "Arial", 50, 1, -1, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 2008.235961, 1900.067016, 84.144996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "$", 130, "Arial", 50, 1, -1, 0, 1 ); + tmpVariable = CreateDynamicObject( 2623, 1995.246948, 1887.946044, 84.834999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 8839, "vgsecarshow", "lightred2_32", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 8839, "vgsecarshow", "lightred2_32", 1 ); + CreateDynamicObject( 14820, 1996.265014, 1888.011962, 84.254997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 1996.275024, 1889.426025, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 1996.275024, 1886.564941, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 1999.874023, 1891.788940, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 1999.874023, 1887.847045, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 2004.796997, 1908.604003, 84.324996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 1998.760009, 1907.958984, 83.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 1994.765991, 1912.642944, 84.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2773, 1996.227050, 1913.718994, 83.792999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2773, 1993.347045, 1913.718994, 83.792999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 13187, 2002.598022, 1914.932006, 85.485000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 19174, "samppictures", "samppicture4", 0 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1994.813964, 1914.990966, 85.614997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "BLACKJACK", 130, "Times new roman", 70, 0, -38476, 0, 1 ); + CreateDynamicObject( 638, 2000.806030, 1914.500976, 83.964996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 638, 2004.326049, 1914.500976, 83.964996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 2007.816040, 1902.025024, 83.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 2007.816040, 1897.765014, 83.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19292, 2001.482055, 1889.791992, 83.434997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19292, 2001.482055, 1889.791992, 83.434997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19292, 2001.482055, 1889.791992, 83.434997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19292, 2001.482055, 1889.791992, 83.434997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 2007.943969, 1885.687988, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 1994.303955, 1885.687988, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 2007.813964, 1914.499023, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2325, 1992.218017, 1894.743041, 84.735000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2327, 1992.000000, 1894.706054, 85.444999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2327, 1992.360961, 1894.706054, 85.444999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2327, 1992.181030, 1894.706054, 85.444999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1550, 1991.527954, 1894.691040, 83.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1550, 1992.749023, 1894.691040, 83.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1829, 1982.564941, 1892.767944, 83.745002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1991.218994, 1893.479003, 85.464996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "ah_painting1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1988.310058, 1893.479003, 85.464996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "ah_painting2", 0 ); + CreateDynamicObject( 19786, 1992.977050, 1887.991943, 85.474998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1993.422973, 1890.686035, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1983.336059, 1909.404052, 86.815002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Top Floor", 130, "Times new roman", 60, 1, -38476, 0, 1 ); + + // Banging7Grams Apartment + VISAGE_APARTMENT_WORLD = 11; + CreateDynamicObject( 1212, 2004.691040, 1892.906005, 84.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.845947, 1893.161987, 84.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1993.900024, 1900.006958, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.999023, 1892.963989, 84.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2906, 1980.696044, 1898.010986, 84.363998, -4.400000, -1.600000, 176.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2908, 1986.005004, 1898.262939, 84.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 14446, 1982.119018, 1889.348022, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1891.790039, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 14651, 1999.531005, 1887.937988, 85.394996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19474, 2004.661987, 1892.957031, 83.675003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 2006.777954, 1912.025024, 84.264999, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 16779, 2002.489990, 1900.362060, 87.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 1999.801025, 1912.094970, 84.315002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2025, 1983.201049, 1892.989013, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1891.790039, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 19786, 1994.022949, 1901.682983, 86.095001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.411010, 1901.603027, 83.805000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1994.437011, 1901.610961, 83.694999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 14446, 1982.119018, 1889.348022, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 1723, 1999.529052, 1904.839965, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2001.671020, 1898.396972, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2003.772949, 1902.567993, 83.254997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1886.287963, 83.275001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19580, 1985.504028, 1897.422973, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1886.287963, 84.595001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1885.927001, 87.285003, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1889.910034, 83.275001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 11724, 1992.532958, 1887.912963, 83.785003, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 2233, 1993.900024, 1904.189941, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2232, 1994.328979, 1885.817993, 86.806999, 161.399993, -0.600000, -45.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 0, "", "", 0 ); + CreateDynamicObject( 2232, 2008.240966, 1885.421997, 86.755996, 18.100000, 179.699996, -139.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2007.569946, 1908.994018, 84.016998, 0.000000, 0.000000, 130.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 2007.766967, 1914.479003, 86.824996, 18.100000, 179.699996, 330.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 1994.477050, 1885.854003, 83.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1889.910034, 84.584999, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1829, 2007.324951, 1886.514038, 83.773002, 0.000000, 0.000000, -135.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1828, 1984.531982, 1889.536010, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1895, 1991.697998, 1904.314941, 85.822998, 0.000000, 0.000000, -179.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1889.938964, 85.885002, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2099, 1993.942993, 1893.895019, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2965, 1999.687988, 1887.298950, 84.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19604, 2008.135986, 1899.901000, 84.285003, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 2008.615966, 1897.828979, 85.705001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "black64", 0 ); + CreateDynamicObject( 18688, 1994.331054, 1901.467041, 81.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 2007.630981, 1914.468017, 83.897003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2003.339965, 1893.567993, 83.264999, 0.000000, 0.000000, 90.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2003.381958, 1892.562988, 83.305000, 0.000000, 0.000000, 90.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2005.942993, 1893.496948, 83.275001, 0.000000, 0.000000, -91.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2005.894042, 1892.390991, 83.224998, 0.000000, 0.000000, -94.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.956054, 1888.548950, 87.275001, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1887.238037, 87.275001, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19632, 1992.571044, 1887.899047, 83.524002, -70.599998, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1992.409057, 1887.921020, 83.665000, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 1992.922973, 1887.916992, 85.165000, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 16779, 1985.288940, 1889.286010, 87.404998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19172, 1980.343017, 1889.343994, 86.095001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2165, 1986.828002, 1885.921020, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2356, 1986.665039, 1887.214965, 83.294998, 0.000000, 0.000000, 155.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2002, 1984.881958, 1886.032958, 83.264999, 0.000000, 1.200000, 157.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.870971, 1887.140014, 83.264999, 0.000000, 0.000000, 110.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.381958, 1888.637939, 83.324996, 0.000000, 0.000000, 70.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1827, 1990.395996, 1888.362060, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2801, 1990.306030, 1888.435058, 83.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1893.017944, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1885.864990, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1892.093017, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1886.569946, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14455, 1991.040039, 1893.280029, 84.955001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1985.717041, 1893.213012, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1991.984985, 1893.250000, 83.305000, 0.000000, 0.000000, -176.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 1983.884033, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 1989.666015, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 1998.198974, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 2004.050048, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1896, 1991.699951, 1905.595947, 84.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11691, 2005.000000, 1888.753051, 83.275001, 0.000000, 0.000000, 42.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2005.688964, 1887.938964, 83.172996, 0.000000, 0.000000, -137.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2004.651000, 1889.995971, 83.285003, 0.000000, 0.000000, 41.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2003.776000, 1889.156982, 83.285003, 0.000000, 0.000000, 41.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 2008.615966, 1901.991943, 85.705001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "black64", 0 ); + CreateDynamicObject( 1664, 2004.010009, 1888.776000, 84.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1664, 2005.031005, 1889.746948, 84.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.969970, 1888.541015, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.900024, 1888.364990, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.874023, 1888.803955, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.702026, 1888.496948, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 2000.637939, 1900.994018, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2003.123046, 1904.093994, 83.317001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2002.892944, 1899.140991, 83.317001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1985.083007, 1910.640991, 83.212997, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -16777216 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1985.083007, 1908.229980, 83.212997, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -16777216 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1985.084960, 1909.389038, 83.214996, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -255000576 ); + CreateDynamicObject( 2010, 1986.604003, 1911.296020, 83.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2773, 1985.141967, 1911.485961, 83.803001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1983.784057, 1911.296020, 83.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1985.084960, 1909.389038, 83.214996, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -255000576 ); + CreateDynamicObject( 2773, 1985.141967, 1907.453002, 83.803001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1983.784057, 1907.443969, 83.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1986.656005, 1907.443969, 83.214996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3524, 1982.336059, 1909.373046, 84.723999, 31.899999, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 1994.038208, 1911.641723, 83.664710, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19175, 1993.957031, 1888.229980, 85.864997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2221, 2000.663940, 1901.729980, 83.885002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // Brad Apartment + VISAGE_APARTMENT_WORLD = 12; + CreateDynamicObject( 2111, 1999.035034, 1893.290039, 83.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1993.900024, 1900.006958, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2906, 1980.696044, 1898.010986, 84.363998, -4.400000, -1.600000, 176.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2908, 1986.005004, 1898.262939, 84.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14651, 2003.956054, 1890.062011, 85.394996, 0.000000, 0.000000, 140.100006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 2006.358032, 1911.515014, 84.264999, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 1999.801025, 1912.094970, 84.315002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19786, 1994.072998, 1901.682983, 85.614997, 3.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.411010, 1901.603027, 83.805000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1994.437011, 1901.610961, 83.694999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2001.529052, 1903.839965, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2003.671020, 1897.396972, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2005.772949, 1901.567993, 83.254997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19580, 1985.504028, 1897.422973, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1993.900024, 1904.189941, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2232, 1994.328979, 1885.817993, 86.806999, 161.399993, -0.600000, -45.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 0, "", "", 0 ); + CreateDynamicObject( 2232, 2008.240966, 1885.421997, 86.755996, 18.100000, 179.699996, -139.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2007.569946, 1908.994018, 84.016998, 0.000000, 0.000000, 130.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 2007.766967, 1914.479003, 86.824996, 18.100000, 179.699996, 330.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2099, 1993.942993, 1893.895019, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2965, 2004.576049, 1889.796020, 84.235000, 0.000000, 0.000000, 49.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18688, 1994.331054, 1901.467041, 81.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 2007.630981, 1914.468017, 83.897003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 2002.637939, 1899.994018, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2005.123046, 1903.093994, 83.317001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2004.892944, 1898.140991, 83.317001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2733, 1992.885986, 1887.114990, 86.305000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18055, "genintsmlrst_split", "GB_restaursmll16b", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2733, 1992.885986, 1887.114990, 84.584999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18055, "genintsmlrst_split", "GB_restaursmll17b", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2733, 1992.885986, 1888.725952, 86.315002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18055, "genintsmlrst_split", "GB_restaursmll17a", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2733, 1992.885986, 1888.725952, 84.605003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18055, "genintsmlrst_split", "GB_restaursmll16a", 0 ); + CreateDynamicObject( 2010, 1994.500000, 1885.833007, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1982.423950, 1893.478027, 85.571998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14802, "lee_bdupsflat", "Bdup_Poster", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, 1980.366943, 1889.381958, 85.815002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "ah_painting2", 0 ); + CreateDynamicObject( 14446, 1982.073974, 1889.478027, 83.864997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2835, 1984.373046, 1889.000000, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 951, 1982.634033, 1885.901000, 84.014999, 0.000000, 0.000000, 37.400001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1986.166992, 1885.959960, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1714, 1985.043945, 1887.130004, 83.285003, 0.000000, 0.000000, 18.399999, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19893, 1985.265991, 1886.181030, 84.224998, 0.000000, 0.000000, -169.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 14737, "whorewallstuff", "ah_painting1", 0 ); + CreateDynamicObject( 2196, 1984.967041, 1886.490966, 84.205001, 0.000000, 0.000000, 24.200000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2164, 1986.708007, 1893.448974, 83.271003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 1992.233032, 1885.828979, 83.324996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 2007.870971, 1885.833007, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1990.803955, 1905.479980, 83.275001, 0.000000, 0.000000, 137.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1993.500000, 1905.933959, 83.275001, 0.000000, 0.000000, -152.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1820, 1991.338989, 1906.152954, 83.263000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14804, 1991.631958, 1905.001953, 84.303001, 0.000000, 0.000000, -133.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19906, 1989.886962, 1914.927978, 87.352996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Brads Hotel", 130, "Times new Roman", 70, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19906, 1989.886962, 1914.927978, 86.623001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Room", 130, "Times new Roman", 70, 0, -16777216, 0, 1 ); + CreateDynamicObject( 640, 1989.848022, 1914.374023, 83.944999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2666, 1983.452026, 1909.348999, 86.584999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "10", 130, "TIMES NEW ROMAN", 110, 0, -16777216, 0, 1 ); + CreateDynamicObject( 1724, 1999.197998, 1898.532958, 83.264999, 0.000000, 0.000000, 101.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1724, 1999.113037, 1901.229003, 83.264999, 0.000000, 0.000000, 74.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11665, 1995.609008, 1888.282958, 83.995002, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // Daniel Apartment + VISAGE_APARTMENT_WORLD = 13; + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.682006, 1904.172973, 86.000999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Daniel's", 130, "Times New Roman", 70, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.682006, 1904.180053, 85.070999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Apartment", 130, "Times New Roman", 70, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.673950, 1897.963989, 82.768997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 13724, "docg01_lahills", "ab_tile2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.673950, 1898.925048, 82.768997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 13724, "docg01_lahills", "ab_tile2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.673950, 1902.426025, 82.764999, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 13724, "docg01_lahills", "ab_tile2", -16 ); + CreateDynamicObject( 11727, 2008.314941, 1904.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1907.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1910.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1913.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1895.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1892.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1889.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1886.665039, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19861, 2003.012939, 1885.984008, 86.694999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "black64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2001.166992, 1886.280029, 81.537002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 2233, 2005.550048, 1885.689941, 84.037002, 0.000000, 0.000000, -160.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19861, 1999.314941, 1885.984985, 86.694999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "black64", -16 ); + CreateDynamicObject( 2233, 1996.078002, 1885.885986, 84.037002, 0.000000, 0.000000, 168.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 2001.167968, 1886.708984, 78.777000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2001.166992, 1885.499023, 85.166999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 2315, 1998.837036, 1890.108032, 83.304000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 2003.798950, 1890.108032, 83.304000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 1996.958007, 1889.859008, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2000.667968, 1891.890014, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2001.697021, 1889.859008, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2006.058959, 1891.890014, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 2001.161010, 1892.456054, 83.306999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 2001.161010, 1889.347045, 83.306999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19525, 2003.786010, 1890.871948, 83.796997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19571, 1998.764038, 1890.338012, 83.817001, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19571, 1998.715942, 1891.369995, 83.817001, 90.000000, 45.299999, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2858, 2003.739013, 1890.223999, 83.857002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2861, 2003.667968, 1891.464965, 83.827003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.363037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.385009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.863037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.363037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.863037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.363037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.863037, 1884.901977, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.885009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.385009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.885009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.385009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.885009, 1884.901977, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.624023, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395019, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.176025, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.953979, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.723999, 1885.001953, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.625000, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395996, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.175048, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2005.671020, 1914.943969, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 1897, 1981.724975, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1979.843017, 1889.493041, 88.184997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14563, "triad_main", "casinowall1", -260011385 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1981.291992, 1889.493041, 82.794998, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14563, "triad_main", "casinowall1", -260011385 ); + CreateDynamicObject( 19937, 1986.072998, 1890.404052, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19937, 1986.072998, 1888.494018, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 1986.182983, 1889.453979, 84.945999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1214, "metal", "CJ_FRAME_Glass", 0 ); + CreateDynamicObject( 2233, 1986.469970, 1891.489013, 83.294998, 0.000000, 0.000000, -73.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1986.260009, 1886.774047, 83.294998, 0.000000, 0.000000, -107.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1992.436035, 1888.482055, 83.264999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2298, 1984.286010, 1888.166992, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 16150, "ufo_bar", "GEwhite1_64", -260011385 ); + CreateDynamicObject( 19893, 1992.437988, 1887.479003, 84.214996, 0.000000, 0.000000, -97.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2196, 1992.151977, 1887.318969, 84.194999, 0.000000, 0.000000, 95.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1714, 1991.379028, 1887.640991, 83.264999, 0.000000, 0.000000, 78.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1985.880981, 1913.443969, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2003.668945, 1915.453979, 84.285003, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.697998, 1914.941040, 83.032997, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1991.676025, 1913.441040, 83.032997, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + CreateDynamicObject( 1897, 1983.944946, 1885.001953, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1991.676025, 1914.441040, 83.032997, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1987.887939, 1915.453979, 84.285003, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1991.640991, 1913.443969, 72.044998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1991.640991, 1925.453979, 84.055000, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19887, 1983.145996, 1913.508056, 84.282997, 90.000000, 90.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18202, "w_towncs_t", "hatwall256hi", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19887, 1985.166992, 1915.430053, 84.282997, 90.000000, 90.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18202, "w_towncs_t", "hatwall256hi", 1 ); + CreateDynamicObject( 19887, 1985.166992, 1915.449951, 84.282997, 90.000000, 90.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2000.256958, 1912.958984, 85.413002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16646, "a51_alpha", "stanwind_nt", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1993.615966, 1912.958984, 85.413002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16646, "a51_alpha", "stanwind_nt", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1986.977050, 1912.958984, 85.413002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16646, "a51_alpha", "stanwind_nt", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1991.640991, 1913.443969, 99.455001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2002.659057, 1913.447021, 84.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2003.659057, 1913.447021, 84.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2002.571044, 1913.448974, 84.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 1601, 1999.947998, 1913.484985, 85.055000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1601, 1989.786987, 1913.484985, 86.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1601, 1994.876953, 1913.484985, 85.105003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1603, 1992.994995, 1913.441040, 86.205001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1605, 1990.814941, 1913.907958, 85.254997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1606, 1997.650024, 1914.347045, 86.065002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2007.865966, 1899.906982, 79.236999, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 2229, 2008.161987, 1901.907958, 84.154998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2229, 2008.151977, 1897.286987, 84.154998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19284, 2008.848022, 1900.027954, 83.355003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19281, 2008.848022, 1900.027954, 83.355003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18648, 2008.630981, 1898.937988, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18648, 2008.630981, 1900.818969, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2229, 2008.151977, 1897.657958, 83.735000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2229, 2008.171997, 1901.537963, 83.735000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19281, 1984.949951, 1898.296997, 90.035003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 2007.146972, 1899.930053, 84.016998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6056, "venice_law", "stonewall_la", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 2007.146972, 1899.930053, 83.616996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6056, "venice_law", "stonewall_la", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 2007.146972, 1900.911010, 83.027000, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6056, "venice_law", "stonewall_la", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19940, 2007.146972, 1898.938964, 83.027000, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6056, "venice_law", "stonewall_la", -16 ); + CreateDynamicObject( 2028, 2007.182983, 1899.953979, 83.717002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2855, 2007.150024, 1899.306030, 83.635002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2828, 2007.189941, 1900.020996, 84.007003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1569, 2005.387939, 1914.463989, 83.247001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 1995.259033, 1901.642944, 84.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2600, 2007.756958, 1910.902954, 84.035003, 0.000000, 0.000000, 46.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 3, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 1985, 1989.043945, 1891.079956, 86.330001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19087, 1989.043945, 1891.069946, 88.690002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 19355, "none", "none", -268435456 ); + CreateDynamicObject( 1726, 2003.411987, 1903.020996, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2005.401977, 1896.796997, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2002.491943, 1898.909057, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 2004.666015, 1899.875000, 83.635002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11665, 1994.938964, 1911.328979, 84.004997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1824, 2001.761962, 1907.947021, 83.735000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2571, 1993.225952, 1906.005004, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 638, 2007.762939, 1906.098022, 83.974998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // MrFreeze Apartment + VISAGE_APARTMENT_WORLD = 14; + CreateDynamicObject( 948, 1983.599975, 1914.543945, 83.289001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1990.859985, 1884.993041, 85.263999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1984.218017, 1884.993041, 85.263999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); + CreateDynamicObject( 11727, 2008.314941, 1904.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1907.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1910.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2008.314941, 1913.036987, 87.240997, 90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1998.047973, 1909.453979, 82.801002, 90.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 2001.048950, 1891.963012, 80.794998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 2001.048950, 1901.963012, 80.794998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 2003.316040, 1898.139038, 80.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "ah_carp1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1991.053955, 1909.453979, 82.796997, 90.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1981.074951, 1909.453979, 82.796997, 90.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1991.089965, 1885.001953, 85.876998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1984.480957, 1885.001953, 85.876998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11686, 2001.000976, 1888.512939, 83.294998, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 3, 18028, "cj_bar2", "GB_nastybar01", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 1997.417968, 1892.916992, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18028, "cj_bar2", "GB_nastybar08", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 2000.459960, 1892.916992, 83.285003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18028, "cj_bar2", "GB_nastybar08", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 2001.628051, 1892.916992, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18028, "cj_bar2", "GB_nastybar08", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11717, 2004.651000, 1892.916992, 83.285003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 18028, "cj_bar2", "GB_nastybar08", -16 ); + CreateDynamicObject( 2315, 1998.949951, 1892.151977, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 2003.130981, 1892.151977, 83.294998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1548, 2003.114013, 1892.884033, 83.815002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1548, 1998.953979, 1892.884033, 83.815002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1994.536987, 1901.718017, 83.675003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2828, 1994.376953, 1901.738037, 84.305000, 0.000000, 0.000000, -103.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.428955, 1901.727050, 83.785003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 2003.469970, 1898.142944, 80.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 1997.099975, 1909.989013, 80.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + CreateDynamicObject( 951, 2006.183959, 1885.675048, 84.035003, 0.000000, 0.000000, -45.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 951, 1995.881958, 1885.675048, 84.035003, 0.000000, 0.000000, 45.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2295, 1990.045043, 1888.805053, 83.235000, 0.000000, 0.000000, 86.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2295, 1990.213989, 1886.823974, 83.235000, 0.000000, 0.000000, 112.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 1992.956054, 1887.870971, 85.175003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 14860, "gf1", "mp_apt1_pos4", -16 ); + CreateDynamicObject( 2028, 1992.407958, 1888.161010, 83.385002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 1581, 1992.409057, 1887.532958, 83.305000, 90.000000, 16.500000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14860, "gf1", "mp_apt1_pos4", -16 ); + CreateDynamicObject( 2300, 1984.855957, 1888.223999, 83.315002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 356, 1980.743041, 1889.125000, 84.249000, 95.099998, 90.000000, 4.199999, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 370, 1980.900024, 1891.765014, 83.635002, 0.000000, 0.000000, 96.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 371, 1981.625000, 1888.676025, 83.525001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19825, 1980.380981, 1889.505981, 86.055000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2813, 1980.739013, 1888.206054, 84.544998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2102, 1981.052001, 1890.870971, 84.525001, 0.000000, 0.000000, 82.400001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2828, 1980.928955, 1888.262939, 85.144996, 0.000000, 0.000000, -78.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2833, 1984.564941, 1889.092041, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1986.811035, 1885.963012, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 1983.875976, 1893.336059, 85.305000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2726, 1984.609008, 1893.281982, 85.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2726, "lee_txd", "Strip_lamp", -1043950 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2726, 1983.128051, 1893.281982, 85.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2726, "lee_txd", "Strip_lamp", -251710301 ); + CreateDynamicObject( 1734, 1988.020019, 1890.114013, 87.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2726, 1983.619018, 1893.281982, 85.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2726, "lee_txd", "Strip_lamp", -255 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2726, 1984.119018, 1893.281982, 85.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2726, "lee_txd", "Strip_lamp", -251680154 ); + CreateDynamicObject( 1741, 1987.223022, 1891.983032, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14863, 1989.635009, 1890.483032, 83.864997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19999, 1985.832031, 1886.892944, 83.294998, 0.000000, 0.000000, -22.899999, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19893, 1985.739013, 1886.046997, 84.205001, 0.000000, 0.000000, 167.100006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 638, 1991.619018, 1904.619995, 83.967002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2406, 1980.487060, 1885.737060, 84.504997, -6.599999, 0.000000, 102.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2779, 1994.822021, 1914.161010, 83.257003, 0.000000, 0.000000, -11.399999, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2778, 1992.615966, 1914.288940, 83.257003, 0.000000, 0.000000, 5.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 1987.650024, 1914.352050, 83.236999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 2003.411010, 1899.983032, 79.084999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 15048, "labigsave", "AH_fancyceil", -16 ); + CreateDynamicObject( 948, 2005.488037, 1906.451049, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 2002.526977, 1911.463012, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2002.277954, 1909.913940, 83.271003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 1998.826049, 1907.892944, 83.271003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1824, 2001.505981, 1901.890991, 83.764999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2311, 2000.498046, 1908.100952, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2000.592041, 1904.053955, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2002.583007, 1899.682983, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19443, 2008.060058, 1899.911010, 85.708000, 87.599998, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "black64", -16 ); + CreateDynamicObject( 1896, 2006.427978, 1899.936035, 84.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19814, 2008.010009, 1899.886962, 85.074996, 2.299999, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 7584, "miragecasino2", "visagesign2_256", 0 ); + + // Hariexy Apartment + VISAGE_APARTMENT_WORLD = 15; + CreateDynamicObject( 2069, 2007.516967, 1901.884033, 83.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2007.516967, 1897.953002, 83.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2006.339965, 1901.489990, 83.254997, 0.000000, 0.000000, -32.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2007.218994, 1898.996948, 83.254997, 0.000000, 0.000000, -141.600006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19796, 2008.137939, 1902.000000, 85.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "H", 100, "Times new Roman", 120, 0, -12490271, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19796, 2008.137939, 1900.288940, 85.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Z", 100, "Times new Roman", 120, 0, -12490271, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19796, 2008.137939, 1901.119018, 85.574996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "&", 100, "Times new Roman", 120, 0, -12490271, 0, 1 ); + CreateDynamicObject( 2245, 2007.597045, 1899.985961, 84.035003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2083, 2007.222045, 1900.468994, 83.285003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.624023, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395019, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.176025, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.953979, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.723999, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.625000, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395996, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.175048, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 1897, 1983.953979, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -268435456 ); + CreateDynamicObject( 1897, 1981.724975, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1905.531005, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1908.562011, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1911.521972, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1902.540039, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1894.160034, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1891.159057, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1888.189941, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1897.151000, 75.125000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1911.501953, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1908.551025, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1905.540039, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1902.541015, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1894.239990, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1891.222045, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1888.170043, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654052, 1897.141967, 84.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 1897, 1981.732055, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -268435456 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1989.121948, 1893.572021, 88.775001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1979.491943, 1893.572021, 88.764999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1980.260009, 1890.189941, 88.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1976.479980, 1885.380981, 88.764999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, 1993.034057, 1888.796997, 85.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, 1993.036010, 1887.026977, 85.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + tmpVariable = CreateDynamicObject( 1761, 2006.012939, 1888.547973, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 16102, "des_cen", "CJ-COUCHL2", 0 ); + SetDynamicObjectMaterial( tmpVariable, 0, 11717, "ab_wooziec", "ab_fabricRed", 0 ); + tmpVariable = CreateDynamicObject( 1761, 2002.072021, 1890.150024, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 16102, "des_cen", "CJ-COUCHL2", 0 ); + SetDynamicObjectMaterial( tmpVariable, 0, 11717, "ab_wooziec", "ab_fabricRed", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.713012, 1891.222045, 71.553001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.713012, 1892.222045, 71.553001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.713012, 1890.222045, 71.553001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + tmpVariable = CreateDynamicObject( 19786, 2007.840942, 1891.203979, 84.694999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 10226, "sfeship1", "CJ_TV_SCREEN", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 10226, "sfeship1", "CJ_TV_SCREEN", -16777216 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1891.840942, 83.444999, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1890.579956, 83.444999, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1890.579956, 83.644996, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1890.579956, 83.845001, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1891.840942, 83.845001, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2688, 2007.354003, 1891.840942, 83.644996, 90.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 1827, 2004.833984, 1891.230957, 83.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2083, 1994.797973, 1888.605957, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2083, 1994.797973, 1886.296020, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 1994.343994, 1887.961059, 83.855003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2004.140014, 1886.688964, 84.065002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 1451, 1998.176025, 1887.171997, 84.084999, 0.000000, 0.000000, 158.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "des_ghotwood1", 0 ); + CreateDynamicObject( 19993, 1998.994995, 1887.876953, 83.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19993, 1998.844970, 1887.697021, 83.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19847, 1998.019042, 1888.397949, 83.334999, -5.599999, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2029, 2004.984008, 1906.921997, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2964, "k_pool", "Bow_bar_tabletop_wood", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2029, 2004.984008, 1908.901977, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2964, "k_pool", "Bow_bar_tabletop_wood", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, 2004.985961, 1907.223999, 83.294998, -90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 3922, "bistro", "Tablecloth", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, 2004.985961, 1909.593994, 83.294998, -90.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 3922, "bistro", "Tablecloth", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2124, 2003.965942, 1909.395019, 84.095001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1594, "chairsntable", "wood02", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2124, 2003.965942, 1907.413940, 84.095001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1594, "chairsntable", "wood02", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2124, 2006.006958, 1907.413940, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1594, "chairsntable", "wood02", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2124, 2006.015991, 1909.395019, 84.095001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1594, "chairsntable", "wood02", -16 ); + CreateDynamicObject( 19525, 2004.973022, 1908.418945, 84.086997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 2004.712036, 1909.416015, 84.105003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 2005.233032, 1909.416015, 84.105003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 2004.712036, 1907.415039, 84.105003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11744, 2005.233032, 1907.405029, 84.105003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2259, 1986.818969, 1914.427978, 85.224998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 2259, "picture_frame_clip", "CJ_PAINTING6", -16 ); + CreateDynamicObject( 2259, 1990.318969, 1914.427978, 85.224998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2259, 1993.818969, 1914.427978, 85.224998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 2259, "picture_frame_clip", "CJ_PAINTING4", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2259, 1997.318969, 1914.427978, 85.224998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 2259, "picture_frame_clip", "CJ_PAINTING12", -16 ); + CreateDynamicObject( 948, 1992.144042, 1914.526000, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1988.644042, 1914.526000, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1995.644042, 1914.526000, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18765, 2003.114013, 1919.892944, 84.955001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "H & Z", 130, "Times new roman", 80, 1, -16777216, 0, 1 ); + CreateDynamicObject( 11727, 1999.619995, 1914.406005, 87.245002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 2001.619995, 1914.406005, 87.245002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicObject( 1761, 2003.982055, 1893.812011, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 16102, "des_cen", "CJ-COUCHL2", 0 ); + SetDynamicObjectMaterial( tmpVariable, 0, 11717, "ab_wooziec", "ab_fabricRed", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2573, 1985.152954, 1892.993041, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 3, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2576, 1992.484008, 1890.235961, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 19787, 1992.973999, 1887.857055, 85.285003, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1983.322998, 1889.748046, 88.345001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1983.319946, 1884.957031, 84.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 14446, 1985.151977, 1889.162963, 83.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2834, 1987.904052, 1888.659057, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1736, 1983.713989, 1889.139038, 86.205001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 1979.000976, 1885.369995, 88.684997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 6287, "pierc_law2", "ws_vic_wood1", -16 ); + CreateDynamicObject( 14705, 1992.595947, 1889.376953, 85.694999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2828, 1992.626953, 1887.901000, 84.394996, 0.000000, 0.000000, 83.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2241, 1989.110961, 1893.024047, 83.745002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2241, 1991.071044, 1893.024047, 83.745002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1731, 1983.561035, 1891.140014, 84.595001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1731, 1983.561035, 1887.088989, 84.595001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1983.858032, 1885.857055, 84.114997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2195, 1992.620971, 1885.961059, 83.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1828, 2002.431030, 1901.511962, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1703, 1995.317016, 1900.677001, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1703, 1998.317016, 1902.677978, 83.264999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1822, 1996.306030, 1901.147949, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2100, 1999.911987, 1914.708007, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2811, 1991.538940, 1905.027954, 83.754997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2126, 1991.067016, 1904.545043, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2260, 1991.677001, 1904.696044, 85.233001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2280, 1994.635986, 1901.729003, 85.114997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 1994.766967, 1903.723022, 83.324996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 1991.536010, 1905.004028, 82.084999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2076, 1986.762939, 1909.417968, 86.523002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2076, 1991.762939, 1909.417968, 86.523002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2076, 1996.762939, 1909.417968, 86.523002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // Harpreet Apartment + VISAGE_APARTMENT_WORLD = 16; + SetDynamicObjectMaterial( CreateDynamicObject( 2298, 1988.984008, 1889.255981, 83.264999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 2238, 1992.734008, 1889.239013, 84.194999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2238, 1992.734008, 1886.588012, 84.194999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1736, 1992.629028, 1887.943969, 85.694999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2225, 1980.318969, 1889.609008, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 1980.385986, 1888.791992, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 1980.385986, 1890.692993, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 1980.489990, 1887.833007, 83.285003, 0.000000, 0.000000, 115.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 1980.645996, 1891.619995, 83.285003, 0.000000, 0.000000, 65.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, 1980.621948, 1889.514038, 86.313003, 9.600000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "CONNECTING...", 130, "Grandma's Television", 20, 0, -1, -16777216, 1 ); + CreateDynamicObject( 1702, 1984.057006, 1890.446044, 83.275001, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1705, 1983.687988, 1892.425048, 83.275001, 0.000000, 0.000000, -77.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1705, 1983.761962, 1887.453979, 83.275001, 0.000000, 0.000000, -111.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 1982.426025, 1888.766967, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2661, 1980.385986, 1889.494018, 84.617996, 9.600000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "L G", 130, "Grandma's Television", 50, 0, -1, 0, 1 ); + CreateDynamicObject( 2202, 1986.615966, 1885.957031, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2202, 1988.597045, 1885.957031, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1988.535034, 1885.852050, 84.264999, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1988.573974, 1885.852050, 84.275001, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1988.437988, 1885.852050, 84.241996, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1988.370971, 1885.852050, 84.224998, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + tmpVariable = CreateDynamicObject( 2854, 1987.651000, 1885.852050, 84.475997, 0.000000, -8.399999, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( tmpVariable, 2, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( tmpVariable, 3, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( tmpVariable, 4, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1986.722045, 1885.852050, 84.307998, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2684, 1986.412963, 1885.852050, 84.234001, -76.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", -16 ); + CreateDynamicObject( 2195, 1991.203002, 1893.081054, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2195, 1988.703002, 1893.081054, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2195, 1986.203002, 1893.081054, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1894.088989, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1891.129028, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1905.489013, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1908.458984, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1911.558959, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.659057, 1888.108032, 75.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 1726, 2004.615966, 1911.496948, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2006.626953, 1905.474975, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2002.991943, 1906.671997, 83.264999, 0.000000, 0.000000, 111.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2002.735961, 1909.211059, 83.264999, 0.000000, 0.000000, 78.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.017944, 1908.478027, 71.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.017944, 1909.478027, 71.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.017944, 1907.478027, 71.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 19786, 2008.197021, 1908.479003, 84.894996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1787, 2007.883056, 1908.441040, 84.125000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19825, 2008.113037, 1908.449951, 86.464996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2661, 2007.485961, 1909.255004, 83.625000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1214, "metal", "CJ_FRAME_Glass", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2661, 2007.485961, 1907.764038, 83.625000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1214, "metal", "CJ_FRAME_Glass", -16 ); + CreateDynamicObject( 2006, 2007.546997, 1908.250000, 83.625000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2006, 2007.546997, 1908.709960, 83.625000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2779, 2007.600952, 1892.650024, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2681, 2007.600952, 1889.568969, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2778, 2007.600952, 1886.598022, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 2006.957031, 1889.836059, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 2006.957031, 1892.916992, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 2006.957031, 1886.845947, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1824, 2000.207031, 1889.510986, 83.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1703, 1999.213989, 1891.713989, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1703, 2001.234985, 1887.243041, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 1997.881958, 1889.546997, 83.260002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 2002.654052, 1889.546997, 83.260002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 638, 1994.343017, 1888.505004, 83.964996, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1994.477050, 1886.114013, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1827, 2004.937011, 1908.416992, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2259, 1988.760986, 1914.415039, 85.035003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2255, 1998.562988, 1914.415039, 85.035003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2254, 1993.871948, 1914.875000, 85.495002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2256, 2003.442993, 1914.885009, 85.334999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18656, 1996.290039, 1916.478027, 81.915000, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18656, 2000.781005, 1916.478027, 81.915000, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18656, 1991.188964, 1916.478027, 81.915000, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.435058, 1901.686035, 83.785003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19632, 1994.564941, 1901.713989, 83.294998, 0.000000, 0.000000, 86.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2257, 1991.650024, 1904.270996, 85.535003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11665, 2006.547973, 1899.923950, 83.974998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19609, 1999.407958, 1897.129028, 83.275001, 0.000000, 0.000000, -148.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19616, 2000.413940, 1900.162963, 83.264999, 0.000000, 0.000000, -49.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19317, 2000.526000, 1899.656982, 84.043998, -7.300000, 0.000000, -26.100000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19318, 2000.255004, 1900.718994, 83.962997, -15.500000, 0.000000, -159.600006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19611, 1998.243041, 1899.801025, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19610, 1998.243041, 1899.801025, 84.915000, 0.000000, 0.000000, -113.400001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11719, 1980.624023, 1898.061035, 84.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1994.057983, 1901.673950, 86.154998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "HarpNavJon", 130, "Times new Roman", 100, 0, -16724737, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1994.057983, 1901.673950, 85.105003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "<3", 130, "Times new Roman", 110, 0, -16724737, 0, 1 ); + CreateDynamicActor( 257, 1981.520019, 1897.949951, 84.285003, 90.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicActor( 251, 1997.329956, 1899.079956, 84.285003, 0.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "STRIP", "STR_Loop_B", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 140, 1998.829956, 1900.949951, 84.285003, 0.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "STRIP", "STR_A2B", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 138, 1984.079956, 1889.349975, 84.245002, 78.300003, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "beach", "ParkSit_W_loop", 4.1, 1, 1, 1, 1, 0 ); + + // Nibble Apartment + VISAGE_APARTMENT_WORLD = 17; + tmpVariable = CreateDynamicObject( 2259, 1989.623046, 1904.677001, 83.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2259, 1994.614013, 1901.666992, 85.345001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 1, 14517, "im_xtra", "CJ_PAINTING13", -16 ); + tmpVariable = CreateDynamicObject( 2259, 1989.623046, 1904.677001, 84.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + tmpVariable = CreateDynamicObject( 2259, 1989.623046, 1904.677001, 85.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + tmpVariable = CreateDynamicObject( 2259, 1993.662963, 1904.687988, 83.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + tmpVariable = CreateDynamicObject( 2259, 1993.662963, 1904.687988, 84.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + tmpVariable = CreateDynamicObject( 2259, 1993.662963, 1904.687988, 85.805000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14517, "im_xtra", "CJ_PLANT", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1993.000976, 1885.974975, 79.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "sa_wood08_128", -16 ); + CreateDynamicObject( 19937, 1992.754028, 1886.873046, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1993.000976, 1889.905029, 79.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "sa_wood08_128", -16 ); + CreateDynamicObject( 2906, 1980.696044, 1898.010986, 84.363998, -4.400000, -1.600000, 176.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2908, 1986.005004, 1898.262939, 84.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19825, 1992.911987, 1887.975952, 86.555000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2165, 1985.906005, 1885.978027, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1714, 1985.437988, 1886.885009, 83.275001, 0.000000, 0.000000, 19.899999, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2331, 1985.276000, 1893.088989, 83.535003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2025, 1983.201049, 1892.989013, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1891.790039, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 14446, 1982.119018, 1889.348022, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 19580, 1985.504028, 1897.422973, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2232, 1994.328979, 1885.817993, 86.806999, 161.399993, -0.600000, -45.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 0, "", "", 0 ); + CreateDynamicObject( 2232, 2008.240966, 1885.421997, 86.755996, 18.100000, 179.699996, -139.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 2007.766967, 1914.479003, 86.824996, 18.100000, 179.699996, 330.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 1994.477050, 1885.854003, 83.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 2007.630981, 1914.468017, 83.897003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 1993.012939, 1887.906982, 85.164001, -1.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 16779, 1985.288940, 1889.286010, 87.404998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19172, 1980.343017, 1889.343994, 86.095001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.870971, 1887.140014, 83.264999, 0.000000, 0.000000, 110.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.381958, 1888.637939, 83.324996, 0.000000, 0.000000, 70.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1827, 1990.395996, 1888.362060, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2801, 1990.306030, 1888.435058, 83.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1893.017944, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1885.864990, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1892.093017, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1886.569946, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19937, 1992.754028, 1888.782958, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.681030, 1904.133056, 86.425003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Welcome", 130, "Times new Roman", 70, 0, -16768462, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.681030, 1904.133056, 85.625000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "To", 130, "Times new Roman", 70, 0, -16768462, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1992.181030, 1904.133056, 84.824996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Nibble's", 130, "Times new Roman", 70, 0, -16768462, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.181030, 1904.133056, 84.025001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Apartment", 130, "Times new Roman", 70, 0, -16768462, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, 2007.827026, 1900.542968, 83.665000, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 9131, 2007.828979, 1899.303955, 83.666999, 0.000000, 90.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19843, 2007.946044, 1901.687988, 84.997001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19843, 2007.946044, 1898.157958, 84.997001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19843, 2007.946044, 1901.687988, 85.997001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19843, 2007.946044, 1898.157958, 85.997001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + CreateDynamicObject( 2230, 2008.136962, 1897.478027, 83.574996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2230, 2008.136962, 1901.748046, 83.525001, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2245, 2007.807983, 1898.166992, 85.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2194, 2007.807983, 1901.667968, 85.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2828, 2007.843017, 1898.155029, 86.044998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1785, 2007.843017, 1901.687011, 86.144996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2388, 2008.008056, 1898.031005, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2388, 2008.008056, 1902.291992, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19298, 2008.730957, 1900.022949, 83.584999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2003.038940, 1903.090942, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2005.038940, 1896.538940, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2001.389038, 1898.890014, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1888.954956, 84.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1889.954956, 84.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1886.954956, 84.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1887.954956, 84.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1888.005004, 84.845001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1887.005004, 84.845001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1890.005004, 84.845001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1993.458984, 1889.005004, 84.845001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "N", 130, "Times new roman", 100, 0, -16777216, 0, 1 ); + CreateDynamicObject( 2315, 2003.316040, 1900.718994, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2315, 2003.316040, 1899.046997, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14651, 2004.661010, 1890.812988, 85.455001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1824, 1999.762939, 1889.105957, 83.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 1998.741943, 1891.317993, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2000.751953, 1886.806030, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.433959, 1901.659057, 83.794998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1994.530029, 1901.656982, 83.654998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19916, 1980.322998, 1901.786987, 83.224998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2571, 2005.572998, 1909.540039, 83.294998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2627, 1998.211059, 1912.979003, 83.266998, 0.000000, 0.000000, 147.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2628, 1989.592041, 1914.009033, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2630, 1994.291015, 1910.447998, 83.275001, 0.000000, 0.000000, 110.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2629, 1991.772949, 1914.152954, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2628, 1994.083984, 1914.009033, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2817, 1990.160034, 1910.527954, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2818, 1988.218994, 1911.509033, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19174, 2003.204956, 1914.909057, 85.794998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2100, 2005.437988, 1914.798950, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2603, 2002.336059, 1913.328002, 83.714996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2913, 1991.327026, 1914.706054, 84.233001, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2915, 2002.566040, 1912.223999, 83.422996, 0.000000, 0.000000, 147.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1994.270996, 1893.975952, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 2007.829956, 1885.854003, 83.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // RoyceGate Apartment + VISAGE_APARTMENT_WORLD = 18; + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1997.808959, 1915.401000, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1998.808959, 1915.401000, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1999.808959, 1915.401000, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1999.308959, 1915.401000, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1998.308959, 1915.401000, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1998.838989, 1914.548950, 81.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1999.838989, 1914.548950, 81.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1997.838989, 1914.548950, 81.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 19786, 1998.852050, 1914.743041, 84.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1999.530029, 1914.317016, 83.944999, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1999.530029, 1914.317016, 83.794998, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1999.530029, 1914.317016, 83.644996, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1999.530029, 1914.317016, 83.495002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1998.088989, 1914.317016, 83.495002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1998.088989, 1914.317016, 83.644996, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1998.088989, 1914.317016, 83.794998, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19566, 1998.088989, 1914.317016, 83.944999, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", -16 ); + CreateDynamicObject( 19619, 1998.373046, 1914.014038, 83.722999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 1996.121948, 1910.756958, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2001.723999, 1912.758056, 83.245002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2000.536010, 1909.035034, 83.245002, 0.000000, 0.000000, -148.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1998.045043, 1908.604003, 83.245002, 0.000000, 0.000000, 149.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2083, 1999.360961, 1909.098999, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1827, 1998.901000, 1912.099975, 83.224998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 1996.427001, 1909.662963, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2069, 2001.427978, 1909.662963, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14455, 1990.125000, 1914.769042, 84.925003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3801, 1995.597045, 1914.630004, 85.735000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3801, 1994.097045, 1914.630004, 85.735000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3801, 1992.597045, 1914.630004, 85.735000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2026, 2000.748046, 1901.824951, 87.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2026, 2000.748046, 1901.824951, 87.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2026, 2000.748046, 1890.573974, 87.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2026, 2000.748046, 1890.573974, 87.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 1995.291992, 1901.633056, 84.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 2005.384033, 1911.152954, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1991.228027, 1909.171020, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1991.228027, 1910.171020, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1991.228027, 1909.671020, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1991.228027, 1908.671020, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1991.238037, 1908.661010, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 18762, 1991.238037, 1908.661010, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 130, "Times new roman", 100, 1, -16777216, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1991.238037, 1910.171997, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1991.239990, 1909.392944, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 638, 1992.125976, 1909.418945, 83.955001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1991.238037, 1908.661010, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2691, 1991.771972, 1909.392944, 85.375000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "R", 120, "Times new roman", 120, 0, -16777216, 0, 1 ); + CreateDynamicObject( 2592, 1994.220947, 1887.895019, 84.184997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 2004.244018, 1906.128051, 83.665000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2325, 1994.130004, 1887.890014, 84.875000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1834, 1994.189941, 1889.011962, 84.105003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11686, 2006.011962, 1891.866943, 83.275001, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1895, 1994.219970, 1901.599975, 85.584999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2350, 2004.990966, 1893.395019, 83.675003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2350, 2004.889038, 1892.199951, 83.675003, 0.000000, 0.000000, -39.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2350, 2004.990966, 1890.463989, 83.675003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14651, 2000.697021, 1891.767944, 85.385002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1724, 2003.302001, 1887.129028, 83.275001, 0.000000, 0.000000, -157.100006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1724, 2000.427978, 1886.749023, 83.275001, 0.000000, 0.000000, 167.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2083, 2000.826049, 1886.182983, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14446, 1987.394042, 1891.714965, 83.855003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1987.561035, 1884.947021, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1987.551025, 1884.957031, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 13734, "hillcliff_lahills", "des_ranchwall1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1987.541015, 1884.947021, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 2104, 1989.227050, 1885.769042, 83.285003, 0.000000, 0.000000, -163.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2229, 1989.609008, 1885.777954, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2229, 1984.978027, 1885.777954, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2028, 1987.147949, 1886.807983, 83.375000, 0.000000, 0.000000, -82.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19786, 1986.436035, 1885.496948, 85.359001, 9.399999, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1987.551025, 1893.968017, 84.285003, 0.000000, 90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 13734, "hillcliff_lahills", "des_ranchwall1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1988.300048, 1885.381958, 85.375000, 90.000000, 0.000000, 89.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + CreateDynamicObject( 19786, 1988.715942, 1885.478027, 85.361999, 9.800000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1986.800048, 1885.383056, 85.375999, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1988.078979, 1886.900024, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 912, 1992.563964, 1889.104003, 83.834999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 913, 1992.563964, 1889.094970, 85.224998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 912, 1992.563964, 1886.682983, 83.834999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 913, 1992.563964, 1886.703979, 85.224998, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + CreateDynamicObject( 2241, 1992.468017, 1887.876953, 83.794998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2204, 1980.394042, 1886.016967, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2204, 1980.394042, 1892.657958, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1980.842041, 1889.437988, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19999, 1981.937011, 1890.250000, 83.285003, 0.000000, 0.000000, -76.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19893, 1980.834960, 1890.594970, 84.214996, 0.000000, 0.000000, 64.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2196, 1980.387939, 1890.635986, 84.208000, 0.000000, 0.000000, 72.400001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 2007.597045, 1886.375000, 83.904998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19806, 1987.609008, 1888.322998, 86.678001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2286, 2002.845947, 1914.886962, 85.404998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2254, "picture_frame_clip", "CJ_PAINTING8", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2286, 2005.655029, 1914.886962, 85.404998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2254, "picture_frame_clip", "CJ_PAINTING27", 0 ); + CreateDynamicObject( 2257, 1991.749023, 1904.250976, 85.944999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18749, 1998.840942, 1914.598022, 84.775001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1991.354003, 1894.404052, 85.794998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Kitchen", 130, "Times new roman", 110, 0, -16777216, 0, 1 ); + CreateDynamicObject( 948, 1992.740966, 1902.876953, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2754, 1991.400024, 1894.937988, 84.144996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1829, 1985.767944, 1899.942993, 83.764999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2484, 1984.967041, 1897.541015, 85.105003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 16779, 1983.197998, 1898.536010, 87.355003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 1993.932006, 1885.796997, 86.476997, 29.000000, 0.000000, 135.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 2008.012939, 1885.258056, 86.503997, 29.000000, 0.000000, -135.100006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2231, 2008.227050, 1914.655029, 86.469001, 22.299999, 0.000000, -36.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19617, 1983.411987, 1905.355957, 85.315002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14820, 2005.979003, 1899.894042, 84.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicObject( 2623, 2006.964965, 1899.906982, 84.796997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 10226, "sfeship1", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 10226, "sfeship1", "CJ_WOOD5", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2230, 2006.300048, 1900.922973, 83.684997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 10226, "sfeship1", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2230, 2006.329956, 1898.230957, 83.684997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 10226, "sfeship1", "CJ_WOOD5", 0 ); + CreateDynamicObject( 1834, 1994.189941, 1886.821044, 84.105003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 2001.900024, 1897.698974, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 2001.900024, 1901.671020, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19172, 2008.134033, 1899.899047, 85.644996, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19174, 1987.495971, 1893.463012, 85.815002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2284, 1983.113037, 1892.996948, 85.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2281, 1980.839965, 1890.355957, 85.425003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19173, 2005.635986, 1899.865966, 83.694999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Streaming", 130, "David", 70, 0, -1, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2898, 1983.770996, 1909.444946, 83.264999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10412, "hotel1", "carpet_red_256", -16 ); + CreateDynamicActor( 172, 2006.579956, 1891.839965, 84.277000, 90.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + + // Shini Apartment + VISAGE_APARTMENT_WORLD = 19; + tmpVariable = CreateDynamicObject( 2608, 1992.967041, 1904.390014, 85.084999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 2, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 3, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 4, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", 0 ); + tmpVariable = CreateDynamicObject( 2608, 1990.324951, 1904.390014, 85.084999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 1, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 2, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 3, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 4, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 16646, "a51_alpha", "stanwind_nt", 0 ); + SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", 0 ); + CreateDynamicObject( 2010, 1991.605957, 1904.418945, 83.252998, 0.000000, 0.000000, -60.700000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18932, 1990.000976, 1904.390014, 84.574996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18929, 1989.651000, 1904.390014, 84.574996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18928, 1990.350952, 1904.390014, 84.574996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18930, 1990.701049, 1904.390014, 84.574996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18931, 1991.051025, 1904.390014, 84.574996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18927, 1989.651000, 1904.390014, 85.074996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18934, 1989.970947, 1904.390014, 85.074996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18935, 1990.291015, 1904.390014, 85.074996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18933, 1990.610961, 1904.390014, 85.074996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18928, 1990.931030, 1904.390014, 85.074996, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18951, 1989.620971, 1904.390014, 85.525001, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18947, 1989.964965, 1904.390014, 85.525001, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18948, 1990.308959, 1904.390014, 85.525001, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18949, 1990.652954, 1904.390014, 85.525001, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18950, 1990.996948, 1904.390014, 85.525001, 0.000000, -90.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11727, 1991.634033, 1904.213012, 86.165000, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1736, 1983.723999, 1909.395019, 86.722999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11713, 1989.125976, 1903.714965, 84.855003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1823, 2004.828979, 1910.022949, 83.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1822, 2001.576049, 1910.619995, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14820, 2006.135009, 1899.879028, 84.235000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2778, 1991.800048, 1914.360961, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 2003.521240, 1892.146850, 83.654998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1706, 2004.806030, 1913.192993, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 1995.287963, 1901.667968, 84.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14651, 1998.987060, 1888.619995, 85.535003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicObject( 2623, 2007.113037, 1899.917968, 84.815002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14624, "mafcasmain", "cof_wood2", 1 ); + CreateDynamicObject( 19295, 2009.584960, 1899.756958, 89.915000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19296, 2007.654052, 1899.756958, 90.114997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2230, 2006.472045, 1898.253051, 83.875000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 14624, "mafcasmain", "cof_wood2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2230, 2006.472045, 1900.943969, 83.875000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 14624, "mafcasmain", "cof_wood2", -16 ); + CreateDynamicObject( 11719, 1980.659057, 1898.214965, 84.324996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19625, 1980.629028, 1898.214965, 84.324996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1706, 2005.827026, 1908.880981, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1823, 2004.828979, 1910.973022, 83.282997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1705, 2001.767944, 1912.220947, 83.275001, 0.000000, 0.000000, 42.599998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1705, 2002.293945, 1909.386962, 83.275001, 0.000000, 0.000000, 136.600006, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 1996.678955, 1911.754028, 84.305000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 2002.296997, 1902.066040, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19128, 2002.296997, 1898.087036, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2681, 1990.249023, 1914.360961, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2779, 1988.688964, 1914.360961, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 1990.582031, 1913.776977, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 1989.031005, 1913.776977, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 1992.052978, 1913.776977, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19355, 1994.052978, 1901.660034, 85.794998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Shinis Apartment", 130, "Times new Roman", 70, 0, -1, 0, 1 ); + CreateDynamicObject( 633, 2007.755004, 1885.885009, 84.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 633, 1994.614013, 1886.135009, 84.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2004.015991, 1886.296997, 84.044998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2007.947021, 1889.098022, 84.044998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2256, 2005.026000, 1914.906005, 85.565002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.363037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.863037, 1884.891967, 86.184997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1991.385009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1993.885009, 1884.891967, 83.974998, 0.000000, 180.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.624023, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395019, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.176025, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.953979, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.723999, 1884.952026, 83.474998, 90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1992.854980, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1990.625000, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1988.395996, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1986.175048, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1983.953979, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1897, 1981.724975, 1884.952026, 87.324996, -90.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1979.843017, 1889.392944, 88.184997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14563, "triad_main", "casinowall1", -260011385 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1981.291992, 1889.392944, 82.794998, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14563, "triad_main", "casinowall1", -260011385 ); + CreateDynamicObject( 19937, 1986.072998, 1890.303955, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19937, 1986.072998, 1888.394042, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicObject( 19786, 1986.182983, 1889.354003, 84.945999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 1214, "metal", "CJ_FRAME_Glass", 0 ); + SetDynamicObjectMaterial( tmpVariable, 1, 14738, "whorebar", "AH_whoredoor", 0 ); + CreateDynamicObject( 2233, 1986.469970, 1891.389038, 83.294998, 0.000000, 0.000000, -73.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1986.260009, 1886.673950, 83.294998, 0.000000, 0.000000, -107.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1992.436035, 1888.381958, 83.264999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2298, 1984.286010, 1888.067016, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 2, 16150, "ufo_bar", "GEwhite1_64", -260011385 ); + CreateDynamicObject( 19893, 1992.437988, 1887.379028, 84.214996, 0.000000, 0.000000, -97.900001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2196, 1992.151977, 1887.219970, 84.194999, 0.000000, 0.000000, 95.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1714, 1991.379028, 1887.541015, 83.264999, 0.000000, 0.000000, 78.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, 1980.354003, 1889.407958, 85.565002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "ah_painting2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1983.213012, 1893.472045, 85.605003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 2255, "picture_frame_clip", "CJ_PAINTING9", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1985.692993, 1893.472045, 85.605003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "AH_paintbond", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 1988.204956, 1893.472045, 85.605003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 14737, "whorewallstuff", "ah_painting1", -16 ); + CreateDynamicObject( 3503, 1981.071044, 1892.733032, 84.595001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19571, 2005.340942, 1910.810058, 83.815002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19571, 2005.340942, 1911.670043, 83.815002, 90.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicActor( 178, 2006.780029, 1899.910034, 84.277000, 90.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "strip", "PUN_HOLLER", 4.1, 1, 1, 1, 1, 0 ); + CreateDynamicActor( 237, 1984.270019, 1896.339965, 84.285003, -90.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicActor( 246, 1981.209960, 1898.030029, 84.285003, 90.000000, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "FOOD", "SHP_Thank", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 87, 1981.420043, 1892.569946, 84.285003, -108.599998, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "STRIP", "STR_Loop_B", 4.1, 1, 1, 1, 1, 0 ); + tmpVariable = CreateDynamicActor( 214, 2005.540039, 1908.880004, 84.955001, 80.599998, 1, 100.0, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + ApplyDynamicActorAnimation( tmpVariable, "BEACH", "Lay_Bac_Loop", 4.1, 1, 1, 1, 1, 0 ); + + // Veloxity_ Apartment + VISAGE_APARTMENT_WORLD = 20; + CreateDynamicObject( 339, 2008.173950, 1899.629028, 86.485000, 0.000000, 45.000000, 101.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 339, 2008.110961, 1900.157958, 86.485000, -1.000000, -320.000000, 274.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1993.900024, 1900.006958, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1609, 2007.926025, 1899.999023, 84.775001, 90.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2906, 1980.696044, 1898.010986, 84.363998, -4.400000, -1.600000, 176.399993, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2908, 1986.005004, 1898.262939, 84.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 14446, 1982.119018, 1889.348022, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1984.165039, 1909.369018, 83.212997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -252018574 ); + CreateDynamicObject( 2964, 1998.697998, 1888.451049, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 2004.537963, 1912.535034, 84.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 2003.975219, 1889.492553, 83.664772, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 1998.226074, 1912.094970, 84.315002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1891.790039, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 16779, 2002.489990, 1900.362060, 87.394996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1891.790039, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 19786, 1994.022949, 1901.682983, 86.095001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11724, 1994.411010, 1901.603027, 83.805000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1994.437011, 1901.610961, 83.694999, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2323, 1981.831054, 1886.017944, 83.245002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 1723, 1999.529052, 1904.839965, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2001.671020, 1898.396972, 83.254997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1723, 2003.772949, 1902.567993, 83.254997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1814, 2000.050048, 1901.081054, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19580, 1985.504028, 1897.422973, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2858, 2000.529785, 1901.568969, 83.754783, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 14446, 1982.119018, 1889.348022, 83.845001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 2161, 1992.916015, 1886.287963, 83.275001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1886.287963, 84.595001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2233, 1993.900024, 1904.189941, 83.285003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2232, 1994.328979, 1885.817993, 86.806999, 161.399993, -0.600000, -45.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 0, "", "", 0 ); + CreateDynamicObject( 2232, 2008.240966, 1885.421997, 86.755996, 18.100000, 179.699996, -139.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 2007.569946, 1908.994018, 84.016998, 0.000000, 0.000000, 130.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2232, 2007.766967, 1914.479003, 86.824996, 18.100000, 179.699996, 330.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2001, 1994.477050, 1885.854003, 83.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1885.927001, 87.285003, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2241, 2007.761962, 1885.853027, 83.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1889.910034, 83.275001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1895, 1991.517944, 1904.314941, 85.123001, 0.000000, 0.000000, -179.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19437, 1985.776000, 1909.369018, 83.212997, 0.000000, 90.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 8839, "vgsecarshow", "lightblue_64", -252018574 ); + CreateDynamicObject( 3104, 1999.286987, 1888.312988, 84.285003, -38.599998, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3105, 1998.151000, 1888.384033, 84.285003, -45.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3000, 1999.474975, 1888.764038, 84.205001, 82.500000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 338, 1997.275024, 1888.095947, 83.411003, 17.700000, -8.899999, 100.400001, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 18688, 1994.331054, 1901.467041, 81.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 2007.630981, 1914.468017, 83.897003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 11724, 1992.532958, 1887.912963, 83.785003, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 2161, 1992.916015, 1889.910034, 84.584999, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1889.909057, 85.885002, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.956054, 1888.548950, 87.275001, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2161, 1992.916015, 1887.238037, 87.275001, 0.000000, 180.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19632, 1992.571044, 1887.899047, 83.524002, -70.599998, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11725, 1992.409057, 1887.921020, 83.665000, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 1992.922973, 1887.916992, 85.165000, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10789, "xenon_sfse", "ws_white_wall1", -259308269 ); + CreateDynamicObject( 16779, 1985.288940, 1889.286010, 87.404998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19172, 1980.343017, 1889.343994, 86.095001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2165, 1986.828002, 1885.921020, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2356, 1986.665039, 1887.214965, 83.294998, 0.000000, 0.000000, 155.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2002, 1984.881958, 1886.032958, 83.264999, 0.000000, 1.200000, 157.800003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.870971, 1887.140014, 83.264999, 0.000000, 0.000000, 110.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 1988.381958, 1888.637939, 83.324996, 0.000000, 0.000000, 70.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1827, 1990.395996, 1888.362060, 83.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2801, 1990.306030, 1888.435058, 83.305000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1893.017944, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2251, 1980.765014, 1885.864990, 85.095001, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1892.093017, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2105, 1980.696044, 1886.569946, 84.714996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 14455, 1989.057983, 1893.280029, 84.955001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1983.735961, 1893.213012, 83.264999, 0.000000, 0.000000, 134.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1990.156005, 1893.144042, 83.305000, 0.000000, 0.000000, -176.699996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 1983.884033, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 639, 1989.666015, 1884.715942, 85.855003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11690, 2004.662963, 1894.484985, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2003.558959, 1894.516967, 83.264999, 0.000000, 0.000000, 90.099998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2004.817016, 1895.519042, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2005.639038, 1894.521972, 83.264999, 0.000000, 0.000000, 270.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1720, 2004.687988, 1893.442016, 83.264999, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1664, 2004.625000, 1893.906005, 84.205001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1664, 2004.625000, 1895.036987, 84.205001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1212, 2004.629028, 1894.430053, 84.056999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2010, 1994.365966, 1894.034057, 83.294998, 0.000000, 0.000000, 140.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2253, 1983.739990, 1910.972045, 83.553001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2253, 1983.668945, 1907.780029, 83.553001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11713, 1983.464965, 1905.215942, 85.235000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19325, 1989.410766, 1914.895507, 85.692817, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, "Veloxity's Apartment", 120, "Times New Roman", 64, 1, -16777216, 0, 1 ); + + // Zach Apartment + VISAGE_APARTMENT_WORLD = 21; + CreateDynamicObject( 2833, 1999.135986, 1886.714965, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2833, 2002.697998, 1886.714965, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2082, 2000.930053, 1886.744018, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2003.681030, 1887.312011, 83.264999, 0.000000, 0.000000, 200.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1727, 2000.004028, 1887.020996, 83.264999, 0.000000, 0.000000, 160.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3806, 2006.870971, 1884.599975, 83.495002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3806, 2009.072021, 1886.730957, 83.495002, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 3806, 1996.209960, 1884.599975, 83.495002, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2188, 1991.609985, 1905.417968, 84.282997, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + tmpVariable = CreateDynamicObject( 18090, 2001.792968, 1913.066040, 85.824996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( tmpVariable, 1, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( tmpVariable, 2, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( tmpVariable, 3, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( tmpVariable, 4, 16150, "ufo_bar", "GEwhite1_64", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( tmpVariable, 6, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( tmpVariable, 7, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( tmpVariable, 8, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( tmpVariable, 9, 16150, "ufo_bar", "GEwhite1_64", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1911.968994, 84.277000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2006.145996, 1911.968994, 84.277000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 1491, 2006.636962, 1911.863037, 83.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1912.948974, 84.277000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.656982, 1913.948974, 84.277000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2007.656982, 1911.968994, 98.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2006.946044, 1911.968994, 98.257003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 19824, 2000.628051, 1914.619995, 84.922996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 2001.427978, 1914.619995, 84.932998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19824, 2001.427978, 1914.619995, 84.922996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2298, 1984.293945, 1887.942016, 83.224998, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2106, 1980.550048, 1890.630004, 83.745002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2106, 1980.550048, 1887.928955, 83.745002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2826, 1983.421997, 1887.911010, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2108, 1981.279052, 1886.188964, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2108, 1981.279052, 1892.592041, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2241, 1992.588989, 1885.708984, 83.735000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2126, 2004.488037, 1899.417968, 83.264999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2003.958007, 1901.948974, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1726, 2005.979003, 1897.776000, 83.275001, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2255, 1992.444946, 1888.197021, 85.764999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2235, 2007.285034, 1885.451049, 83.245002, 0.000000, 0.000000, 45.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10226, "sfeship1", "CJ_WOOD5", -16 ); + CreateDynamicObject( 2252, 2007.276000, 1886.187011, 83.972999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2254, 1993.973022, 1887.878051, 85.563003, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 14867, 1987.050048, 1893.136962, 84.794998, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10226, "sfeship1", "CJ_WOOD5", 0 ); + tmpVariable = CreateDynamicObject( 2296, 1994.406005, 1900.701049, 83.275001, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( tmpVariable, 7, 10226, "sfeship1", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( tmpVariable, 5, 10226, "sfeship1", "CJ_WOOD5", -16 ); + SetDynamicObjectMaterial( tmpVariable, 3, 10226, "sfeship1", "CJ_WOOD5", -16 ); + CreateDynamicObject( 1764, 1998.092041, 1902.823974, 83.264999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 13187, 1990.779052, 1914.920043, 85.464996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 19174, "samppictures", "samppicture1", -16 ); + CreateDynamicObject( 1765, 1995.878051, 1903.693969, 83.285003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1765, 1996.879028, 1899.562988, 83.285003, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 1815, 1995.812011, 1901.203979, 83.294998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 10226, "sfeship1", "CJ_WOOD5", 0 ); + CreateDynamicObject( 11686, 2003.235961, 1911.991943, 83.205001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 11686, 2000.823974, 1911.989990, 83.203002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 18762, 1998.767944, 1914.687011, 84.682998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 12954, "sw_furniture", "CJ_WOOD5", -16 ); + CreateDynamicObject( 15038, 1994.326049, 1889.291015, 83.864997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 15038, 1994.326049, 1886.600952, 83.864997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1978, 2004.093994, 1892.959960, 84.315002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2111, 2002.390014, 1906.432983, 83.675003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2259, 2007.671997, 1899.890014, 84.985000, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2084, 2007.895019, 1900.079956, 83.254997, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 16780, 1997.743041, 1894.781005, 87.245002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1828, 1986.619018, 1889.512939, 83.275001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2094, 1991.411010, 1888.694946, 83.315002, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19786, 1992.677978, 1888.182006, 84.944999, 0.000000, 0.000000, -90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2600, 1985.135986, 1885.588012, 84.055000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2206, 1989.776977, 1886.000976, 83.294998, 0.000000, 0.000000, 180.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19893, 1989.196044, 1886.064941, 84.235000, 0.000000, 0.000000, -154.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1714, 1988.661010, 1887.145996, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1824, 1999.119995, 1894.737060, 83.735000, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19822, 2002.904052, 1914.661987, 85.449996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 948, 1996.688964, 1914.473999, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1665, 1996.370971, 1901.615966, 83.815002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1543, 1996.633056, 1901.569946, 83.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 1996.292968, 1901.959960, 83.785003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 638, 2007.733032, 1904.369018, 83.944999, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 2244, 1997.743041, 1914.552001, 84.572998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 1999.707031, 1911.295043, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 2001.217041, 1911.064941, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1716, 2002.878051, 1911.295043, 83.254997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1488, 1998.749023, 1914.114990, 85.894996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1488, 1998.749023, 1914.114990, 84.915000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19823, 2001.141967, 1914.681030, 84.934997, 0.000000, 0.000000, -76.300003, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19823, 2000.892944, 1914.660034, 84.934997, 0.000000, 0.000000, -118.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 2000.753051, 1914.660034, 85.464996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19821, 2001.003051, 1914.660034, 85.464996, 0.000000, 0.000000, 97.199996, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19818, 2001.292968, 1914.660034, 85.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19818, 2001.532958, 1914.660034, 85.555000, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + SetDynamicObjectMaterial( CreateDynamicObject( 2550, 2003.574951, 1914.173950, 82.563003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "metalic128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2550, 2002.593994, 1914.173950, 82.563003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "metalic128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2550, 2001.623046, 1914.173950, 82.563003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "metalic128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2550, 2000.651977, 1914.173950, 82.563003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "metalic128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2550, 1999.671020, 1914.173950, 82.563003, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 1676, "wshxrefpump", "metalic128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19428, 2004.060058, 1914.870971, 82.642997, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19428, 1999.566040, 1914.901000, 82.483001, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 ); + CreateDynamicObject( 1512, 2000.175048, 1911.675048, 84.492996, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 2001.468017, 1914.666015, 84.922996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 2001.468017, 1914.666015, 85.462997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 2003.089965, 1914.666015, 85.462997, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19940, 2002.639038, 1914.666015, 84.922996, 0.000000, 0.000000, 90.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 2001.853027, 1911.968994, 84.343002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1544, 2002.133056, 1911.968994, 84.343002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1951, 2004.484008, 1911.993041, 84.502998, 0.000000, 0.000000, -88.500000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 1665, 2003.105957, 1911.493041, 84.322998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19921, 2002.542968, 1914.349975, 84.523002, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 19896, 2000.426025, 1911.635986, 84.322998, 0.000000, 0.000000, 0.000000, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); + CreateDynamicObject( 355, 1998.281982, 1911.954956, 84.282997, 94.500000, 100.800003, 53.398998, VISAGE_APARTMENT_WORLD, VISAGE_APARTMENT_INT ); +} diff --git a/pawno/include/irresistible/gta/cards.inc b/pawno/include/irresistible/gta/cards.inc deleted file mode 100644 index d69b949..0000000 --- a/pawno/include/irresistible/gta/cards.inc +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Irresistible Gaming 2018 - * Developed by Lorenc Pekaj - * Module: gta\cards.inc - * Purpose: relating to gambling, or cards in gta - */ - -/* ** Variables ** */ -new const g_cardTextdrawData[ 52 ] [ ] = { - "LD_CARD:cd1c", // A Clubs - 0 - "LD_CARD:cd2c", // 2 Clubs - 1 - "LD_CARD:cd3c", // 3 Clubs - 2 - "LD_CARD:cd4c", // 4 Clubs - 3 - "LD_CARD:cd5c", // 5 Clubs - 4 - "LD_CARD:cd6c", // 6 Clubs - 5 - "LD_CARD:cd7c", // 7 Clubs - 6 - "LD_CARD:cd8c", // 8 Clubs - 7 - "LD_CARD:cd9c", // 9 Clubs - 8 - "LD_CARD:cd10c", // 10 Clubs - 9 - "LD_CARD:cd11c", // J Clubs - 10 - "LD_CARD:cd12c", // Q Clubs - 11 - "LD_CARD:cd13c", // K Clubs - 12 - "LD_CARD:cd1d", // A Diamonds - 13 - "LD_CARD:cd2d", // 2 Diamonds - 14 - "LD_CARD:cd3d", // 3 Diamonds - 15 - "LD_CARD:cd4d", // 4 Diamonds - 16 - "LD_CARD:cd5d", // 5 Diamonds - 17 - "LD_CARD:cd6d", // 6 Diamonds - 18 - "LD_CARD:cd7d", // 7 Diamonds - 19 - "LD_CARD:cd8d", // 8 Diamonds - 20 - "LD_CARD:cd9d", // 9 Diamonds - 21 - "LD_CARD:cd10d", // 10 Diamonds - 22 - "LD_CARD:cd11d", // J Diamonds - 23 - "LD_CARD:cd12d", // Q Diamonds - 24 - "LD_CARD:cd13d", // K Diamonds - 25 - "LD_CARD:cd1h", // A Heats - 26 - "LD_CARD:cd2h", // 2 Heats - 27 - "LD_CARD:cd3h", // 3 Heats - 28 - "LD_CARD:cd4h", // 4 Heats - 29 - "LD_CARD:cd5h", // 5 Heats - 30 - "LD_CARD:cd6h", // 6 Heats - 31 - "LD_CARD:cd7h", // 7 Heats - 32 - "LD_CARD:cd8h", // 8 Heats - 33 - "LD_CARD:cd9h", // 9 Heats - 34 - "LD_CARD:cd10h", // 10 Heats - 35 - "LD_CARD:cd11h", // J Heats - 36 - "LD_CARD:cd12h", // Q Heats - 37 - "LD_CARD:cd13h", // K Heats - 38 - "LD_CARD:cd1s", // A Spades - 39 - "LD_CARD:cd2s", // 2 Spades - 40 - "LD_CARD:cd3s", // 3 Spades - 41 - "LD_CARD:cd4s", // 4 Spades - 42 - "LD_CARD:cd5s", // 5 Spades - 43 - "LD_CARD:cd6s", // 6 Spades - 44 - "LD_CARD:cd7s", // 7 Spades - 45 - "LD_CARD:cd8s", // 8 Spades - 46 - "LD_CARD:cd9s", // 9 Spades - 47 - "LD_CARD:cd10s", // 10 Spades - 48 - "LD_CARD:cd11s", // J Spades - 49 - "LD_CARD:cd12s", // Q Spades - 50 - "LD_CARD:cd13s" // K Spades - 51 -}; diff --git a/pawno/include/irresistible/helpers.inc b/pawno/include/irresistible/helpers.inc index 417b8e3..fe4045d 100644 --- a/pawno/include/irresistible/helpers.inc +++ b/pawno/include/irresistible/helpers.inc @@ -28,6 +28,10 @@ #define thread function // used to look pretty for mysql /* ** Variables ** */ +stock szSmallString[ 32 ]; +stock szBigString[ 256 ]; +stock szLargeString[ 1024 ]; +stock szHugeString[ 2048 ]; stock g_szSprintfBuffer[ 1024 ]; stock tmpVariable; @@ -210,3 +214,31 @@ stock strreplace(string[], const search[], const replacement[], bool:ignorecase /*stock strcpy(dest[], const source[], maxlength=sizeof dest) { strcat((dest[0] = EOS, dest), source, maxlength); }*/ + +// purpose: get unattached player object index +stock Player_GetUnusedAttachIndex( playerid ) +{ + for ( new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i ++ ) + if ( ! IsPlayerAttachedObjectSlotUsed( playerid, i ) ) + return i; + + return cellmin; +} + +// purpose: convert integer into dollar string +stock ConvertPrice( iValue, iCashSign = 1 ) +{ + static + szNum[ 32 ]; + + format( szNum, sizeof( szNum ), "%d", iValue < 0 ? -iValue : iValue ); + + for( new i = strlen( szNum ) - 3; i > 0; i -= 3 ) { + strins( szNum, ",", i, sizeof( szNum ) ); + } + + if ( iCashSign ) strins( szNum, "$", 0 ); + if ( iValue < 0 ) strins( szNum, "-", 0, sizeof( szNum ) ); + + return szNum; +} diff --git a/pawno/include/irresistible/main.inc b/pawno/include/irresistible/main.inc index 34ca07b..b8c4175 100644 --- a/pawno/include/irresistible/main.inc +++ b/pawno/include/irresistible/main.inc @@ -6,7 +6,7 @@ */ // default -#include < irresistible\settings > +#include < irresistible\settings > // keep #1 #include < irresistible\security > #include < irresistible\helpers > #include < irresistible\floodcontrol > @@ -18,14 +18,19 @@ // gta related variables #include < irresistible\gta\map > -#include < irresistible\gta\cards > #include < irresistible\gta\vehicles > #include < irresistible\gta\weapon_data > // features #include < irresistible\features\fps > #include < irresistible\features\radio > -#include < irresistible\features\fireworks > + +// visage casino +#include < irresistible\features\visage\blackjack > +#include < irresistible\features\visage\poker > +// #include < irresistible\features\visage\fireworks > +#include < irresistible\features\visage\apartments > +#include < irresistible\features\visage\static_casino > // static #include < irresistible\static_cnr\actors > diff --git a/pawno/include/irresistible/settings.inc b/pawno/include/irresistible/settings.inc index a596bf4..6b0f7c0 100644 --- a/pawno/include/irresistible/settings.inc +++ b/pawno/include/irresistible/settings.inc @@ -6,15 +6,50 @@ */ // mysqldump -u service -p82JA8LDL1JAG2GF69 sa-mp > ~/dump01.sql -// MySQL settings + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** MySQL Settings ** */ #if !defined DEBUG_MODE - #define MYSQL_HOST "127.0.0.1" - #define MYSQL_USER "service" - #define MYSQL_PASS "M8aHnYxJEFmw6ubK" // "82JA8LDL1JAG2GF69" - #define MYSQL_DATABASE "sa-mp" + #define MYSQL_HOST "127.0.0.1" + #define MYSQL_USER "service" + #define MYSQL_PASS "M8aHnYxJEFmw6ubK" // "82JA8LDL1JAG2GF69" + #define MYSQL_DATABASE "sa-mp" #else - #define MYSQL_HOST "127.0.0.1" - #define MYSQL_USER "root" - #define MYSQL_PASS "" - #define MYSQL_DATABASE "sa-mp" + #define MYSQL_HOST "127.0.0.1" + #define MYSQL_USER "root" + #define MYSQL_PASS "" + #define MYSQL_DATABASE "sa-mp" #endif + +/* ** Variables ** */ +stock dbHandle; +stock bool: serverLocked = false; + +/* ** Variables ** */ +hook OnGameModeInit( ) +{ + // Attempt to connect to database + if ( mysql_errno( ( dbHandle = mysql_connect( MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASS ) ) ) ) { + print( "[MYSQL]: Couldn't connect to MySQL database." ), serverLocked = true; + } else { + print( "[MYSQL]: Connection to database is successful." ); + } + return 1; +} + +hook OnGameModeExit( ) +{ + mysql_close( ); + return 1; +} + +hook OnPlayerConnect( playerid ) +{ + if ( serverLocked ) { + SendClientMessage( playerid, 0xa9c4e4ff, "The server is locked due to false server configuration. Please wait for the operator." ); + return KickPlayerTimed( playerid ), 1; + } + return 1; +} diff --git a/pawno/include/irresistible/static_cnr/removed_buildings.inc b/pawno/include/irresistible/static_cnr/removed_buildings.inc index 4dd2e79..6309d69 100644 --- a/pawno/include/irresistible/static_cnr/removed_buildings.inc +++ b/pawno/include/irresistible/static_cnr/removed_buildings.inc @@ -331,6 +331,18 @@ stock removeExcessiveBuildings( playerid ) RemoveBuildingForPlayer(playerid, 1978, 2241.4453, 1619.6094, 1006.2266, 10000.0); RemoveBuildingForPlayer(playerid, 2188, 2241.3125, 1602.7500, 1006.1563, 10000.0); + // Remove all poker machines + RemoveBuildingForPlayer(playerid, 2786, 2259.2188, 1596.4844, 1006.0156, 10000.0); + RemoveBuildingForPlayer(playerid, 2785, 2258.2578, 1596.4766, 1006.0156, 10000.0); + RemoveBuildingForPlayer(playerid, 2098, 1941.5234, 1006.3828, 993.4141, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1940.3906, 1014.2031, 993.4141, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1940.3906, 1021.4141, 993.4141, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1968.0938, 1006.3594, 993.4063, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1968.0938, 1013.9844, 993.4063, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1968.0938, 1021.6797, 993.4063, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1941.2188, 1029.2969, 993.4141, 0.25); + RemoveBuildingForPlayer(playerid, 2098, 1968.0938, 1029.5391, 993.4063, 0.25); + // TDK HQ RemoveBuildingForPlayer(playerid, 6937, 2572.2422, 2703.9609, 19.0234, 0.25); RemoveBuildingForPlayer(playerid, 7038, 2527.8203, 2703.9609, 10.8203, 0.25); diff --git a/pawno/include/irresistible/static_cnr/server_objects.inc b/pawno/include/irresistible/static_cnr/server_objects.inc index 1c34c19..f72a108 100644 --- a/pawno/include/irresistible/static_cnr/server_objects.inc +++ b/pawno/include/irresistible/static_cnr/server_objects.inc @@ -6507,123 +6507,4 @@ stock initializeServerObjects( ) CreateDynamicObject( 19324, 1989.635253, 1032.391113, 994.097290, 0.000000, 0.000000, 0.000000 ); CreateDynamicObject( 19324, 2241.676269, 1647.986816, 1007.979003, 0.000000, 0.000000, -90.000000 ); CreateDynamicObject( 19324, 2230.132324, 1649.486816, 1007.979003, 0.000000, 0.000000, 90.000000 ); - - // Visage Apartment - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.661743, 1914.424804, 79.601951, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1994.449218, 1884.952758, 79.601951, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2004.888793, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.909790, 1913.835815, 83.722656, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1995.665649, 1915.413085, 84.282653, 0.000000, 0.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1979.837280, 1895.915283, 84.282653, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.625000, 1901.715698, 78.544792, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1991.619384, 1903.713989, 83.722656, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.621337, 1901.721191, 83.722656, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.911743, 1909.958740, 88.692619, 0.000000, 0.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1991.613647, 1903.726074, 78.544792, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1982.909790, 1905.994750, 83.722656, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - CreateDynamicObject( 19273, 1983.361083, 1911.785644, 84.628677, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 948, 1983.600341, 1914.543701, 83.288696, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1981.448242, 1893.984619, 84.282653, 0.000000, 0.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.454833, 1887.915161, 78.544792, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.446777, 1887.917114, 78.544792, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1981.458862, 1893.979125, 83.034774, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1981.468872, 1893.989135, 83.034774, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.621337, 1896.980468, 92.282592, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1986.308105, 1903.982910, 89.782653, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - CreateDynamicObject( 2137, 1980.834960, 1895.928710, 83.250732, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2305, 1980.834960, 1894.977783, 83.250732, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 2137, 1980.834960, 1896.908447, 83.250732, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2135, 1980.834960, 1897.899414, 83.250732, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2135, 1980.834960, 1898.888183, 83.250732, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2137, 1981.825927, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 2137, 1982.806640, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 2136, 1984.778564, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 2137, 1984.776855, 1894.976562, 83.250732, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 2137, 1980.834960, 1899.878417, 83.250732, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2137, 1980.834960, 1900.869384, 83.250732, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1894.721191, 71.800598, 0.000000, 0.000000, 180.000000 ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1895.721191, 71.800598, 0.000000, 0.000000, 180.000000 ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1896.721191, 71.800598, 0.000000, 0.000000, 180.000000 ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1897.721191, 71.800598, 0.000000, 0.000000, 180.000000 ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1985.770263, 1898.721191, 71.800598, 0.000000, 0.000000, 180.000000 ), 0, 14424, "dr_gsnew", "mp_gs_kitchwall", -16 ); - CreateDynamicObject( 1739, 1986.796630, 1898.349609, 84.180664, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1739, 1986.796630, 1897.000000, 84.170654, 0.000000, 0.000000, 12.399991 ); - CreateDynamicObject( 1739, 1986.796630, 1895.768798, 84.180664, 0.000000, 0.000000, -22.099998 ); - CreateDynamicObject( 2139, 1984.762695, 1898.737792, 83.230712, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 2139, 1984.762695, 1897.768066, 83.230712, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 2139, 1984.762695, 1896.787353, 83.230712, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 2139, 1984.762695, 1895.806640, 83.230712, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 2139, 1984.762695, 1894.827148, 83.230712, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 2140, 1982.893066, 1902.996582, 83.292724, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 2140, 1981.561767, 1902.996582, 83.292724, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 11744, 1986.031005, 1898.284179, 84.330688, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 11744, 1986.031005, 1897.073974, 84.330688, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 11744, 1986.031005, 1895.782958, 84.330688, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 11707, 1984.501708, 1897.107910, 84.120666, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 19940, 1992.918212, 1900.991699, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19940, 1990.614746, 1903.052856, 84.790649, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19822, 1992.904296, 1900.227783, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19821, 1992.904296, 1900.448242, 84.790649, 0.000000, 0.000000, 43.199996 ); - CreateDynamicObject( 19820, 1992.892089, 1900.710937, 84.790649, 0.000000, 0.000000, 43.199996 ); - CreateDynamicObject( 19822, 1992.904296, 1901.708496, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19824, 1992.904296, 1901.508300, 84.800659, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19822, 1989.802978, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19824, 1990.043212, 1903.019775, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19820, 1990.343505, 1903.059814, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19821, 1990.864013, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19824, 1991.333251, 1903.079833, 84.790649, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1544, 1992.956298, 1901.189453, 84.790588, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1543, 1992.956298, 1900.969238, 84.790588, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1544, 1990.605468, 1903.050048, 84.790588, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1543, 1991.135986, 1903.100097, 84.790588, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1808, 1988.953369, 1894.689208, 83.272491, 0.000000, 0.000000, 180.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1993.451171, 1887.909912, 83.722656, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.661743, 1884.971435, 79.601951, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1998.248657, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1888.752929, 85.264495, 0.000000, 0.000000, 0.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1910.636108, 85.264495, 0.000000, 0.000000, 0.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1895.393188, 85.264495, 0.000000, 0.000000, 0.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.669921, 1903.994750, 85.264495, 0.000000, 0.000000, 0.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 2008.671508, 1899.891967, 85.841941, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.665649, 1896.968994, 87.758689, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.665649, 1921.847900, 87.758689, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1971.665649, 1896.968994, 87.758689, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1971.665649, 1921.847900, 87.758689, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, 2008.238403, 1899.906250, 84.982055, 90.000000, 0.000000, 0.000000 ), 0, 18029, "genintintsmallrest", "GB_restaursmll05", -69904 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1990.859985, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19325, 1984.218017, 1884.992919, 85.264495, 0.000000, 0.000000, 90.000000 ), 0, 11631, "mp_ranchcut", "CJ_FRAME_Glass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1980.809814, 1884.961425, 79.601959, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - CreateDynamicObject( 11727, 2008.314941, 1904.036865, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1907.036865, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1910.036865, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1913.036865, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1895.664550, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1892.664550, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1889.664550, 87.240608, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 11727, 2008.314941, 1886.664550, 87.240608, 90.000000, 90.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, 1980.878051, 1904.002807, 83.722656, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - CreateDynamicObject( 638, 1983.773315, 1905.277221, 83.990600, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18756, 1985.204223, 1909.457153, 85.249107, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18757, 1985.200561, 1909.448852, 85.244979, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1992.364257, 1902.420532, 82.782791, 0.000000, 90.000000, 0.000000 ), 0, 15048, "labigsave", "ah_carp1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.164916, 1902.420532, 82.776794, 0.000000, 90.000000, 0.000000 ), 0, 15048, "labigsave", "ah_carp1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1996.164916, 1897.489624, 82.772796, 0.000000, 90.000000, 0.000000 ), 0, 15048, "labigsave", "ah_carp1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, 1992.364257, 1897.498657, 82.784790, 0.000000, 90.000000, 0.000000 ), 0, 15048, "labigsave", "ah_carp1", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.770019, 1915.411010, 83.034774, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1982.918823, 1915.986816, 83.034774, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1979.847045, 1907.206665, 83.034774, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.652221, 1902.449829, 83.026802, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.654174, 1897.488403, 83.028800, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.774536, 1884.966796, 83.028800, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1970.775024, 1884.966796, 83.028800, 0.000000, 90.000000, 0.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1993.734741, 1884.956787, 83.032798, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1995.676635, 1884.956787, 83.036796, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.664184, 1897.918579, 83.038803, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 2008.664184, 1922.916625, 83.038803, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, 1979.838256, 1897.928344, 83.028800, 0.000000, 90.000000, 90.000000 ), 0, 14388, "dr_gsnew", "AH_flroortile12", -16 ); - // SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.666381, 1910.623046, 88.076812, 0.000000, 0.000000, 0.000000 ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); - // SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.666381, 1904.011840, 85.476821, 0.000000, 0.000000, 0.000000 ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); - // SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.666381, 1888.762329, 87.976814, 0.000000, 0.000000, 0.000000 ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); - // SetDynamicObjectMaterial( CreateDynamicObject( 19325, 2008.666381, 1895.392089, 85.476814, 0.000000, 0.000000, 0.000000 ), 0, 14902, "gen_pol_vegas", "pol_win_kb", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, 1994.047973, 1901.686523, 85.392059, 90.000000, 0.000000, 0.000000 ), 0, 18029, "genintintsmallrest", "GB_restaursmll05", -69904 ); } diff --git a/server.cfg b/server.cfg index 91fe77a..14d0fab 100644 --- a/server.cfg +++ b/server.cfg @@ -5,7 +5,7 @@ maxplayers 325 port 7777 hostname » Call of Duty For SA-MP (0.3.7) « gamemode0 sf-cnr 1 -filterscripts poker +filterscripts announce 0 query 1 weburl www.sa-mp.com @@ -14,7 +14,7 @@ incar_rate 40 weapon_rate 40 stream_distance 300.0 stream_rate 1000 -plugins crashdetect mysql Whirlpool regex gvar FileManager FCNPC mapandreas RouteConnectorPlugin sampac sscanf streamer TPoker +plugins crashdetect mysql Whirlpool regex gvar FileManager FCNPC mapandreas sscanf streamer sampac RouteConnectorPlugin TPoker maxnpc 200 logtimeformat [%H:%M:%S] language All