/*
Super FreeRoam
adri1
*/
/* INCLUDES */
#include <a_samp>
#include <a_http>
#include <YSI-IncludesYSIy_iterate>
#include <streamer>
#include <sscanf2>
#include <zcmd>
//#include <dns>
#undef MAX_PLAYERS
#define MAX_PLAYERS (120)
#define MAX_PING (750)
new DB:Database, DB_Query[1800];
#define SERVER_VERSION "4.2"
#define HOSTNAME " « Super FreeRoam "SERVER_VERSION" (Español - 0.3.7) »"
#define GAMEMODETEXT "Freeroam Derby Race Español"
#define LANGUAGE "Español - Latino"
#define SERVER_WEB "www.fb.com/SuperFreeRoam"
#define SERVER_NAME "Super FreeRoam "SERVER_VERSION""
#define VERSION_DATE "14/Junio/2017"
#define VERSION_DATE_1 "14.06.17"
#define ORANGE "CC9900"
#define GREY "999999"
#define COLOR_1 "B0E66A"
#define COLOR_2 "CCCCCC"
#define COLOR_3 "FF7A45"
#define COLOR_4 "CC9900"
#define COLOR_5 "99CC00"
#define COLOR_6 "CC0000"
#define COLOR_7 "C6D855"
#define COLOR_8 "FFCC00"
#define COLOR_9 "90C3D4"
#define COLOR_10 "90D496"
#define COLOR_11 "999999"
#define COLOR_12 "CCFF00"
#define COLOR_13 "996600"
#define COLOR_14 "FFFC33"
#define COLOR_15 "999900"
#define FR_VEHICLES_RESPAWN_TIME (600) //10 minutos
#define MAX_TIMERS_PER_PLAYER (20)
#define SPECIAL_ACTION_PISSING (68)
#define NECESSARY_TIME_REGISTER (120) //900s = 15 minutos
#define MAX_HOUSES_PER_PLAYER (5)
#define MAX_VEHICLES_PER_PLAYER (5)
#define HidePlayerDialog(%1) ShowPlayerDialog(%1, -1, 0, " ", " ", " ", " ")
#define PRESSED(%0)
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0)
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
#define MAX_RESULTS 10
enum yt_result
{
videoID[11 + 1],
yt_title[100 + 1]
};
new YouTube[MAX_RESULTS][yt_result],
playerdialog_video[MAX_PLAYERS][MAX_RESULTS][yt_result];
new FREEROAM_TIME = 12, FREEROAM_MINUTE;
enum
{
FREEROAM_VW,
DM_VW = 10,
FALL_VW = 20,
ZOMBIE_WORLD = 30,
GANGWAR_VW = 35,
TDM_VW = 40,
SHOOTER_VW = 45,
RACE_VW = 47,
NO_VW = 999
};
enum
{
M_NONE,
M_FREEROAM,
M_GANGWAR,
M_DERBY,
M_DM,
M_EVENT,
M_FALL,
M_ZOMBIE,
M_DUEL,
M_TDM,
M_SHOOTER,
M_RACE
};
enum
{
GAME_FREEROAM,
GAME_DEATHMATCH,
GAME_DERBY,
GAME_GANGWARS,
GAME_FALL,
GAME_ZOMBIE,
GAME_TDM,
GAME_SHOOTER,
GAME_RACE,
GAME_EVENT,
GAME_DUEL
};
enum
{
ADMIN_LEVEL_NOLEVEL,
ADMIN_LEVEL_SAY,
ADMIN_LEVEL_KICK,
ADMIN_LEVEL_BAN,
ADMIN_LEVEL_LEADER,
ADMIN_LEVEL_OWNER
};
adminLevel(level)
{
new rank[24];
switch(level)
{
case ADMIN_LEVEL_NOLEVEL: rank = "Usuario normal";
case ADMIN_LEVEL_SAY: rank = "Ayudante";
case ADMIN_LEVEL_KICK: rank = "A prueba";
case ADMIN_LEVEL_BAN: rank = "Estándar";
case ADMIN_LEVEL_LEADER: rank = "Líder";
case ADMIN_LEVEL_OWNER: rank = "Dueño";
default: format(rank, 24, "indefinido (%d)", level);
}
return rank;
}
/* FerrisWheel */
new Ferriswheel_Base,
gWheelTransAlternate,
Float:gCurrentTargetYAngle,
Float:FERRIS_SPEED = 0.01;
/* DUEL SYSTEM */
enum DUEL_LIST_INFO
{
DUEL_LIST_NAME[24],
DUEL_LIST_INTERIOR,
Float:DUEL_LIST_X1,
Float:DUEL_LIST_Y1,
Float:DUEL_LIST_Z1,
Float:DUEL_LIST_A1,
Float:DUEL_LIST_X2,
Float:DUEL_LIST_Y2,
Float:DUEL_LIST_Z2,
Float:DUEL_LIST_A2
};
new DUEL_LIST[][DUEL_LIST_INFO] =
{
{"Desmadre Arena", 1, 1406.687011, -1.380011, 1000.921447, 130.106964, 1366.083007, -41.842506, 1000.920837, 313.721954},
{"Skate Park", 0, 1907.971801, -1389.462768, 10.359375, 143.218124, 1885.880859, -1420.873168, 10.359375, 323.363098},
{"Green Park", 0, 1190.767822, -2037.349975, 69.007812, 88.697654, 1164.321044, -2036.833374, 69.007812, 266.986022},
{"Factoria de camiones", 0, 2208.915771, -2233.619873, 13.546875, 136.301254, 2183.568603, -2260.392578, 13.403044, 224.325332},
{"Almacen", 0, 2164.102539, -2259.749267, 13.302728, 46.976974, 2149.769775, -2257.705810, 13.298824, 134.687698},
{"Tierra", 0, 2600.537597, -962.422424, 80.960769, 82.383934, 2556.715820, -958.507690, 82.725616, 253.442108},
{"Troncos", 0, -721.113342, -106.681732, 68.623428, 210.538436, -760.210205, -115.279617, 65.782470, 209.261734},
{"Hospital San Fierro", 0, -2629.350341, 488.203369, 47.976562, 35.986820, -2644.882080, 566.606811, 48.653717, 184.171539},
{"Barco San Fierro", 0, -2418.597900, 1529.007446, 31.859375, 270.965637, -2395.993408, 1550.305664, 31.859375, 182.628234},
{"Puente del desierto", 0, -1056.065917, 2145.097167, 87.330474, 11.546472, -1076.770751, 2244.878906, 88.148185, 191.064834},
{"Montaña del desierto", 0, -772.500488, 2422.735595, 157.087417, 92.700714, -809.594787, 2430.783447, 156.977294, 232.112014},
{"Skycraper Los Santos", 0, 1556.243896, -1353.716308, 329.460937, 89.277290, 1532.405273, -1353.191528, 329.453460, 269.277282},
{"Cementerio Los Santos", 0, 874.418090, -1102.001708, 24.296875, 270.072326, 914.437316, -1102.443725, 24.296875, 89.903953},
{"Muelle Los Santos", 0, 356.433563, -2026.769042, 7.835937, 270.049011, 377.114685, -2054.631835, 8.015625, 4.966488},
{"Barco Los Santos", 0, 2838.428466, -2341.207275, 19.205837, 179.494857, 2830.331787, -2331.291992, 12.042411, 269.132232},
{"Puente 2 Los Santos", 0, 2912.093505, -1594.575683, 13.493452, 253.802215, 2827.592529, -1583.745971, 14.060934, 72.693862}
};
enum DUEL_WEAPONS_INFO
{
WEAPON_PACKNAME[64],
WEAPON_ID1, WEAPON_AMMO1,
WEAPON_ID2, WEAPON_AMMO2,
WEAPON_ID3, WEAPON_AMMO3,
WEAPON_ID4, WEAPON_AMMO4,
WEAPON_ID5, WEAPON_AMMO5
};
new DUEL_WEAPONS[][DUEL_WEAPONS_INFO] =
{
{"Armas rápidas (MP5, M4)", 29, 500, 31, 500, 0, 0, 0, 0, 0, 0},
{"Armas lentas (9mm, Combat Shotgun, Ak-47)", 22, 500, 27, 500, 30, 500, 0, 0, 0, 0},
{"Armas fuertes (Desert Eagle, Sawnoff Shotgun, TEC-9)", 24, 500, 26, 500, 32, 500, 0, 0, 0, 0},
{"Pack de inicio (9mm, Cuchillo)", 22, 15, 4, 1, 0, 0, 0, 0, 0, 0},
{"Pack avanzado (Granada, 9mm silenciada, Country Rifle)", 16, 10, 23, 500, 33, 100, 0, 0, 0, 0},
{"Desarmado", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{"Motosierra", 9, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{"Pala", 9, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{"Bate", 5, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{"Katana", 8, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{"Cuchillo", 4, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{"9mm", 22, 500, 0, 0, 0, 0, 0, 0, 0, 0},
{"Granadas", 16, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Cocktail Molotov", 18, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Desert Eagle", 24, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Escopeta", 25, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Escopeta recortada", 26, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Escopeta de combate", 27, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Micro SMG/Uzi", 28, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"MP5", 29, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Ak-47", 30, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"M4", 31, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Tec-9", 32, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Sniper Rifle", 34, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Lanzacohetes", 35, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Lanzacohetes avanzado", 36, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Lanzallamas", 37, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Spraycan", 41, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Extintor", 42, 200, 0, 0, 0, 0, 0, 0, 0, 0},
{"Cámara fotográfica", 43, 200, 0, 0, 0, 0, 0, 0, 0, 0}
};
enum DUEL_INFO
{
DL_RUNNING,
DL_DUEL_LIST_ID,
DL_DUEL_WEAPON_ID,
DL_PLAYER_ONE,
DL_PLAYER_TWO,
DL_BET,
DL_WORLD
};
new DLI[MAX_PLAYERS][DUEL_INFO];
/* DUEL SYSTEM */
new VehiclesConce[][] =
{
{400, 80000, 70},
{401, 33000, 30},
{402, 90000, 80},
{404, 30000, 25},
{405, 50000, 45},
{410, 25000, 20},
{411, 100000, 120},
{412, 45000, 50},
{413, 50000, 50},
{415, 95000, 90},
{418, 47000, 40},
{417, 60000, 55},
{421, 55000, 50},
{422, 35000, 30},
{426, 50000, 55},
{429, 75000, 70},
{436, 30000, 30},
{439, 55000, 45},
{440, 60000, 55},
{444, 200000, 500},
{445, 40000, 35},
{448, 10000, 10},
{451, 140000, 250},
{458, 28000, 25},
{461, 20000, 25},
{462, 12000, 10},
{463, 17000, 20},
{466, 35000, 30},
{467, 40000, 35},
{468, 18000, 15},
{471, 20000, 20},
{474, 35000, 30},
{475, 40000, 40},
{477, 98000, 95},
{478, 25000, 20},
{479, 45000, 45},
{480, 50000, 50},
{481, 8000, 10},
{482, 60000, 65},
{483, 50000, 50},
{487, 500000, 1500},
{489, 85000, 80},
{491, 40000, 35},
{492, 50000, 45},
{494, 100000, 2000},
{495, 100000, 2000},
{496, 55000, 55},
{498, 60000, 65},
{499, 70000, 70},
{500, 65000, 60},
{506, 180000, 3000},
{507, 55000, 50},
{509, 8000, 10},
{510, 9000, 12},
{516, 48000, 45},
{517, 65000, 70},
{518, 60000, 55},
{521, 25000, 25},
{522, 28000, 25},
{526, 50000, 50},
{527, 40000, 35},
{529, 45000, 45},
{533, 70000, 65},
{534, 70000 ,70},
{535, 75000, 75},
{536, 50000, 55},
{540, 55000, 60},
{541, 105000, 800},
{542, 35000, 30},
{543, 48000, 45},
{545, 70000, 75},
{546, 45000, 40},
{547, 55000, 55},
{549, 30000, 20},
{550, 70000, 65},
{554, 50000, 40},
{554, 100000, 800},
{555, 60000, 60},
{556, 250000, 2500},
{558, 45000, 45},
{559, 90000, 150},
{560, 100000, 250},
{561, 40000, 40},
{562, 90000, 200},
{565, 80000, 100},
{566, 70000, 70},
{567, 65000, 70},
{575, 50000, 45},
{576, 50000, 50},
{579, 80000, 100},
{580, 50000, 50},
{581, 16000, 20},
{585, 45000, 40},
{587, 60000, 60},
{589, 65000, 70},
{600, 50000, 45},
{602, 65000, 60},
{603, 75000, 70}
};
new SFR_TUNING_NEONS[][][] =
{
{"No", 0},
{"Rojo", 5000},
{"Azul", 5000},
{"Verde", 5000},
{"Amarillo", 5000},
{"Rosa", 5000},
{"Blanco", 5000}
};
new VEHICLE_NEON[MAX_VEHICLES][2],
VEHICLE_SIREN[MAX_VEHICLES];
#define RED_NEON 18647
#define BLUE_NEON 18648
#define GREEN_NEON 18649
#define YELLOW_NEON 18650
#define PINK_NEON 18651
#define WHITE_NEON 18652
new Float:var_siren[][] =
{
{0.000000, -0.239959, 0.840003}, //400
{0.000000, -0.451003, 0.779128}, //401
{0.000000, -0.640151, 0.743813}, //402
{0.002196, -0.610167, 2.134906}, //403
{0.000000, -0.404036, 0.957668}, //404
{0.000000, -0.399825, 0.755366}, //405
{0.000000, 4.363051, 1.106600}, //406
{0.0, 0.0, 0.0}, //407
{0.000000, 2.672179, 1.082697}, //408
{0.000000, -0.379745, 0.850350}, //409
{0.000000, -0.391234, 0.904406}, //410
{0.000000, -0.139739, 0.702440}, //411
{0.000000, -0.298339, 0.689697}, //412
{0.000000, 0.576857, 1.100018}, //413
{0.000000, 0.580260, 2.359991}, //414
{0.000000, -0.515640, 0.639225}, //415
{0.0, 0.0, 0.0}, //416
{0.0, 0.0, 0.0}, //417
{0.000000, 0.120346, 1.020164}, //418
{0.000000, -0.569732, 0.688498}, //419
{0.000000, 0.160324, 0.813396}, //420
{0.000000, -0.259734, 0.713948}, //421
{0.000000, 0.048354, 0.795632}, //422
{0.000000, 1.267974, 1.440829}, //423
{0.000000, -0.155807, 0.919970}, //424
{0.0, 0.0, 0.0}, //425
{0.000000, -0.339691, 0.841637}, //426
{0.0, 0.0, 0.0}, //427
{0.000000, 0.790328, 1.379987}, //428
{0.000000, -1.289626, 0.532239}, //429
{0.0, 0.0, 0.0}, //430
{0.000000, 4.650404, 2.145888}, //431
{0.0, 0.0, 0.0}, //432
{0.000000, 1.270385, 1.694254}, //433
{0.000000, -0.363357, 0.751703}, //434
{0.0, 0.0, 0.0}, //435
{0.000000, -0.489104, 0.873771}, //436
{0.000000, 4.200393, 2.039987}, //437
{0.000000, 0.457305, 0.787222}, //438
{0.000000, -0.499664, 0.740000}, //439
{0.000000, 0.458938, 1.224267}, //440
{0.0, 0.0, 0.0}, //441
{0.000000, -0.027053, 0.921773}, //442
{0.0, 0.0, 0.0}, //443
{0.000000, -0.039535, 1.689272}, //444
{0.000000, -0.369598, 0.822878}, //445
{0.0, 0.0, 0.0}, //446
{0.0, 0.0, 0.0}, //447
{0.0, 0.0, 0.0}, //448
{0.0, 0.0, 0.0}, //449
{0.0, 0.0, 0.0}, //450
{0.000000, -0.563934, 0.598007}, //451
{0.0, 0.0, 0.0}, //452
{0.0, 0.0, 0.0}, //453
{0.0, 0.0, 0.0}, //454
{0.000000, 1.170364, 1.669468}, //455
{0.000000, 1.338011, 1.232071}, //456
{0.000000, 0.020232, 1.285405}, //457
{0.000000, -0.300094, 0.724538}, //458
{0.000000, 0.344740, 1.135262}, //459
{0.0, 0.0, 0.0}, //460
{0.0, 0.0, 0.0}, //461
{0.0, 0.0, 0.0}, //462
{0.0, 0.0, 0.0}, //463
{0.0, 0.0, 0.0}, //464
{0.0, 0.0, 0.0}, //465
{0.000000, -0.219420, 0.887385}, //466
{0.000000, -0.219299, 0.836098}, //467
{0.0, 0.0, 0.0}, //468
{0.0, 0.0, 0.0}, //469
{0.000000, -0.223663, 1.074869}, //470
{0.0, 0.0, 0.0}, //471
{0.0, 0.0, 0.0}, //472
{0.0, 0.0, 0.0}, //473
{0.000000, -0.480055, 0.810613}, //474
{0.000000, -0.283782, 0.715839}, //475
{0.0, 0.0, 0.0}, //476
{0.000000, -0.483092, 0.711534}, //477
{0.000000, 0.280028, 0.888418}, //478
{0.000000, -0.404540, 0.969071}, //479
{0.000000, -0.993179, 0.657739}, //480
{0.0, 0.0, 0.0}, //481
{0.000000, 0.546904, 0.930019}, //482
{0.000000, 1.468016, 0.992730}, //483
{0.0, 0.0, 0.0}, //484
{0.0, 0.0, 0.0}, //485
{0.000000, -0.322447, 2.239214}, //486
{0.0, 0.0, 0.0}, //487
{0.0, 0.0, 0.0}, //488
{0.000000, -0.321455, 1.089980}, //489
{0.000000, 0.182022, 1.089980}, //490
{0.000000, -0.669601, 0.726724}, //491
{0.000000, -0.369460, 0.855154}, //492
{0.0, 0.0, 0.0}, //493
{0.000000, -0.570174, 0.713196}, //494
{-0.000609, -0.455642, 0.999161}, //495
{0.000000, -0.478942, 0.832798}, //496
{0.0, 0.0, 0.0}, //497
{0.000000, 0.750473, 2.129985}, //498
{0.000000, 0.205672, 1.950901}, //499
{0.000000, -0.247374, 0.964847}, //500
{0.0, 0.0, 0.0}, //501
{0.000000, -0.233595, 0.761187}, //502
{0.000000, -0.478668, 0.783775}, //503
{0.000000, -0.129256, 0.893329}, //504
{0.000000, -0.131285, 1.089984}, //505
{0.000000, -0.449584, 0.576864}, //506
{0.000000, -0.452086, 0.803644}, //507
{0.000000, 1.279814, 1.678074}, //508
{0.0, 0.0, 0.0}, //509
{0.0, 0.0, 0.0}, //510
{0.0, 0.0, 0.0}, //511
{0.0, 0.0, 0.0}, //512
{0.0, 0.0, 0.0}, //513
{0.000000, -0.300415, 1.520339}, //514
{0.0000, -0.2500, 1.4203}, //515
{0.000000, -0.279280, 0.804795}, //516
{0.000000, -0.279662, 0.796788}, //517
{0.001707, -0.279875, 0.736166}, //518
{0.0, 0.0, 0.0}, //519
{0.0, 0.0, 0.0}, //520
{0.0, 0.0, 0.0}, //521
{0.0, 0.0, 0.0}, //522
{0.0, 0.0, 0.0}, //523
{0.048094, 1.473175, 0.906041}, //524
{0.0, 0.0, 0.0}, //525
{0.000000, -0.409483, 0.643119}, //526
{0.000000, -0.138977, 0.868055}, //527
{0.000000, -0.138885, 1.069983}, //528
{0.000000, -0.143279, 0.898598}, //529
{0.000000, -0.214660, 1.518231}, //530
{0.000000, -1.121642, 0.456609}, //531
{0.0, 0.0, 0.0}, //532
{0.0, 0.0, 0.0}, //533
{0.000000, -0.247161, 0.616352}, //534
{0.000000, -0.252882, 0.812080}, //535
{0.0, 0.0, 0.0}, //536
{0.0, 0.0, 0.0}, //537
{0.0, 0.0, 0.0}, //538
{0.0, 0.0, 0.0}, //539
{0.000000, -0.252211, 0.687619}, //540
{-0.000243, -0.254485, 0.636897}, //541
{0.000000, -0.379974, 0.820002}, //542
{0.000000, 0.090788, 0.878934}, //543
{0.000000, 2.420042, 1.448989}, //544
{0.000000, -0.569899, 0.780000}, //545
{0.000000, -0.569685, 0.818283}, //546
{0.000000, -0.347609, 0.889823}, //547
{0.0, 0.0, 0.0}, //548
{0.000487, -0.088577, 0.716690}, //549
{0.000000, -0.314269, 0.713304}, //550
{0.000000, -0.390868, 0.921875}, //551
{0.000000, 0.657974, 1.293419}, //552
{0.0, 0.0, 0.0}, //553
{0.000000, -0.029890, 1.011299}, //554
{0.001219, -0.389221, 0.563951}, //555
{0.000000, 0.150039, 1.661839}, //556
{0.000000, 0.030090, 1.657943}, //557
{0.000000, -0.493133, 0.850821}, //558
{0.000000, -0.489912, 0.716486}, //559
{0.000000, -0.212188, 0.831607}, //560
{-0.000121, -0.208998, 0.832014}, //561
{0.000000, -0.133818, 0.765760}, //562
{0.0, 0.0, 0.0}, //563
{0.0, 0.0, 0.0}, //564
{0.000000, -0.385268, 0.642476}, //565
{0.000000, -0.376311, 0.859454}, //566
{0.0, 0.0, 0.0}, //567
{0.000000, -0.270660, 0.754558}, //568
{0.0, 0.0, 0.0}, //569
{0.0, 0.0, 0.0}, //570
{0.0, 0.0, 0.0}, //571
{0.0, 0.0, 0.0}, //572
{0.000000, 2.321563, 1.539306}, //573
{0.0, 0.0, 0.0}, //574
{0.0, 0.0, 0.0}, //575
{0.000000, -0.117233, 0.903282}, //576
{0.0, 0.0, 0.0}, //577
{0.002318, 3.280502, 1.383170}, //578
{0.000487, -0.436035, 1.238031}, //579
{0.000975, -0.269805, 1.019207}, //580
{0.0, 0.0, 0.0}, //581
{0.000000, 0.489531, 1.145408}, //582
{0.000000, -0.755843, 1.566974}, //583
{0.0, 0.0, 0.0}, //584
{0.000000, -0.414214, 1.007261}, //585
{0.0, 0.0, 0.0}, //586
{0.000000, -0.634185, 0.725695}, //587
{0.0, 0.0, 0.0}, //588
{0.000000, -0.409835, 1.054774}, //589
{0.0, 0.0, 0.0}, //590
{0.0, 0.0, 0.0}, //591
{0.0, 0.0, 0.0}, //592
{0.0, 0.0, 0.0}, //593
{0.0, 0.0, 0.0}, //594
{0.0, 0.0, 0.0}, //595
{0.0, 0.0, 0.0}, //596
{0.0, 0.0, 0.0}, //597
{0.0, 0.0, 0.0}, //598
{0.0, 0.0, 0.0}, //599
{0.000000, -0.139541, 0.762252}, //600
{0.0, 0.0, 0.0}, //601
{0.000000, -0.493423, 0.703468}, //602
{0.000000, -0.490188, 0.689213}, //603
{0.000000, -0.229660, 0.861217}, //604
{0.000000, -0.007583, 0.878809}, //605
{0.0, 0.0, 0.0}, //606
{0.0, 0.0, 0.0}, //607
{0.0, 0.0, 0.0}, //608
{0.000000, 0.850233, 2.125411}, //609
{0.0, 0.0, 0.0}, //610
{0.0, 0.0, 0.0} //611
};
new Float:g_anltv_VehicleData[212][] = {
{-0.924999, 0.009999, -0.674999},
{-0.979999, 0.074999, -0.489999},
{-1.034999, -0.029999, -0.579999},
{-0.884999, 1.834998, -1.099999},
{-0.839999, -0.064999, -0.419999},
{-0.914999, 0.000000, -0.534999},
{-1.129999, 0.354999, -1.219999},
{-1.214999, 0.125000, -0.759999},
{-0.664999, 0.709999, -0.889999},
{-0.914999, -0.294999, -0.474999},
{-0.879999, 0.000000, -0.389999},
{-0.969999, 0.004999, -0.559999},
{-0.994999, -0.154999, -0.569999},
{-0.919999, -0.069999, -0.719999},
{-0.759999, -0.469999, -0.524999},
{-0.949999, -0.009999, -0.524999},
{-1.259999, -0.604999, -0.664999},
{-2.255004, 0.859999, -0.124999},
{-1.004999, 0.089999, -0.829999},
{-0.934999, -0.009999, -0.584999},
{-0.954999, -0.009999, -0.444999},
{-0.929999, -0.029999, -0.589999},
{-0.889999, 0.009999, -0.609999},
{-0.999999, 0.164999, -0.714999},
{-0.739999, 0.039999, -0.234999},
{-0.639999, 2.475009, -0.789999},
{-0.969999, 0.000000, -0.464999},
{-1.124999, -0.714999, -0.734999},
{-1.124999, 0.054999, -0.759999},
{-0.844999, 0.004999, -0.474999},
{0.0, 0.0, 0.0},
{-1.304998, 2.300005, -0.714999},
{0.0, 0.0, 0.0},
{-0.579999, 0.994999, -0.874999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.859999, -0.024999, -0.489999},
{-1.314998, 2.245003, -0.724999},
{-0.969999, -0.034999, -0.674999},
{-0.884999, 0.034999, -0.644999},
{-0.914999, -0.045000, -0.899999},
{0.0, 0.0, 0.0},
{-1.004999, -0.074999, -0.604999},
{-0.809999, 2.770015, -1.174999},
{-1.064999, 0.000000, 0.135000},
{-0.949999, 0.000000, -0.519999},
{0.0, 0.0, 0.0},
{-1.004999, 0.259999, -0.769999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.984999, -0.194999, -0.519999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.579999, 0.979999, -0.859999},
{-0.764999, -0.179999, -0.464999},
{0.0, 0.0, 0.0},
{-0.959999, -0.039999, -0.594999},
{-0.919999, -0.069999, -0.719999},
{-1.399998, 0.554999, -1.819998},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.989999, -0.064999, -0.489999},
{-0.989999, -0.044999, -0.484999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-1.119999, -0.149999, -0.359999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.994999, -0.064999, -0.544999},
{-0.904999, -0.054999, -0.549999},
{0.0, 0.0, 0.0},
{-0.979999, 0.019999, -0.514999},
{-0.804999, 0.064999, -0.519999},
{-0.854999, 0.090000, -0.454999},
{-0.879999, 0.000000, -0.489999},
{0.0, 0.0, 0.0},
{-0.989999, 0.000000, -0.759999},
{-0.834999, -0.149999, -0.744999},
{0.0, 0.0, 0.0},
{-0.629999, 0.164999, -0.374999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-1.019999, 0.110000, -0.679999},
{-1.054999, 0.125000, -0.604999},
{-0.874999, -0.009999, -0.569999},
{-0.909999, 0.000000, -0.459999},
{0.0, 0.0, 0.0},
{-0.909999, -0.199999, -0.639999},
{-1.024999, 0.184999, -0.809999},
{-0.854999, 0.029999, -0.469999},
{0.0, 0.0, 0.0},
{-1.149999, 0.269999, -0.654999},
{-0.969999, -1.404998, -0.199999},
{-0.969999, 0.189999, -0.574999},
{0.0, 0.0, 0.0},
{-0.909999, 0.029999, -0.639999},
{-0.909999, -0.184999, -0.639999},
{-0.989999, -0.059999, -0.494999},
{-1.019999, 0.110000, -0.679999},
{-0.904999, -0.249999, -0.509999},
{-1.084999, -0.024999, -0.589999},
{-1.334998, -0.424999, -0.979999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.969999, 1.669998, -1.174999},
{-1.454998, 0.439999, -1.854998},
{-0.989999, 0.024999, -0.584999},
{-0.959999, 0.004999, -0.554999},
{-1.049999, 0.110000, -0.439999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.689999, 1.489998, -1.319998},
{-1.054999, 0.499999, -0.329999},
{-0.899999, 0.000000, -0.564999},
{-0.944999, 0.154999, -0.419999},
{-0.924999, 0.059999, -0.529999},
{-0.934999, -0.110000, -0.429999},
{0.0, 0.0, 0.0},
{-0.144999, 0.314999, -0.444999},
{0.0, 0.0, 0.0},
{-0.924999, -0.034999, -0.479999},
{-0.984999, 0.164999, -0.564999},
{-1.069999, -0.034999, -0.569999},
{-0.954999, -0.019999, -0.579999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-1.004999, -0.049999, -0.019999},
{-1.024999, -0.090000, -0.639999},
{-0.904999, 0.000000, -0.414999},
{-0.894999, 0.014999, -0.539999},
{-0.904999, 0.009999, -0.409999},
{-1.089999, 0.000000, -0.709999},
{-0.939999, -0.029999, -0.564999},
{-1.039999, -0.100000, -0.474999},
{-0.884999, 0.059999, -0.479999},
{-1.769998, 1.484998, -1.774998},
{-0.949999, 0.105000, -0.439999},
{-1.089999, -0.059999, -0.554999},
{-0.964999, 0.004999, -0.564999},
{-1.034999, 0.749999, -0.254999},
{0.0, 0.0, 0.0},
{-1.109999, 0.009999, -0.534999},
{-0.754999, 0.000000, -0.464999},
{-1.119999, 0.000000, 0.184999},
{-1.129999, 0.044999, 0.074999},
{-0.894999, -0.089999, -0.374999},
{-0.964999, 0.000000, -0.444999},
{-1.004999, 0.054999, -0.414999},
{-0.919999, 0.130000, -0.574999},
{-0.909999, 0.120000, -0.404999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.824999, 0.000000, -0.414999},
{-0.989999, -0.049999, -0.479999},
{-1.089999, 0.309999, -0.609999},
{-0.334999, 0.100000, -0.374999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.924999, 0.004999, -0.334999},
{-1.019999, -0.140000, -0.419999},
{0.0, 0.0, 0.0},
{-1.429998, -0.649999, -0.879999},
{-1.014999, 0.000000, -0.484999},
{-1.089999, 0.014999, -0.474999},
{0.0, 0.0, 0.0},
{-0.984999, -0.194999, -0.709999},
{-0.674999, 0.259999, 0.130000},
{0.0, 0.0, 0.0},
{-1.019999, -0.009999, -0.354999},
{0.0, 0.0, 0.0},
{-1.009999, -0.064999, -0.534999},
{-1.374998, 0.000000, -0.664999},
{-0.909999, 0.000000, -0.359999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-0.974999, 0.000000, -0.469999},
{-0.969999, 0.000000, -0.464999},
{-1.004999, -0.014999, -0.414999},
{-1.019999, 0.115000, -0.684999},
{-0.959999, 0.204999, -0.499999},
{0.0, 0.0, 0.0},
{-1.024999, 0.000000, -0.549999},
{-0.954999, 0.034999, -0.629999},
{-0.989999, -0.064999, -0.489999},
{-0.904999, 0.009999, -0.409999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0},
{-1.149999, 0.269999, -0.654999},
{0.0, 0.0, 0.0},
{0.0, 0.0, 0.0}
};
enum
{
TP_TYPE_CITY,
TP_TYPE_STUNTS,
TP_TYPE_DM,
TP_TYPE_JUMP,
TP_TYPE_PARKOUR,
TP_TYPE_BASEJUMP,
TP_TYPE_DRIFT,
TP_TYPE_INTERIOR,
TP_TYPE_OTHER,
TP_TYPE_CARTUNING
};
enum TP_INFO
{
TP_Type,
TP_Name[24],
TP_Command[24],
Float:TP_X,
Float:TP_Y,
Float:TP_Z,
Float:TP_Angle,
TP_Interior,
TP_VirtualWorld,
TP_Freeze,
TP_AllowCarTP,
TP_CarModelid
};
new TI[][TP_INFO] = {
{TP_TYPE_CITY, "Los Santos", "/ls", 288.515350, -1782.124755, 4.480312, 180.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_CITY, "San Fierro", "/sf", -1984.807861, 260.942871, 35.223373, 0.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_CITY, "Las Venturas", "/lv", 2020.138427, 1545.115722, 10.893072, 270.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_CITY, "Libert City", "/lc", -743.484863, 502.881072, 1372.125000, 250.0, 1, FREEROAM_VW, false, true, 0},
{TP_TYPE_CITY, "Angel Pine", "/ap", -2099.60, -2516.60, 30.57, 0.0, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CITY, "Dillimore", "/dill", 699.35, -453.97, 16.34, 180.0, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CITY, "Fort Carson", "/fc", 159.65, 1179.54, 15.04, 180.0, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CITY, "Palomino Creek", "/palc", 2282.71, 28.71, 26.48, 270.0, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_STUNTS, "Aeropuerto Las Venturas", "/lva", 1628.870727, 1191.078002, 10.860000, 40.733715, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_STUNTS, "Aeropuerto Abandonado", "/aa", 374.283721, 2536.765869, 16.769062, 180.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_STUNTS, "Aeropuerto San Fierro", "/sfa", -1117.064208, -201.420608, 14.620312, 68.210289, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_STUNTS, "Tube Zone 1", "/tb1", 1411.325317, 2773.905029, 10.929991, 63.076362, 0, FREEROAM_VW, false, false, 415},
{TP_TYPE_STUNTS, "Tube Zone 2", "/tb2", -2078.941406, 1415.736938, 7.100666, 359.132507, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Tube Zone 3", "/tb3", -2824.066650, 1306.986938, 7.101562, 46.759529, 0, FREEROAM_VW, false, true, 415},
{TP_TYPE_STUNTS, "Tube Zone 4", "/tb4", -3290.503662, 573.468566, 2.023799, 91.903327, 0, FREEROAM_VW, true, true, 411},
{TP_TYPE_STUNTS, "Chilliad", "/chill", -2318.737060, -1640.964599, 483.703125, 260.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_STUNTS, "Stunt Zone 1", "/sz1", 232.002059, 2480.479492, 117.770401, 90.0, 0, FREEROAM_VW, true, true, 0},
{TP_TYPE_STUNTS, "Tube 1", "/tb5", -2260.253417, 552.051330, 35.019851, 180.0, 0, FREEROAM_VW, false, true, 502},
{TP_TYPE_STUNTS, "Tunel", "/tn1", -1267.518188, -476.779968, 14.148437, 130.0, 0, FREEROAM_VW, false, true, 596},
{TP_TYPE_STUNTS, "Espiral LV", "/espiral", 1806.269287, 853.021179, 220.462646, 0.0, 0, FREEROAM_VW, true, true, 411},
{TP_TYPE_STUNTS, "Cannon", "/cannon", 1978.150756, 1893.191650, 121.742698, 210.0, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Chilliad Coaster", "/cc", -2252.754394, -1713.224853, 479.730102, 210.0, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Half Pipe", "/hp", 2879.899902, -320.858123, 6.535143, 269.434783, 0, FREEROAM_VW, true, true, 434},
{TP_TYPE_STUNTS, "Helix", "/helix", 2157.532958, 2191.067138, 282.207763, 181.836700, 0, FREEROAM_VW, true, true, 411},
{TP_TYPE_STUNTS, "Loop 1", "/loop1", -1245.699218, 1674.432495, 1114.468383, 183.516372, 0, FREEROAM_VW, true, true, 411},
{TP_TYPE_STUNTS, "Loop 2", "/loop2", 1431.955444, 2708.113769, 740.973510, 179.488311, 0, FREEROAM_VW, true, true, 545},
{TP_TYPE_STUNTS, "Pipe", "/pipe", 258.770660, 2912.594482, 5.261434, 8.375567, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Roller Coaster 1", "/rc1", 836.790100, -2062.316650, 12.594264, 180.527877, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Roller Coaster 2", "/rc2", -1943.592041, -1028.531982, 53.076862, 1.289753, 0, FREEROAM_VW, false, true, 411},
{TP_TYPE_STUNTS, "Water Coaster 1", "/wc1", -1936.023437, -1678.903320, 834.037841, 358.363037, 0, 2, true, true, 411},
{TP_TYPE_STUNTS, "Water Coaster 2", "/wc2", 3157.702880, 2821.431152, 791.800842, 180.813995, 0, FREEROAM_VW, true, true, 451},
{TP_TYPE_STUNTS, "Disco Road", "/dr", 1027.107177, -349.684783, 74.218116, 179.999984, 0, FREEROAM_VW, false, true, 407},
{TP_TYPE_DM, "DM No Escape", "/dm1", -2051.905029, -188.292617, 35.320312, 178.987396, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_DM, "DM 2", "/dm2", -1626.186157, 113.150215, -11.163350, 314.662048, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_DM, "DM 3", "/dm3", -1464.047119, 390.071258, 7.187500, 269.228363, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_DM, "DM Granja", "/dm4", -47.609905, 29.813682, 3.117187, 340.018951, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_DM, "DM Barco", "/dm5", -2312.087158, 1546.786010, 18.773437, 89.663513, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_PARKOUR, "Parkour 1", "/pk1", 1364.500732, -1897.699340, 435.792663, 270.0, 0, FREEROAM_VW, true, false, 0},
{TP_TYPE_PARKOUR, "Parkour 2", "/pk2", -3950.0, 1548.0, 4.8, 0.0, 0, FREEROAM_VW, true, false, 0},
{TP_TYPE_PARKOUR, "Pakour Hay", "/pkh", -1765.789306, 845.476318, 24.734375, 359.684722, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_PARKOUR, "Quad Parkour", "/quadpk", 2939.246337, -2051.402099, 3.029521, 271.947845, 0, FREEROAM_VW, false, true, 471},
{TP_TYPE_PARKOUR, "Sanchez Parkour", "/sanchezpk", -1019.164245, -1043.438964, 128.885971, 31.209333, 0, FREEROAM_VW, false, true, 468},
{TP_TYPE_PARKOUR, "Monster Parkour", "/monsterpk", -1465.259399, 1143.566284, 7.561144, 269.471801, 0, FREEROAM_VW, false, true, 556},
{TP_TYPE_PARKOUR, "BMX Parkour", "/bmxpk", -1922.949218, 457.161804, 56.313117, 270.419311, 0, FREEROAM_VW, false, true, 481},
{TP_TYPE_PARKOUR, "Bike Parkour1", "/bikepk1", -2232.587402, 945.976074, 96.694290, 358.154235, 0, FREEROAM_VW, false, true, 522},
{TP_TYPE_PARKOUR, "Bike Parkour2", "/bikepk2", -2298.494384, 534.393920, 44.301013, 87.531791, 0, FREEROAM_VW, false, true, 522},
{TP_TYPE_PARKOUR, "Bike Parkour3", "/bikepk3", 2720.255126, -2558.420654, 24.060861, 179.312744, 0, FREEROAM_VW, false, true, 522},
{TP_TYPE_BASEJUMP, "Salto 1", "/salto1", 1544.6682,-1352.3226,329.4760,1.4250, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 2", "/salto2", -1753.5562,885.7960,295.8750,355.8117, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 3", "/salto3", 2280.2200,1647.7861,107.9293,268.0593, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 4", "/salto4", -2504.1787,-707.2554,279.7344,222.7380, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 5", "/salto5", 1483.2292,-1791.0811,156.7533,277.0705, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 6", "/salto6", 1665.5255,-1218.5864,233.3750,359.8122, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 7", "/salto7", -1790.8602,567.4060,332.8019,300.6803, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 8", "/salto8", -2661.9463,1595.2345,225.7578,267.6448, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 9", "/salto9", -2873.2102,2710.7180,275.0045,97.0161, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_BASEJUMP, "Salto 10", "/salto10", 2059.8523,2435.1951,165.6172,90.9790, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_JUMP, "Rampa 1", "/rampa1", 12.713602, 1135.036621, 223.395004, 0.0, 0, FREEROAM_VW, true, true, 411},
{TP_TYPE_JUMP, "Rampa 2", "/rampa2", 1477.568725, 1081.478759, 93.300598, 359.928680, 0, FREEROAM_VW, true, true, 415},
{TP_TYPE_DRIFT, "Drift Desierto", "/drift1", -303.952728, 1521.712524, 75.359375, 180.0, 0, FREEROAM_VW, false, true, 502},
{TP_TYPE_DRIFT, "Drift Ciudad", "/drift2", 3043.980224, 2324.111816, 3.976562, 270.0, 0, FREEROAM_VW, true, true, 494},
{TP_TYPE_INTERIOR, "Casa del Horror", "/horror", 2324.511718, -1148.254150, 1050.710083, 359.469177, 12, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "24/7 1", "/2471", -25.884498,-185.868988,1003.546875,359.9107, 17, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "24/7 2", "/2472", 6.091179,-29.271898,1003.549438,359.0000, 10, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Shamal", "/shamal", 1.808619,32.384357,1199.593750,178.0534, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Andromada", "/andromada", 315.9612,985.2897,1958.8451,359.2753, 9, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Ammunation 1", "/ammu1", 286.1490,-40.6444,1001.5156,359.0000, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Ammunation 2", "/ammu2", 285.6192,-83.9430,1001.5156,358.0968, 4, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Ammunation 3", "/ammu3", 297.1149,-109.9273,1001.5156,2.1439, 6, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Ammunation 4", "/ammu4", 315.5149,-141.9979,999.6016,356.5060, 7, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Ammunation 5", "/ammu5", 316.3767,-167.7873,999.5938,1.7206, 6, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Jefferson motel", "/jeff", 2216.7175,-1150.6587,1025.7969,270.2154, 15, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Betting shop", "/bshop", 832.3688,7.7683,1004.1797,87.7159, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Sex shop", "/sexshop", -99.9126,-23.5478,1000.7188,1.6808, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Fabrica de carne", "/fabrica", 961.5553,2108.2913,1011.0303,89.0896, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Zero RC", "/zero", -2239.1545,137.1248,1035.4141,265.6268, 6, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Base Caligula", "/caligula", 2170.7393,1618.5087,999.9766,269.1960, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Oficina de Woozie", "/woozie", -2158.5613,641.7729,1052.3750,87.4610, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Binco", "/binco", 207.9070,-109.1246,1005.1328,4.6377, 15, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Didier sachs", "/ds", 204.2467,-167.2685,1000.5234,358.7444, 14, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Prolaps", "/prolaps", 206.8026,-139.3262,1003.5078,2.8411, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "SubUrban", "/suburban", 203.7780,-48.4924,1001.8047,357.0000, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Victim", "/victim", 224.9722,-8.2584,1002.2109,86.7175, 5, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Zip", "/zip", 162.0087,-94.4686,1001.8047,357.8640, 18, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Club", "/club", 493.3910,-22.7228,1000.6797,357.0000, 17, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Bar", "/bar", 502.3339,-70.6352,998.7578,183.2399, 11, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Lil' probe inn", "/lilprobe", -227.6724,1400.8525,27.7656,274.7772, 18, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Burger Shot", "/bshot", 364.8258,-73.9592,1001.5078,303.7720, 10, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Cluckin' bell", "/cbell", 365.0607,-10.6917,1001.8516,358.5104, 9, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Well stacked pizza", "/wpizza", 371.4449,-132.4595,1001.4922,357.7650, 5, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Sherman dam", "/sherman", -942.5675,1847.6465,5.0051,357.1110, 17, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Planning dept", "/pdept", 385.8102,173.9722,1008.3828,94.7137, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Area 51", "/area51", 206.4965,1868.2484,13.1406,267.5949, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Los Santos Gym", "/lsgym", 771.6628,-3.3456,1000.7281,0.7912, 5, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "San Fierro Gym", "/sfgym", 774.2140,-48.9243,1000.5859,0.0000, 6, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Las Venturas Gym", "/lvgym", 773.5800,-77.0967,1000.6550,0.0000, 7, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Madd Doggs mansion", "/madd", 1266.5347,-781.1734,1091.9063,269.8514, 5, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Fabrica de Crack", "/fcrack", 2543.0801,-1304.2384,1025.0743,180.0612, 2, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Club de strip", "/strip", 1211.6385,-12.8283,1000.9219,0.5169, 2, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Pleasure domes", "/pdomes", -2637.9487,1406.0510,906.4609,89.3124, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Liberty City", "/liberty", -795.1964,496.4371,1376.1953,1.7276, 1, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Coronel Furhberger", "/coronel", 2807.4583,-1172.8979,1025.5703,356.6788, 8, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Crack den", "/crackden", 318.5342,1116.9688,1083.8828,357.5443, 5, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Warehouse", "/wharehouse", 1294.1707,4.7496,1001.0116,181.8583, 18, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "RC Battlefield", "/rcbattle", -976.7442,1061.2205,1345.6719,92.9710, 10, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "San Fierro PD", "/sfpd", 246.1727,109.4176,1003.2188,357.8047, 10, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Las Venturas PD", "/lvpd", 288.7500,168.8866,1007.1719,356.5684, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Escuela de conduccion", "/escuela", -2030.0032,-107.1861,1035.1719,178.4843, 3, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "Banco", "/banco", 2307.6255,-15.3803,26.7496,271.2197, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_INTERIOR, "LS Atruim", "/lsatruim", 1702.7667,-1667.5981,20.2188,268.8958, 18, FREEROAM_VW, false, false, 0},
{TP_TYPE_OTHER, "Karaoke", "/karaoke", 1873.945312, -1411.067016, 13.570312, 0.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_OTHER, "Isla", "/isla", -1635.827026, -3213.378173, 5.294773, 151.393493, 0, FREEROAM_VW, true, true, 0},
{TP_TYPE_OTHER, "Piramide", "/piramide", 2323.638427, 1283.214843, 97.579040, 90.0, 0, FREEROAM_VW, false, false, 0},
{TP_TYPE_OTHER, "Globo aerostatico", "/globo", 2049.517822, 1136.628051, 69.417266, 0.0, 0, FREEROAM_VW, true, false, 0},
{TP_TYPE_OTHER, "Karts 1", "/karts1", 1321.396972, 2123.011230, 10.299494, 359.757720, 0, FREEROAM_VW, false, false, 571},
{TP_TYPE_OTHER, "Karts 2", "/karts2", 2421.215820, 1934.071411, 5.299487, 270.558746, 0, FREEROAM_VW, false, false, 571},
{TP_TYPE_OTHER, "Karts 3", "/karts3", -1337.310424, 377.729400, 43.159145, 90.162170, 0, FREEROAM_VW, true, false, 571},
{TP_TYPE_OTHER, "Karts 4", "/karts4", 1646.289062, 913.919982, 10.676133, 360.0, 0, FREEROAM_VW, true, false, 571},
{TP_TYPE_OTHER, "Toreno", "/toreno", -676.306030, 922.596435, 12.123167, 83.106559, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_OTHER, "Tenis", "/tenis", 753.312011, -1212.003906, 13.546875, 187.737518, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_OTHER, "Cementerio", "/cementerio", 837.984191, -1101.969116, 24.303991, 269.831726, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_OTHER, "Puente SF", "/puentesf", -2625.978515, 1393.064086, 7.101562, 268.868530, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_OTHER, "Concesionario", "/conce", 1641.738769, 1796.203002, 10.820312, 270.0, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CARTUNING, "Wheel Arch Angles SF", "/waa", -2692.2336,213.1314,4.0526,91.5529, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CARTUNING, "Transfender SF", "/transf", -1946.5612,234.1954,33.6482,269.8928, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CARTUNING, "Transfender LV", "/tranlv", 2387.8518,1025.6975,10.6270,1.7751, 0, FREEROAM_VW, false, true, 0},
{TP_TYPE_CARTUNING, "Transfender LS", "/tranls", 1041.2853,-1052.2833,31.5089,0.4850, 0, FREEROAM_VW, false, true, 0}
};
enum
{
DIALOG_LOGIN,
DIALOG_REGISTER,
DIALOG_TELEPORTS,
DIALOG_TELEPORTS_LIST,
DIALOG_MUSIC,
DIALOG_RADIO,
DIALOG_VEHICLES,
DIALOG_WEAPONS = DIALOG_VEHICLES+15,
DIALOG_ITEMS = DIALOG_WEAPONS+10,
DIALOG_ANIMS,
DIALOG_HELP1,
DIALOG_HELP2,
DIALOG_HELP3,
DIALOG_COMMANDS,
DIALOG_CREDITS,
DIALOG_SELECT_GANG_TEAM,
DIALOG_SELECT_MODE,
DIALOG_EVENT,
DIALOG_TOPS = DIALOG_EVENT+10,
DIALOG_STATS,
DIALOG_SONG,
DIALOG_ACMDS,
DIALOG_FIGHTSTYLE,
DIALOG_HOUSE_MANAGE,
DIALOG_VEHICLECONTROL,
DIALOG_PERSONAL_VEHICLES,
DIALOG_SELECT_ZOMBIE_TEAM,
DIALOG_AUX,
DIALOG_CHATCOLOR,
DIALOG_VIPINFO,
DIALOG_PLATE,
DIALOG_CREW_MANAGE,
DIALOG_CREW_MEMBERS,
DIALOG_CREW_EDIT_MEMBERS,
DIALOG_CREW_EDIT_MEMBER,
DIALOG_CREW_EDIT_COLOR,
DIALOG_SELECT_COLOR,
DIALOG_SOCIAL_MUSIC,
DIALOG_SOCIAL_ADD,
DIALOG_SOCIAL_MY = DIALOG_SOCIAL_ADD + 3,
DIALOG_SOCIAL_BEST = DIALOG_SOCIAL_MY + 2,
DIALOG_SOCIAL_ADD_AUTO,
DIALOG_SOCIAL_MY_BEST,
DIALOG_SOCIAL_SEARCH_YT,
DIALOG_MUSIC_RESULTS,
DIALOG_ADMINS,
DIALOG_EDIT_ADMIN,
DIALOG_EDIT_PLAYERNAME,
DIALOG_NPASS,
DIALOG_DUEL = DIALOG_NPASS + 2,
DIALOG_DUEL_WEAPONS,
DIALOG_NEW_DUEL,
//DIALOG_DNS
DIALOG_USER_PANEL,
DIALOG_SELECT_TDM_TEAM,
DIALOG_RULES
};
// DIALOGS
new DIALOG_ACMDS_String[2000],
DIALOG_CREDITS_String[600],
DIALOG_COMMANDS_String[1700],
DIALOG_HELP1_String[1200],
DIALOG_HELP2_String[1400],
DIALOG_HELP3_String[600],
DIALOG_ANIMS_String[1000],
DIALOG_ITEMS_String[1100],
DIALOG_VIPINFO_String[2000],
DIALOG_SELECT_COLOR_String[4200],
DIALOG_TOPS_String[1280],
DIALOG_SOCIAL_String[1200],
DIALOG_ADMINS_String[1800],
DIALOG_DUEL_String[400],
DIALOG_DUEL_WEAPONS_String[800],
DIALOG_RULES_String[500];
//CREW SYSTEM
#define MAX_CREWS (1000)
enum
{
RANK_NOOB,
RANK_ADVANCED,
RANK_PROFESSIONAL,
RANK_LEADER,
RANK_FOUNDER
};
enum CINFO
{
C_VALID,
C_ID,
C_NAME[10],
C_MEMBERS,
C_COLOR
};
new CI[MAX_CREWS][CINFO], Total_Crews,
Crew_Ranks[][] =
{
"Nuevo",
"Avanzado",
"Profesional",
"Líder",
"Fundador"
}
;
enum
{
DB_GET_ID,
DB_GET_IP,
DB_GET_NAME,
DB_GET_PASS,
DB_GET_DATREG,
DB_GET_BANNED,
DB_GET_TEMPBAN,
DB_GET_MOD,
DB_GET_KILLS,
DB_GET_DEATHS,
DB_GET_MONEY,
DB_GET_SCORE,
DB_GET_FIGHTSTYLE,
DB_GET_HOUSES,
DB_GET_VEHICLES,
DB_GET_VIP,
DB_GET_VIPTIME,
DB_GET_CHATCOLOR,
DB_GET_CREW_ID,
DB_GET_CREW_RANK,
DB_GET_COLOR,
DB_GET_PMS,
DB_GET_SKIN,
DB_GET_CONNECTED,
DB_GET_PLAYERID,
DB_GET_IGNOREDL,
DB_GET_IGNORE_MUSIC,
DB_GET_IGNORE_SOUNDS,
DB_GET_IGNORE_TPTD,
DB_GET_IGNORE_SFRTD,
DB_GET_LCONNECTION
};
enum P_INFO
{
P_BOT,
P_ID,
P_IP[16],
P_USEREXIT,
P_LOGGED,
P_SELECTING_MODE_TD,
P_USER_CONNECTED_TICKCOUNT,
P_NAME[MAX_PLAYER_NAME],
P_PASS,
P_STATUS,
P_DATEREG,
P_BANNED,
P_TEMPBAN,
P_MOD,
P_GODMODE,
Float:P_HEALTH,
P_DIALOG_TP[sizeof(TI)],
P_TIMERS[MAX_TIMERS_PER_PLAYER],
P_KILLS,
P_DEATHS,
P_MONEY,
P_WINMONEY,
P_LOSEMONEY,
P_SCORE,
P_WINSCORE,
P_LOSESCORE,
P_FIGHTSTYLE,
P_GAMEMODE,
P_FRVEHICLE,
P_JOINED_EVENT,
P_EVENT_POSGET,
P_ANTIFLOOD_TICKCOUNT,
P_ANTIFLOOD_REPORT,
P_HOUSES,
P_VEHICLES,
P_VIP,
P_CHATCOLOR,
P_VIPTIME,
P_DERBY_VEHICLEID,
P_DERBY_POSITION,
P_DERBY_STATUS,
P_DERBY_SPECTATEPLAYER,
P_CHECKAFK,
P_JOINDERBY,
P_FALL_STATUS,
P_TEMPHOUSE_INDEX,
P_HOUSEICONS[MAX_HOUSES_PER_PLAYER],
P_TEMP_VID,
P_VEHICLES_MODEL[MAX_VEHICLES_PER_PLAYER],
P_VEHICLES_SQL_ID[MAX_VEHICLES_PER_PLAYER],
P_VEHICLES_VEH_ID[MAX_VEHICLES_PER_PLAYER],
P_SHOPCAR,
P_SHOPCARINDEX,
P_DESMADRE,
P_SELECTING_ZOMBIE_TEAM,
P_ZOMBIE_TEAM,
P_INFECTED,
P_HESOYAM_TIME,
Text3D:P_VIP_LABEL,
P_TUNING_MENU,
P_TUNING_PAGE,
P_SPAWN_PROTECTION,
P_ANTICARTROLL_TIME,
P_CREW_ID, P_CREW_SLOT, P_CREW_RANK, P_CREW_DIALOG_PID[23], P_CREW_PLAYER_SELECTED,
P_CREW_INVITED, P_CREW_INVITE_TIME, Text3D:P_CREW_LABEL, P_CREW_DIALOG_PAGE,
P_DIALOG_PAGE, P_TOP_CLOSE,
P_MUSIC_TITLE[32], P_MUSIC_URL[128], P_MUSIC_TYPE, P_MUSIC_ID[13], P_MUSIC_PAGE, P_MUSIC_SELECTED, P_MUSIC_ANTIFLOOD, P_MUSIC_YTSEARCH_AF,
P_COLOR, P_SAVED_SKIN, P_ADMINS_DIALOG[23], P_ADMIN_SELECTED,
P_PLAYER_SELECTED, P_PLAYER_SELECTED_NAME[24],
P_DUEL_ID, P_DUEL_PET_TIME,
P_INFO_SERVER,
P_PMS, P_IGNORE_DUELS, P_IGNORE_MUSIC, P_IGNORE_SOUNDS, P_IGNORE_TPTD, P_IGNORE_SFRTD,
//P_DNS[45]
P_SELECT_MODE_PAGE, P_TEM_TEAM,
PlayerText:PTD_MESSAGE_TD,
P_SHOOTER_VEHICLEID, P_SHOOTER_POSITION, P_SHOOTER_STATUS, P_SHOOTER_FIRETIME, P_SHOOTER_JUMP, P_SHOOTER_SPECTATEPLAYER,
P_RACE_VEHICLEID, P_RACE_POSITION, P_RACE_STATUS, P_RACE_SPECTATEPLAYER, P_RACE_CPCOUNT, P_RACE_VOTED
};
new PI[MAX_PLAYERS][P_INFO],
PlayerText:PTD_RACE[MAX_PLAYERS][3];
enum
{
TUNING_NEONS,
TUNING_LIGHT,
TUNING_PAINT,
TUNING_PLATE
};
new Random_Weapons[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 15, 16, 17, 18, 22, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33, 34};
new FreeRoam_Skins[] =
{
60,
55,
45,
44,
29,
27,
26,
23,
22,
21,
56,
266,
267,
268,
269,
271,
272,
280,
281,
282,
283,
285,
286,
287,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
274,
275,
276,
1,
2,
290,
291,
292,
293,
294,
295,
296,
297,
298
};
new VehicleNames[][] = {
{"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
{"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
{"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
{"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
{"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
{"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
{"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
{"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
{"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
{"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
{"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
{"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
{"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
{"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
{"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
{"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
{"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
{"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
{"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
{"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
{"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
{"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
{"Utility Trailer"}};
enum
{
S_NONE,
S_CONNECTED,
S_CLASS,
S_DEAD,
S_SPAWNED,
};
enum
{
TEAM_GROVE,
TEAM_BALLAS,
TEAM_POLICE
};
new TEAM_SKINS[][] =
{
{105, 106, 107, 270},
{102, 103, 104, 28},
{284, 300, 301, 306}
};
new Float:TEAM_SPAWNS[][][] =
{
/*GROVE STREET*/
{
{2512.040771, -1667.074707, 13.568134, 82.094100},
{2499.001708, -1683.875244, 13.398897, 9.400088},
{2469.619384, -1678.464965, 13.507812, 308.612854},
{2460.800781, -1651.716064, 13.448091, 176.988235}
},
/*BALLAS*/
{
{2644.751464, -2011.922241, 13.554687, 0.0},
{2653.886962, -1998.142822, 13.554687, 180.0},
{2669.437988, -2012.944824, 13.554687, 0.0},
{2688.628662, -1994.753540, 13.547199, 180.0}
},
/*POLICE*/
{
{1541.0643, -1669.1321, 13.5981, 0.0},
{1566.4711, -1619.9673, 13.6969, 0.0},
{1537.1361, -1613.5082, 13.6969, 0.0},
{1573.8649, -1634.8484, 13.6969, 0.0}
}
};
new TEAM_WEAPONS[][] =
{
{22, 28, 18},
{22, 28, 4},
{22, 30, 3}
};
new TEAM_COLORS[] =
{
0x00CC33FF,
0x993399FF,
0x0066FFFF
};
new Float:PlayerSpawnPosition_FR_LV[][] =
{
{2020.138427, 1545.115722, 10.893072, 270.000000}, //lv
{288.515350, -1782.124755, 4.480312, 180.000015}, //ls
{-1984.625732, 261.254882, 35.223373, 358.819152}, //sf
{-2318.737060, -1640.964599, 483.703125, 260.000000}, //chill
{1628.870727, 1191.078002, 10.860000, 40.733707}, //lva
{-1117.064208, -201.420608, 14.620312, 68.210281}, //sfa
{374.283721, 2536.765869, 16.769062, 180.0} //aa
};
new PlayerSpawnPosition_Areas[sizeof(PlayerSpawnPosition_FR_LV)];
new RandomColors[] =
{
0xFFFFFFFF,
0x000000FF,
0x99CC00FF,
0xFF9900FF,
0x6699CCFF,
0x0099FFFF,
0xCCCC99FF,
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
0xD8C762FF,0xD8C762FF
};
new Float:Random_Desmadre_Spawn[][] =
{
{1406.687011, -1.380011, 1000.921447, 130.106964}, //desmadre1
{1366.083007, -41.842506, 1000.920837, 313.721954}, //desmadre2
{1363.560791, -1.339079, 1000.921875, 223.167770}, //desmadre3
{1414.358276, -43.151893, 1000.922058, 46.156135}, //desmadre4
{1414.038330, -29.632303, 1000.925048, 89.083198}, //desmadre5
{1363.077148, -24.345876, 1000.921875, 270.481506}, //desmadre6
{1389.484375, 0.114360, 1000.912353, 172.407272}, //desmadre7
{1389.924926, -44.993949, 1000.922607, 354.768981} //desmadre8
};
new RandomMusic[][][] =
{
{"Super FreeRoam 3", "https://www.dropbox.com/s/0o1kk2b8arnejkr/superfreeroam.mp3?dl=1"},
{"Grandmaster Flash - The Message", "http://www.dropbox.com/s/2922p2r79li1mu8/message.mp3?dl=1"},
{"Ini Kamoze - Here Comes The Hotstepper", "http://www.dropbox.com/s/1a88no5ysxkmm7n/sfr1.mp3?dl=1"},
{"Gigi D'Agostino - Bla Bla Bla", "http://www.dropbox.com/s/7fnxvqkqla192qf/sfr2.mp3?dl=1"},
{"Danzig - Mother", "http://www.dropbox.com/s/jdmpear5n97fzly/intro3.mp3?dl=1"},
{"Favored Nation - The Setup", "http://www.dropbox.com/s/jwblg34jya186e6/setup.mp3?dl=1"},
{"Kavinsky - Nightcall", "http://www.dropbox.com/s/li5zlzfg48323k4/night.mp3?dl=1"}
};
new Radios[][][] =
{
{"SomaFM", "http://somafm.com/tags.pls"},
{"Los 40", "http://63.243.149.3/LOS40CMP3"},
{"Kronehit Dance", "http://onair-ha1.krone.at/kronehit-dance.mp3.m3u"},
{"Qmsuic be live 96", "http://icecast-qmusic.cdp.triple-it.nl/Qmusic_be_live_96.mp3.m3u"},
{"Power Hit Radio", "http://stream.power.ee/PHR.m3u"}
};
new
TOTAL_PLAYERS,
TOTAL_PLAYERS_FR,
TOTAL_PLAYERS_GANG,
TOTAL_PLAYERS_DM,
TOTAL_PLAYERS_DUEL,
LS_Gang_GangZone,
Desmadre_Area,
Minecraft_Area,
PORTAL_PICKUP[9],
GROVE_STREET_HEALTH_PICKUP,
GROVE_STREET_WEAPON_PICKUP[3],
BALLAS_HEALTH_PICKUP,
BALLAS_WEAPON_PICKUP[3],
POLICE_HEALTH_PICKUP,
POLICE_WEAPON_PICKUP[3],
Text:TD_MUSIC_YT[2],
Text:TD_SFR_SERVER_INFO,
Text:TD_SFR_WEB_INFO,
Text:TD_SFR_HUD[4],
Text:TD_SFR_TPINFO[2], TPINFO_Timer, VEHICLES_PLAYER[MAX_VEHICLES],
Text:TD_SFR_EVENTINFO[2],
PlayerText:PTD_SFR_KICKED[MAX_PLAYERS][5],
Text:TD_SFR_SELECTMODE[34],
Text:TD_SFR_SMODE_PAGE[2],
Text:TD_CarShop[5], PlayerText:PTD_CarShop[MAX_PLAYERS][3],
Text:TD_SFR_ZOMBIE_EDITION[6], Text:TD_SFR_ZOMBIE_INFECTED,
Text:TD_SFR_TUNING[3], PlayerText:PTD_SFR_TUNING[MAX_PLAYERS][28],
Object_String[512],
Text:TD_WELCOME[4],
COUNTDOWN_COUNTER, COUNTDOWN_STARTED, COUNTDOWN_TIME
;
new RandomGameTextColors[][] =
{
"~p~~h~",
"~r~~h~",
"~g~~h~",
"~b~~h~",
"~y~~h~",
"~w~~h~"
};
forward Countdown();
#define TD_COUNTER_FR 16
#define TD_COUNTER_GANG 17
#define TD_COUNTER_DERBY 18
#define TD_COUNTER_DM 19
#define TD_COUNTER_FALL 20
#define TD_COUNTER_ZOMBIE 22
#define TD_COUNTER_SFR 24
#define TD_COUNTER_TDM 26
#define TD_COUNTER_SHOOTER 29
#define TD_COUNTER_RACES 32
//RACE SYSTEM
#define MAX_RACES (100)
#define MAX_RACE_CP (100)
enum
{
RACE_CLOSED,
RACE_WAIT,
RACE_RUNNING
};
enum RCINFO
{
R_ID,
R_NAME[24],
R_INT,
R_WEATHER[2],
R_MODELID,
R_FREEZE,
Float:R_ANGLE,
R_COLLISIONS,
R_TOTAL_CP,
R_PLAYERS,
R_RUNNING_PLAYERS,
R_STATUS,
R_TICKCOUNT,
R_COUNTDOWN_COUNTER,
R_COUNTDOWN_TIMER,
R_MESSAGE_TIMER,
R_MAX_PRIZE,
R_TIMEOUT_COUNTER,
R_TIMEOUT_TIMER,
R_NEXT_RACE_TIMER,
R_COLLISION_VOTES[2]
};
enum CPINFO
{
R_CP_VEHS_COUNTER,
R_CP_TYPE,
Float:R_CP_POS[3],
Float:R_CP_SIZE
};
new RC[RCINFO],
RACE_CP[MAX_RACE_CP][CPINFO],
RACE_Names[MAX_RACES][24],
RC_SPAWN_POSITION_USED[MAX_PLAYERS],
Float:RC_SPAWN_POSITIONS[MAX_PLAYERS][4],
Text:TD_RACE[9], Text:TD_RACEMessage, Text:TD_RACE_Collisions[4],
TOTAL_RACES;
forward RaceCountdown();
//SHOOTER SYSTEM
enum
{
SHOOTER_CLOSED,
SHOOTER_RUNNING,
SHOOTER_WAIT
};
#define MAX_SHOOTERS (100)
enum SHOOTERINFO
{
S_ID,
S_NAME[24],
S_INT,
S_WEATHER[2],
S_CENTER_OBJECTID,
S_CENTER_MODELID,
Float:S_CENTER_POS[6],
S_VEH_MODELID,
S_FREEZE,
S_STATUS,
//S_TIME,
//S_TIMETIMER,
S_PLAYERS,
S_RUNNING_PLAYERS,
S_COUNTDOWN_COUNTER,
S_COUNTDOWN_TIMER,
S_FIREWORKS_TIMER,
S_FIREWORKS,
S_TICKCOUNT,
S_TIMEOUT_COUNTER,
S_TIMEOUT_TIMER,
S_MAX_PRIZE,
S_WINNER,
S_NEXT_SHOOTER_TIMER,
S_MESSAGE_TIMER
};
new ST[SHOOTERINFO],
ST_SPAWN_POSITION_USED[MAX_PLAYERS],
Float:ST_SPAWN_POSITIONS[MAX_PLAYERS][4],
Text:TD_SHOOTER[9], Text:TD_ShooterMessage,
SHOOTER_Names[MAX_SHOOTERS][24],
TOTAL_SHOOTER;
forward ShooterCountdown();
//TDM SYSTEM
enum
{
TDM_CLOSED,
TDM_RUNNING
};
#define MAX_TDMS (100)
#define TDM_NEXT_ROUND_TIME (300) // 1 minutos
enum TDMINFO
{
T_ID,
T_NAME[24],
T_INT,
T_WEATHER[2],
T_FREEZE,
T_STATUS,
T_TIME,
T_TIMETIMER,
T_OBJECTIVE,
T_COUNTER[2],
T_PLAYERS,
T_TeamPLAYERS[2],
T_NEXTTDM_TIMER
};
new TDMI[TDMINFO],
TDM_WEP[13][2],
Float:TDM_SP[2][10][4],
Text:TD_TDM[16],
TDM_Names[MAX_TDMS][24],
TOTAL_TDM;
forward TDMCounterBack();
new TDM_TeamColors[] =
{
0xC7160CAA,
0xCEC920AA
};
//DM SYSTEM
#define MAX_DM_SP (10)
#define MAX_DMS (100)
#define DM_NEXT_ROUND_TIME (180) // 3 minutos
enum
{
DM_CLOSED,
DM_RUNNING
};
new
Text:TD_DM[6],
DM_ID,
DM_STATUS,
DM_TIME,
DM_TIMETIMER,
DM_INT,
DM_FREEZE,
DM_WEP[13][2],
DM_Name[24],
Float:DM_SP[MAX_DM_SP][4],
DM_Names[MAX_DMS][24],
DM_TWEATHER[2],
Total_DM;
//new BANNED_DNS[10][45];
//EVENT SYSTEM
new WEATHERS[][] = {
"EXTRASUNNY_LA",
"SUNNY_LA",
"EXTRASUNNY_SMOG_LA",
"SUNNY_SMOG_LA",
"CLOUDY_LA",
"SUNNY_SF",
"EXTRASUNNY_SF",
"CLOUDY_SF",
"RAINY_SF",
"FOGGY_SF",
"SUNNY_VEGAS",
"EXTRASUNNY_VEGAS (heat waves)",
"CLOUDY_VEGAS",
"EXTRASUNNY_COUNTRYSIDE",
"SUNNY_COUNTRYSIDE",
"CLOUDY_COUNTRYSIDE",
"RAINY_COUNTRYSIDE",
"EXTRASUNNY_DESERT",
"SUNNY_DESERT",
"SANDSTORM_DESERT",
"UNDERWATER (greenish, foggy)"
};
enum
{
EVENT_CLOSED,
EVENT_JOINING,
EVENT_RUNNING
};
new
TOTAL_PLAYERS_EVENT,
EVENT_NAME[24],
EVENT_STATUS = EVENT_CLOSED,
Float:EVENT_POS[4],
EVENT_INT,
EVENT_VIRUALWORLD = FREEROAM_VW,
EVENT_TIME = 12,
EVENT_WEATHER,
EVENT_WEP[5],
EVENT_VEHICLE,
EVENT_FREEZE;
//DERBY SYSTEM
#define MAX_DERBY_PLAYERS (20)
#define MAX_DERBYS (100)
#define NO_WINNER (-1)
enum
{
DERBY_CLOSED,
DERBY_RUNNING,
DERBY_WAIT
};
enum
{
PD_NORMAL,
PD_DEAD,
PD_SPECTATE
};
enum DINFO
{
D_PLAYERS,
D_RUNNINGPLAYERS,
D_WINNER,
D_STATUS,
D_ID,
D_NAME[24],
D_WEATHER,
D_HOUR,
D_VEHICLE,
Float:D_ZPOS,
D_TICKCOUNT,
D_COUNTDOWN_COUNTER,
D_COUNTDOWN_TIMER,
D_NEXTDSTATUS_TIMER,
D_TIMEOUT_COUNTER,
D_TIMEOUT_TIMER,
D_MAX_PRIZE
};
new DI[DINFO], Float:DERBY_SPAWN[MAX_DERBY_PLAYERS][4], DERBY_SLOT_USED[MAX_DERBY_PLAYERS], Text:TD_DERBY[9], Text:TD_DerbyMessage,
TOTAL_DERBYS, File_String[512], DERBY_FILENAMES[MAX_DERBYS][24];
forward NextDerbyStatus();
forward DerbyCountdown();
forward DerbyTimeOutCountdown();
forward CheckPlayerPause(playerid);
//FALL SYSTEM
#define MAX_FALLS (50)
#define MAX_FALL_OBJECTS (500)
enum
{
FALL_CLOSED,
FALL_RUNNING,
FALL_WAIT
};
enum FINFO
{
F_PLAYERS,
F_RUNNINGPLAYERS,
F_WINNER,
F_STATUS,
F_ID,
//F_OBJECTS,
F_NAME[24],
F_WEATHER,
F_HOUR,
Float:F_DEAD_CAM[6],
Float:F_ZPOS,
F_TICKCOUNT,
F_COUNTDOWN_COUNTER,
F_COUNTDOWN_TIMER,
F_NEXTFSTATUS_TIMER,
F_TIMEOUT_COUNTER,
F_TIMEOUT_TIMER,
F_MAX_PRIZE
};
new FI[FINFO], FALL_OBJECTID[MAX_FALL_OBJECTS], FALL_SMOKE_OBJECTID[MAX_FALL_OBJECTS],/* FALL_OBJECT_VALID[MAX_FALL_OBJECTS],*/ Text:TD_FALL[9], Text:TD_FallMessage,
TOTAL_FALLS, FALL_FILENAMES[MAX_FALLS][24], Iterator:FALL_OBJECTS<MAX_FALL_OBJECTS>;
forward NextFallStatus();
forward FallCountdown();
forward FallTimeOutCountdown();
//HOUSE SYSTEM
#define MAX_HOUSES (500)
#define MAX_HOUSES_PER_NORMAL_PLAYER (2)
#define MAX_HOUSE_DAYS (7)
enum HINFO
{
H_VALID,
H_ID,
H_PRICE[2],
H_OWNERID,
H_OWNER[24],
H_SOLD,
Float:H_extPos[4],
Float:H_intPos[4],
H_INTERIOR,
H_FREEZE,
Text3D:H_LABEL,
H_WORLD,
H_PICKUP,
H_OPENED
};
new HI[MAX_HOUSES][HINFO], HOUSES_LOADED, HOUSES_SOLD;
//VEHICLE SYSTEM
#define MAX_VEHICLES_PER_NORMAL_PLAYER (2)
enum VINFO
{
V_VALID,
V_ID,
V_OWNERID,
V_OWNER[24],
V_KEY,
V_MODELID,
V_LOCKED,
V_NEON,
V_SIREN,
V_PLATE[32],
V_COLOR[2],
V_PAINTJOB,
V_MOD[17]
};
new VI[MAX_VEHICLES][VINFO];
new spoiler[20][0] = {
{1000},
{1001},
{1002},
{1003},
{1014},
{1015},
{1016},
{1023},
{1058},
{1060},
{1049},
{1050},
{1138},
{1139},
{1146},
{1147},
{1158},
{1162},
{1163},
{1164}
};
new nitro[3][0] = {
{1008},
{1009},
{1010}
};
new fbumper[23][0] = {
{1117},
{1152},
{1153},
{1155},
{1157},
{1160},
{1165},
{1167},
{1169},
{1170},
{1171},
{1172},
{1173},
{1174},
{1175},
{1179},
{1181},
{1182},
{1185},
{1188},
{1189},
{1192},
{1193}
};
new rbumper[22][0] = {
{1140},
{1141},
{1148},
{1149},
{1150},
{1151},
{1154},
{1156},
{1159},
{1161},
{1166},
{1168},
{1176},
{1177},
{1178},
{1180},
{1183},
{1184},
{1186},
{1187},
{1190},
{1191}
};
new exhaust[28][0] = {
{1018},
{1019},
{1020},
{1021},
{1022},
{1028},
{1029},
{1037},
{1043},
{1044},
{1045},
{1046},
{1059},
{1064},
{1065},
{1066},
{1089},
{1092},
{1104},
{1105},
{1113},
{1114},
{1126},
{1127},
{1129},
{1132},
{1135},
{1136}
};
new bventr[2][0] = {
{1142},
{1144}
};
new bventl[2][0] = {
{1143},
{1145}
};
new bscoop[4][0] = {
{1004},
{1005},
{1011},
{1012}
};
new rscoop[17][0] = {
{1006},
{1032},
{1033},
{1035},
{1038},
{1053},
{1054},
{1055},
{1061},
{1067},
{1068},
{1088},
{1091},
{1103},
{1128},
{1130},
{1131}
};
new lskirt[21][0] = {
{1007},
{1026},
{1031},
{1036},
{1039},
{1042},
{1047},
{1048},
{1056},
{1057},
{1069},
{1070},
{1090},
{1093},
{1106},
{1108},
{1118},
{1119},
{1133},
{1122},
{1134}
};
new rskirt[21][0] = {
{1017},
{1027},
{1030},
{1040},
{1041},
{1051},
{1052},
{1062},
{1063},
{1071},
{1072},
{1094},
{1095},
{1099},
{1101},
{1102},
{1107},
{1120},
{1121},
{1124},
{1137}
};
new hydraulics[1][0] = {
{1087}
};
new vbase[1][0] = {
{1086}
};
new rbbars[4][0] = {
{1109},
{1110},
{1123},
{1125}
};
new fbbars[2][0] = {
{1115},
{1116}
};
new wheels[17][0] = {
{1025},
{1073},
{1074},
{1075},
{1076},
{1077},
{1078},
{1079},
{1080},
{1081},
{1082},
{1083},
{1084},
{1085},
{1096},
{1097},
{1098}
};
new lights[2][0] = {
{1013},
{1024}
};
//ZOMBIE SYSTEM
#define ZOMBIE_TIME (0)
#define ZOMBIE_WEATHER (9)
new ZombieMusic[][] =
{
"https://www.dropbox.com/s/dyc7689hg1ss1v4/zombi1.mp3?dl=1",
"https://www.dropbox.com/s/pp6wf4ha0tqkrda/zombi2.mp3?dl=1",
"https://www.dropbox.com/s/hfcn5ou7fsknd8x/zombi3.mp3?dl=1",
"https://www.dropbox.com/s/szinw2z9adrojxu/zombi4.mp3?dl=1"
};
enum
{
TEAM_HUMANS,
TEAM_ZOMBIE
};
enum ZINFO
{
Z_TEAM_PLAYERS[2],
Z_PLAYERS
};
new ZI[ZINFO];
new ZombieColor[] =
{
0xC6D855AA,
0xCF3200AA
};
new ZombieWeathers[] =
{
ZOMBIE_WEATHER,
ZOMBIE_WEATHER //754
};
new Float:ZombieSpawns[][][] =
{
{
{1893.895874, -1944.860961, 13.546875, 280.360015}, //h1
{1814.852661, -1879.422851, 13.578125, 333.313934}, //h2
{1611.209228, -1725.708374, 13.546875, 90.188339}, //h3
{1275.393188, -1566.630615, 13.539091, 303.233612}, //h4
{904.827758, -991.931823, 37.621093, 61.988059}, //h5
{741.323852, -1783.682006, 13.165971, 301.690338} //h6
},
{
{1075.176635, -1400.469970, 13.529095, 246.543334}, //z1
{530.908386, -1657.995239, 18.531250, 218.343063}, //z2
{1718.421142, -1247.170898, 13.792890, 189.852767}, //z3
{1451.383178, -1174.337280, 23.689067, 297.327026}, //z4
{2560.831298, -1260.371582, 45.923145, 81.751586}, //z5
{2715.921630, -1524.584228, 29.745475, 189.852539} //z6
}
};
new ZombieSkins[][] =
{
{6, 15, 21, 56, 60, 73, 93, 100, 121, 142, 258},
{77, 134, 137, 212, 230, 162, 162, 162, 162, 162, 162}
};
native IsValidVehicle(vehicleid);
main()
{
print("
----------------------------------");
print(" SFR3 version "SERVER_VERSION" is on!");
print("----------------------------------
");
}
stock number_format(e_number)
{
new f_string[24];
format(f_string, sizeof f_string, "%d", e_number);
new numbers = strlen(f_string);
while(numbers > 3)
{
numbers -= 3;
strins(f_string, ".", numbers);
}
return f_string;
}
public OnGameModeInit()
{
OpenDataBase();
db_query(Database, "UPDATE USERS SET CONNECTED = '0', PLAYERID = '-1'");
//format(DB_Query, sizeof DB_Query, "UPDATE USERS SET LCONNECT = '%d'", gettime());
//db_query(Database, DB_Query);
SetGameModeText(GAMEMODETEXT);
SendRconCommand("hostname "HOSTNAME"");
SendRconCommand("language "LANGUAGE"");
SendRconCommand("weburl "SERVER_WEB"");
SendRconCommand("minconnectiontime 3000");
SendRconCommand("ackslimit 5000");
SendRconCommand("chatlogging 1");
Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, 550);
AddPlayerClasses();
UsePlayerPedAnims();
DisableInteriorEnterExits();
EnableStuntBonusForAll(false);
EnableVehicleFriendlyFire();
LoadDMNames("DM/dms.sfr");
LoadDerbyNames("DERBY/derbys.sfr");
LoadFallNames("FALL/falls.sfr");
LoadTDMNames("TDM/tdms.sfr");
LoadShooterNames("SHOOTER/shooters.sfr");
LoadRacesNames("RACE/races.sfr");
CreateDialogsStrings();
CreateObjects();
CreatePickups();
CreateTextDraws();
LoadHouses();
LoadCrews();
SetTimers();
//UpdateDNS();
print("
*** "SERVER_NAME" ***");
print("----------------------------------");
printf("--- USERS:t%d", GetTotalUsers());
printf("--- OWN CARS:t%d", GetTotalVehicles());
printf("--- SONGS:t%d", GetTotalSongs());
printf("--- PROPERTIES:t%d (%d sold, %d free)", HOUSES_LOADED, HOUSES_SOLD, (HOUSES_LOADED - HOUSES_SOLD));
printf("--- CREWS:t%d", Total_Crews);
printf("--- MAPAS DM:t%d", Total_DM);
printf("--- MAPAS DI:t%d", TOTAL_DERBYS);
printf("--- MAPAS FI:t%d", TOTAL_FALLS);
printf("--- MAPAS TDM:t%d", TOTAL_TDM);
printf("--- MAPAS ST:t%d", TOTAL_SHOOTER);
printf("--- MAPAS RC:t%d", TOTAL_RACES);
print("----------------------------------
*** "VERSION_DATE" ***
");
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
TOTAL_PLAYERS += 1;
UpdateCountPlayersTextDraws();
if(IsPlayerNPC(playerid))
{
PI[playerid][P_BOT] = true;
Kick(playerid);
return 1;
}
GetPlayerIp(playerid, PI[playerid][P_IP], 16);
new num_players_on_ip = GetNumberOfPlayersOnThisIP(PI[playerid][P_IP]);
GetPlayerName(playerid, PI[playerid][P_NAME], MAX_PLAYER_NAME);
if(num_players_on_ip > 3)
{
PI[playerid][P_BOT] = true;
Kick(playerid);
return 1;
}
PI[playerid][P_CHATCOLOR] = 13421772; //CCCCCC
PI[playerid][P_CREW_SLOT] = -1;
EnablePlayerCameraTarget(playerid, true);
PI[playerid][P_STATUS] = S_CONNECTED;
PI[playerid][P_USER_CONNECTED_TICKCOUNT] = gettime();
//GameTextForPlayer(playerid, "~g~~h~~h~super~n~~y~~h~freeroam", 10000, 6);
CreatePlayerTextDraws(playerid);
RemovePlayerBuildings(playerid);
for(new i = 0; i != sizeof TD_WELCOME; i ++) TextDrawShowForPlayer(playerid, TD_WELCOME[i]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[3]);
PlayAudioStreamForPlayer(playerid, RandomMusic[random(sizeof(RandomMusic))][1]);
return 1;
}
/*public OnReverseDNS(ip[], host[], extra)
{
format(PI[extra][P_DNS], 45, "%s", host);
for(new i = 0; i != sizeof BANNED_DNS; i++)
{
if(!isnull(BANNED_DNS[i]))
{
if(strfind(PI[extra][P_DNS], BANNED_DNS[i], true) != -1)
{
PlayerTextDrawSetString(extra, PTD_SFR_KICKED[extra][1], "Has_sido_expulsado_del_servidor.");
PlayerTextDrawSetString(extra, PTD_SFR_KICKED[extra][2], "Razon:_~r~DNS baneada. Las proxies/VPN no estan permitidas.");
PlayerTextDrawSetString(extra, PTD_SFR_KICKED[extra][3], "Desactive el Proxy o VPN y vuelva a entrar.");
PlayerTextDrawShow(extra, PTD_SFR_KICKED[extra][0]);
PlayerTextDrawShow(extra, PTD_SFR_KICKED[extra][1]);
PlayerTextDrawShow(extra, PTD_SFR_KICKED[extra][2]);
PlayerTextDrawShow(extra, PTD_SFR_KICKED[extra][3]);
PlayerTextDrawShow(extra, PTD_SFR_KICKED[extra][4]);
PlayerPlaySoundEx(extra, 5203, 0.0, 0.0, 0.0);
PI[extra][P_TIMERS][4] = SetTimerEx("KickExPlayer", 500, false, "dd", extra, false);
new message[145]; format(message, 145, "{FF7A45}AVISO: El jugador %s ha sido expulsado por DNS prohibida.", PI[extra][P_NAME]);
SendMessageToAdmins(-1, message);
format(message, 145, "Jugador %s (%d) [%s] kickeado por DNS prohibida (%s) ", PI[extra][P_NAME], PI[extra][P_ID], PI[extra][P_IP], PI[extra][P_DNS]);
AntiCheatLog(message);
return 1;
}
}
}
return 1;
}
AddDNS(dns[])
{
new File:handle = fopen("SERVER/dns.txt", io_append);
if(handle)
{
new line[64]; format(line, 64, "%s
", dns);
fwrite(handle, line);
fclose(handle);
}
return 1;
}
UpdateDNS()
{
new File:Handler = fopen("SERVER/dns.txt", io_read);
if(!Handler) return 0;
new Total_DNS = 0;
for(new i = 0; i != sizeof BANNED_DNS; i++) format(BANNED_DNS[i], 45, "");
while(fread(Handler, Object_String))
{
StripNewLine(Object_String);
format(BANNED_DNS[Total_DNS], 45, "%s", Object_String);
Total_DNS ++;
}
fclose(Handler);
return 1;
}*/
stock GetNumberOfPlayersOnThisIP(test_ip[])
{
new against_ip[16], ip_count = 0;
for(new x = 0, j = GetPlayerPoolSize(); x <= j; x++)
{
if(IsPlayerConnected(x))
{
GetPlayerIp(x, against_ip, 16);
if(!strcmp(against_ip, test_ip)) ip_count++;
}
}
return ip_count;
}
public OnPlayerRequestClass(playerid, classid)
{
ApplyAnimation(playerid, "ON_LOOKERS", "shout_02", 4.1, true, true, true, true, 0); //alentar
if(PI[playerid][P_STATUS] != S_CONNECTED && PI[playerid][P_STATUS] != S_CLASS)
{
ExitPlayerGameMode(playerid);
PI[playerid][P_SELECT_MODE_PAGE] = 0;
TextDrawHideForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawHideForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawHideForPlayer(playerid, TD_SFR_HUD[2]);
TextDrawShowForPlayer(playerid, TD_SFR_WEB_INFO);
SetPlayerCameraPos(playerid, 0.0, -8.8383, 2500.0);
SetPlayerCameraLookAt(playerid, 0.0, 0.0, 2500.0);
SetPlayerPosEx(playerid, -1.00000, -0.96780, 2499.74292, 180.0);
SetPlayerTime(playerid, 18, 0);
SetPlayerWeather(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
Streamer_UpdateEx(playerid, -1.00000, -0.96780, 2499.74292);
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayerEx(playerid, RandomMusic[random(sizeof(RandomMusic))][1]);
SetPlayerSkin(playerid, PI[playerid][P_SAVED_SKIN]);
}
if(PI[playerid][P_STATUS] == S_CONNECTED)
{
for(new i = 0; i != sizeof TD_WELCOME; i ++) TextDrawHideForPlayer(playerid, TD_WELCOME[i]);
TextDrawShowForPlayer(playerid, TD_SFR_WEB_INFO);
//rdns(PI[playerid][P_IP], playerid);
ResetPlayerWeapons(playerid);
ResetPlayerMoney(playerid);
SendClientMessage(playerid, -1, "{CCCCCC}Bienvenido a {99CC00}Super Freeroam {CCCCCC}(versión {99CC00}"SERVER_VERSION"{CCCCCC})");
SendClientMessage(playerid, -1, "{CCCCCC}Fecha actualización: {B0E66A}"VERSION_DATE".");
new DBResult:Result;
format(DB_Query, sizeof(DB_Query), "SELECT PASS, BANNED, TEMPBAN FROM USERS WHERE NAME = '%s'", PI[playerid][P_NAME]);
Result = db_query(Database, DB_Query);
if(db_num_rows(Result))
{
PI[playerid][P_PASS] = db_get_field_int(Result, 0);
PI[playerid][P_BANNED] = db_get_field_int(Result, 1);
PI[playerid][P_TEMPBAN] = db_get_field_int(Result, 2);
if(PI[playerid][P_BANNED])
{
SendClientMessage(playerid, -1, "{CC0000}Esta cuenta está expulsada permanentemente.");
PI[playerid][P_TIMERS][4] = SetTimerEx("KickExPlayer", 500, false, "dd", playerid, false);
return 1;
}
if(PI[playerid][P_TEMPBAN] > 0)
{
if(gettime() >= PI[playerid][P_TEMPBAN])
{
SendClientMessage(playerid, -1, "{99CC00}Tu expulsión se ha levantado. Esperemos que no vuelva a suceder.");
PI[playerid][P_TEMPBAN] = 0;
}
else
{
SendClientMessage(playerid, -1, "{CC0000}Aún no se levantó tu expulsión.");
PI[playerid][P_TIMERS][4] = SetTimerEx("KickExPlayer", 500, false, "dd", playerid, false);
return 1;
}
}
PI[playerid][P_USEREXIT] = true;
ShowDialog(playerid, DIALOG_LOGIN);
}
else
{
PI[playerid][P_SAVED_SKIN] = classid;
SendClientMessageEx(-1, -1, "{B0E66A}%s {CCCCCC}ha entrado al servidor", PI[playerid][P_NAME]);
}
db_free_result(Result);
PI[playerid][P_COLOR] = RandomColors[random(sizeof RandomColors)];
SetPlayerCameraPos(playerid, 0.0, -8.8383, 2500.0);
SetPlayerCameraLookAt(playerid, 0.0, 0.0, 2500.0);
SetPlayerPosEx(playerid, -1.00000, -0.96780, 2499.74292, 180.0);
SetPlayerTime(playerid, 18, 0);
SetPlayerWeather(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
Streamer_UpdateEx(playerid, -1.00000, -0.96780, 2499.74292);
}
PI[playerid][P_STATUS] = S_CLASS;
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(PI[playerid][P_STATUS] == S_CONNECTED) return OnPlayerRequestClass(playerid, 0);
if(PI[playerid][P_USEREXIT] && !PI[playerid][P_LOGGED]) return 0;
if(PI[playerid][P_GAMEMODE] == M_NONE)
{
if(PI[playerid][P_SELECTING_ZOMBIE_TEAM]) return 0;
GameTextForPlayer(playerid, "_", 100, 6);
for(new i = 0; i != 6; i++) TextDrawShowForPlayer(playerid, TD_SFR_SELECTMODE[i]);
ShowSelectMode(playerid, PI[playerid][P_SELECT_MODE_PAGE]);
TextDrawShowForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawShowForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(PI[playerid][P_SELECTING_MODE_TD] != 2)
{
PI[playerid][P_SELECTING_MODE_TD] = true;
SelectTextDraw(playerid, 0x999999FF);
}
return 0;
}
return 0;
}
public OnPlayerSpawn(playerid)
{
if(!PI[playerid][P_USEREXIT]) SendClientMessage(playerid, -1, "{"ORANGE"}Recuerda que debes de estar registrado para guardar tu progreso, usa {"GREY"}/registrarse.");
if(PI[playerid][P_STATUS] == S_DEAD) SetPlayerInterior(playerid, 0);
if(PI[playerid][P_STATUS] == S_CLASS) SendClientMessage(playerid, -1, "{C6D855}Recuerda usar el comando {FFFC33}/modo {C6D855}para cambiar de modo.");
new iscoming = PI[playerid][P_STATUS];
PI[playerid][P_STATUS] = S_SPAWNED;
if(PI[playerid][P_JOINDERBY])
{
SetPlayerColor(playerid, PI[playerid][P_COLOR]);
JoinPlayerGameMode(playerid, GAME_DERBY);
return 1;
}
switch(PI[playerid][P_GAMEMODE])
{
case M_DUEL:
{
if(!DLI[PI[playerid][P_DUEL_ID]][DL_RUNNING]) SendClientMessage(playerid, -1, "{CCCCCC}Info: el duelo ha finalizado, para salir usa /salir.");
SetPlayerInterior(playerid, DUEL_LIST[ DLI[PI[playerid][P_DUEL_ID]][DL_DUEL_LIST_ID] ][DUEL_LIST_INTERIOR]);
return 1;
}
case M_FREEROAM:
{
if(PI[playerid][P_DESMADRE])
{
SetPlayerInterior(playerid, 1);
SetPlayerVirtualWorld(playerid, FREEROAM_VW);
}
if(PI[playerid][P_VIP]) SetPlayerArmour(playerid, 100.0);
return 1;
}
case M_DM:
{
SetPlayerVirtualWorld(playerid, DM_VW);
SetPlayerInterior(playerid, DM_INT);
for (new i = 0; i <= 12; i++) GivePlayerWeapon(playerid, DM_WEP[i][0], DM_WEP[i][1]);
SetPlayerTime(playerid, DM_TWEATHER[0], 0);
SetPlayerWeather(playerid, DM_TWEATHER[1]);
SetCameraBehindPlayer(playerid);
if(iscoming == S_CLASS)
{
if(DM_FREEZE)
{
TogglePlayerControllable(playerid, false);
PI[playerid][P_TIMERS][0] = SetTimerEx("UnfreezePlayer", 3000, false, "d", playerid);
}
}
return 1;
}
case M_TDM:
{
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, TDM_VW);
SetPlayerInterior(playerid, TDMI[T_INT]);
for (new i = 0; i <= 12; i++) GivePlayerWeapon(playerid, TDM_WEP[i][0], TDM_WEP[i][1]);
SetPlayerTime(playerid, TDMI[T_WEATHER][0], 0);
SetPlayerWeather(playerid, TDMI[T_WEATHER][1]);
if(iscoming == S_CLASS)
{
if(TDMI[T_FREEZE])
{
TogglePlayerControllable(playerid, false);
PI[playerid][P_TIMERS][0] = SetTimerEx("UnfreezePlayer", 3000, false, "d", playerid);
}
}
else
{
if(TDMI[T_FREEZE]) SetPlayerVelocity(playerid, 0.0, 0.0, 0.2);
}
return 1;
}
case M_SHOOTER:
{
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, SHOOTER_VW);
SetPlayerInterior(playerid, ST[S_INT]);
SetPlayerTime(playerid, ST[S_WEATHER][0], 0);
SetPlayerWeather(playerid, ST[S_WEATHER][1]);
if(iscoming == S_CLASS)
{
switch(ST[S_STATUS])
{
case SHOOTER_RUNNING:
{
PI[playerid][P_SHOOTER_STATUS] = PD_SPECTATE;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_SHOOTER)
{
if(PI[i][P_SHOOTER_STATUS] == PD_NORMAL)
{
PI[playerid][P_SHOOTER_SPECTATEPLAYER] = i;
break;
}
}
}
}
for(new x; x != sizeof TD_SHOOTER; x ++) TextDrawShowForPlayer(playerid, TD_SHOOTER[x]);
TogglePlayerSpectatingEx(playerid, true);
PlayerSpectateVehicle(playerid, PI[PI[playerid][P_SHOOTER_SPECTATEPLAYER]][P_SHOOTER_VEHICLEID]);
SendClientMessage(playerid, -1, "{"ORANGE"}Presiona la tecla {"GREY"}INTRO {"ORANGE"}para cambiar de jugador.");
}
case SHOOTER_WAIT:
{
if(IsValidVehicle(PI[playerid][P_SHOOTER_VEHICLEID]) && PI[playerid][P_SHOOTER_VEHICLEID] != INVALID_VEHICLE_ID)
{
DestroyVehicleEx(PI[playerid][P_SHOOTER_VEHICLEID]);
PI[playerid][P_SHOOTER_VEHICLEID] = INVALID_VEHICLE_ID;
}
PI[playerid][P_SHOOTER_VEHICLEID] = CreateVehicle(ST[S_VEH_MODELID], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][0], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][1], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][2], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][3], minrand(128, 255), minrand(128, 255), 99999);
SetVehicleVirtualWorld(PI[playerid][P_SHOOTER_VEHICLEID], SHOOTER_VW);
LinkVehicleToInterior(PI[playerid][P_SHOOTER_VEHICLEID], ST[S_INT]);
SetVehicleParamsEx(PI[playerid][P_SHOOTER_VEHICLEID], VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, 1, 0, 0, 0);
PutPlayerInVehicleEx(playerid, PI[playerid][P_SHOOTER_VEHICLEID], 0);
return 1;
}
}
}
else
{
if(ST[S_STATUS] == SHOOTER_RUNNING)
{
if(PI[playerid][P_SHOOTER_STATUS] == PD_SPECTATE)
{
TogglePlayerSpectatingEx(playerid, true);
PlayerSpectateVehicle(playerid, PI[PI[playerid][P_SHOOTER_SPECTATEPLAYER]][P_SHOOTER_VEHICLEID]);
}
else PlayerShooterDead(playerid);
}
else if(ST[S_STATUS] == SHOOTER_WAIT)
{
if(IsValidVehicle(PI[playerid][P_SHOOTER_VEHICLEID]) && PI[playerid][P_SHOOTER_VEHICLEID] != INVALID_VEHICLE_ID)
{
DestroyVehicleEx(PI[playerid][P_SHOOTER_VEHICLEID]);
PI[playerid][P_SHOOTER_VEHICLEID] = INVALID_VEHICLE_ID;
}
PI[playerid][P_SHOOTER_VEHICLEID] = CreateVehicle(ST[S_VEH_MODELID], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][0], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][1], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][2], ST_SPAWN_POSITIONS[ PI[playerid][P_SHOOTER_POSITION] ][3], minrand(128, 255), minrand(128, 255), 99999);
SetVehicleVirtualWorld(PI[playerid][P_SHOOTER_VEHICLEID], SHOOTER_VW);
LinkVehicleToInterior(PI[playerid][P_SHOOTER_VEHICLEID], ST[S_INT]);
SetVehicleParamsEx(PI[playerid][P_SHOOTER_VEHICLEID], VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, 1, 0, 0, 0);
PutPlayerInVehicleEx(playerid, PI[playerid][P_SHOOTER_VEHICLEID], 0);
return 1;
}
}
}
case M_RACE:
{
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, RACE_VW);
SetPlayerInterior(playerid, RC[R_INT]);
SetPlayerTime(playerid, RC[R_WEATHER][0], 0);
SetPlayerWeather(playerid, RC[R_WEATHER][1]);
if(iscoming == S_CLASS)
{
switch(RC[R_STATUS])
{
case RACE_RUNNING:
{
PI[playerid][P_RACE_STATUS] = PD_SPECTATE;
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_RACE)
{
if(PI[i][P_RACE_STATUS] == PD_NORMAL)
{
PI[playerid][P_RACE_SPECTATEPLAYER] = i;
break;
}
}
}
}
for(new x; x != sizeof TD_SHOOTER; x ++) TextDrawShowForPlayer(playerid, TD_RACE[x]);
TogglePlayerSpectatingEx(playerid, true);
PlayerSpectateVehicle(playerid, PI[PI[playerid][P_RACE_SPECTATEPLAYER]][P_RACE_VEHICLEID]);
SendClientMessage(playerid, -1, "{"ORANGE"}Presiona la tecla {"GREY"}INTRO {"ORANGE"}para cambiar de jugador.");
}
case RACE_WAIT:
{
if(IsValidVehicle(PI[playerid][P_RACE_VEHICLEID]) && PI[playerid][P_RACE_VEHICLEID] != INVALID_VEHICLE_ID)
{
DestroyVehicleEx(PI[playerid][P_RACE_VEHICLEID]);
PI[playerid][P_RACE_VEHICLEID] = INVALID_VEHICLE_ID;
}
PI[playerid][P_RACE_VEHICLEID] = CreateVehicle(RC[R_MODELID], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][0], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][1], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][2] + 0.5, RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][3], minrand(128, 255), minrand(128, 255), 99999);
SetVehicleVirtualWorld(PI[playerid][P_RACE_VEHICLEID], RACE_VW);
LinkVehicleToInterior(PI[playerid][P_RACE_VEHICLEID], RC[R_INT]);
SetVehicleParamsEx(PI[playerid][P_RACE_VEHICLEID], VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, 1, 0, 0, 0);
PutPlayerInVehicleEx(playerid, PI[playerid][P_RACE_VEHICLEID], 0);
for(new i = 0; i != sizeof TD_RACE_Collisions; i ++) TextDrawShowForPlayer(playerid, TD_RACE_Collisions[i]);
if(!PI[playerid][P_RACE_VOTED]) SelectTextDraw(playerid, 0x999999FF);
return 1;
}
}
}
else
{
if(RC[R_STATUS] == RACE_RUNNING)
{
if(PI[playerid][P_RACE_STATUS] == PD_SPECTATE)
{
TogglePlayerSpectatingEx(playerid, true);
PlayerSpectateVehicle(playerid, PI[PI[playerid][P_RACE_SPECTATEPLAYER]][P_RACE_VEHICLEID]);
}
else
{
if(IsValidVehicle(PI[playerid][P_RACE_VEHICLEID]) && PI[playerid][P_RACE_VEHICLEID] != INVALID_VEHICLE_ID)
{
DestroyVehicleEx(PI[playerid][P_RACE_VEHICLEID]);
PI[playerid][P_RACE_VEHICLEID] = INVALID_VEHICLE_ID;
}
new kkc = PI[playerid][P_RACE_CPCOUNT] - 1;
if(kkc < 0) kkc = 0;
PI[playerid][P_RACE_VEHICLEID] = CreateVehicle(RC[R_MODELID], RACE_CP[ kkc ][R_CP_POS][0], RACE_CP[ kkc ][R_CP_POS][1], RACE_CP[ kkc ][R_CP_POS][2] + 0.5, RC[R_ANGLE], minrand(128, 255), minrand(128, 255), 99999);
SetVehicleVirtualWorld(PI[playerid][P_RACE_VEHICLEID], RACE_VW);
LinkVehicleToInterior(PI[playerid][P_RACE_VEHICLEID], RC[R_INT]);
SetVehicleParamsEx(PI[playerid][P_RACE_VEHICLEID], VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_OFF, 1, 0, 0, 0);
PutPlayerInVehicleEx(playerid, PI[playerid][P_RACE_VEHICLEID], 0);
}
}
else if(RC[R_STATUS] == RACE_WAIT)
{
if(IsValidVehicle(PI[playerid][P_RACE_VEHICLEID]) && PI[playerid][P_RACE_VEHICLEID] != INVALID_VEHICLE_ID)
{
DestroyVehicleEx(PI[playerid][P_RACE_VEHICLEID]);
PI[playerid][P_RACE_VEHICLEID] = INVALID_VEHICLE_ID;
}
PI[playerid][P_RACE_VEHICLEID] = CreateVehicle(RC[R_MODELID], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][0], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][1], RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][2] + 0.5, RC_SPAWN_POSITIONS[ PI[playerid][P_RACE_POSITION] ][3], minrand(128, 255), minrand(128, 255), 99999);
SetVehicleVirtualWorld(PI[playerid][P_RACE_VEHICLEID], RACE_VW);
LinkVehicleToInterior(PI[playerid][P_RACE_VEHICLEID], RC[R_INT]);
SetVehicleParamsEx(PI[playerid][P_RACE_VEHICLEID], VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, 1, 0, 0, 0);
PutPlayerInVehicleEx(playerid, PI[playerid][P_RACE_VEHICLEID], 0);
for(new i = 0; i != sizeof TD_RACE_Collisions; i ++) TextDrawShowForPlayer(playerid, TD_RACE_Collisions[i]);
if(!PI[playerid][P_RACE_VOTED]) SelectTextDraw(playerid, 0x999999FF);
return 1;
}
}
}
case M_DERBY:
{
if(DI[D_STATUS] == DERBY_RUNNING)
{
if(PI[playerid][P_DERBY_STATUS] == PD_SPECTATE)
{
TogglePlayerSpectatingEx(playerid, true);
PlayerSpectateVehicle(playerid, PI[PI[playerid][P_DERBY_SPECTATEPLAYER]][P_DERBY_VEHICLEID]);
}
else PlayerDerbyDead(playerid);
}
else if(DI[D_STATUS] == DERBY_WAIT)
{
if(PI[playerid][P_DERBY_STATUS] == PD_NORMAL)
{
if(!IsValidVehicle(PI[playerid][P_DERBY_VEHICLEID]) && PI[playerid][P_DERBY_VEHICLEID] != INVALID_VEHICLE_ID) return SpawnDerbyCarForPlayer(playerid, DERBY_SPAWN[PI[playerid][P_DERBY_POSITION]][0], DERBY_SPAWN[PI[playerid][P_DERBY_POSITION]][1], DERBY_SPAWN[PI[playerid][P_DERBY_POSITION]][2]+2.0, DERBY_SPAWN[PI[playerid][P_DERBY_POSITION]][3], DI[D_VEHICLE]);
PutPlayerInVehicleEx(playerid, PI[playerid][P_DERBY_VEHICLEID], 0);
}
}
return 1;
}
case M_FALL:
{
if(FI[F_STATUS] == FALL_RUNNING)
{
if(PI[playerid][P_FALL_STATUS] == PD_DEAD)
{
TogglePlayerSpectatingEx(playerid, true);
InterpolateCameraPos(playerid, FI[F_DEAD_CAM][0], FI[F_DEAD_CAM][1], FI[F_DEAD_CAM][2], FI[F_DEAD_CAM][0], FI[F_DEAD_CAM][1], FI[F_DEAD_CAM][2], 500);
InterpolateCameraLookAt(playerid, FI[F_DEAD_CAM][3], FI[F_DEAD_CAM][4], FI[F_DEAD_CAM][5], FI[F_DEAD_CAM][3], FI[F_DEAD_CAM][4], FI[F_DEAD_CAM][5], 500);
}
else PlayerFallDead(playerid);
}
else if(FI[F_STATUS] == FALL_WAIT) TogglePlayerControllable(playerid, false);
return 1;
}
case M_ZOMBIE:
{
SetPlayerDrunkLevel(playerid, 0);
TextDrawHideForPlayer(playerid, TD_SFR_ZOMBIE_INFECTED);
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 0, 0, 0, 0, 0, true);
ClearAnimations(playerid);
if(PI[playerid][P_ZOMBIE_TEAM] == TEAM_HUMANS)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 5, 1);
GivePlayerWeapon(playerid, 24, minrand(50, 150));
return 1;
}
else if(PI[playerid][P_ZOMBIE_TEAM] == TEAM_ZOMBIE) SetPlayerSkin(playerid, ZombieSkins[PI[playerid][P_ZOMBIE_TEAM]][random(sizeof(ZombieSkins[]))]);
return 1;
}
case M_EVENT:
{
SetPlayerPosEx(playerid, EVENT_POS[0], EVENT_POS[1], EVENT_POS[2], EVENT_POS[3], EVENT_INT, EVENT_VIRUALWORLD, EVENT_FREEZE, false, EVENT_VEHICLE);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, EVENT_WEP[0], 500);
GivePlayerWeapon(playerid, EVENT_WEP[1], 500);
GivePlayerWeapon(playerid, EVENT_WEP[2], 500);
GivePlayerWeapon(playerid, EVENT_WEP[3], 500);
GivePlayerWeapon(playerid, EVENT_WEP[4], 500);
SetPlayerTime(playerid, EVENT_TIME, 0);
SetPlayerWeather(playerid, EVENT_WEATHER);
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
return 1;
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
TOTAL_PLAYERS -= 1;
UpdateCountPlayersTextDraws();
BlockIpAddress(PI[playerid][P_IP], 12000);
switch(reason)
{
case 0: SendClientMessageEx(-1, -1, "{B0E66A}%s {CCCCCC}ha salido del servidor (crash)", PI[playerid][P_NAME]);
case 1: SendClientMessageEx(-1, -1, "{B0E66A}%s {CCCCCC}ha salido del servidor", PI[playerid][P_NAME]);
case 2:
{
if(!PI[playerid][P_BOT]) SendClientMessageEx(-1, -1, "{B0E66A}%s {CCCCCC}ha salido del servidor (%s)", PI[playerid][P_NAME], ( PI[playerid][P_BANNED] == 1 ? ("baneado") : ("expulsado") ) );
}
}
if(PI[playerid][P_USEREXIT] && PI[playerid][P_LOGGED])
{
if(PI[playerid][P_VEHICLES] > 0)
{
for(new i = 0; i != MAX_VEHICLES_PER_PLAYER; i++)
{
if(PI[playerid][P_VEHICLES_VEH_ID][i] != 0)
{
UpdatePlayerVehicle(PI[playerid][P_VEHICLES_VEH_ID][i], true);
}
}
}
UpdateUserData(playerid, true);
}
DestroyPlayerTextDraws(playerid);
ResetPlayerVariables(playerid);
return 1;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW)
{
if(PI[playerid][P_SELECTING_MODE_TD] == 1)
{
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
return 1;
}
if(PI[playerid][P_SELECTING_ZOMBIE_TEAM])
{
for(new i = 0; i != sizeof TD_SFR_ZOMBIE_EDITION; i++) TextDrawHideForPlayer(playerid, TD_SFR_ZOMBIE_EDITION[i]);
PI[playerid][P_SELECTING_ZOMBIE_TEAM] = false;
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayerEx(playerid, RandomMusic[random(sizeof(RandomMusic))][1]);
SetPlayerCameraPos(playerid, -0.3055, -8.8383, 2500.1448);
SetPlayerCameraLookAt(playerid, -0.2982, -7.8397, 2500.0933);
SetPlayerPosEx(playerid, -1.00000, -0.96780, 2499.74292, 180.0);
SetPlayerTime(playerid, 18, 0);
SetPlayerWeather(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
Streamer_UpdateEx(playerid, -1.00000, -0.96780, 2499.74292);
return 1;
}
if(PI[playerid][P_SHOPCAR])
{
HidePlayerCarShop(playerid);
return 1;
}
if(PI[playerid][P_TUNING_MENU])
{
HidePlayerTuningMenu(playerid);
return 1;
}
}
else if( (clickedid == TD_SFR_SMODE_PAGE[0] || clickedid == TD_SFR_SMODE_PAGE[1]) && PI[playerid][P_SELECTING_MODE_TD] == 1)
{
for(new i = 6; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
if(PI[playerid][P_SELECT_MODE_PAGE]) PI[playerid][P_SELECT_MODE_PAGE] = 0;
else PI[playerid][P_SELECT_MODE_PAGE] = 1;
ShowSelectMode(playerid, PI[playerid][P_SELECT_MODE_PAGE]);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[6] && PI[playerid][P_SELECTING_MODE_TD] == 1) //FREEROAM
{
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
SetPlayerTeam(playerid, NO_TEAM);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
JoinPlayerGameMode(playerid, GAME_FREEROAM);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[8] && PI[playerid][P_SELECTING_MODE_TD] == 1) //GANG WARS
{
PI[playerid][P_SELECTING_MODE_TD] = 2;
CancelSelectTextDraw(playerid);
ShowDialog(playerid, DIALOG_SELECT_GANG_TEAM);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[10] && PI[playerid][P_SELECTING_MODE_TD] == 1) //DERBY
{
if(DI[D_PLAYERS] >= MAX_DERBY_PLAYERS) return SendClientMessage(playerid, -1, "{"ORANGE"}Este modo de juego está completo.");
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
SetPlayerTeam(playerid, NO_TEAM);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
PI[playerid][P_JOINDERBY] = true;
//JoinPlayerGameMode(playerid, GAME_DERBY);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[12] && PI[playerid][P_SELECTING_MODE_TD] == 1) //DM
{
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
SetPlayerTeam(playerid, NO_TEAM);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
JoinPlayerGameMode(playerid, GAME_DEATHMATCH);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[14] && PI[playerid][P_SELECTING_MODE_TD] == 1) //FALL
{
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
SetPlayerTeam(playerid, NO_TEAM);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
JoinPlayerGameMode(playerid, GAME_FALL);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[21] && PI[playerid][P_SELECTING_MODE_TD] == 1) //ZOMBIE
{
PI[playerid][P_SELECTING_MODE_TD] = false;
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
for(new i = 0; i != sizeof TD_SFR_ZOMBIE_EDITION; i++) TextDrawShowForPlayer(playerid, TD_SFR_ZOMBIE_EDITION[i]);
PI[playerid][P_SELECTING_ZOMBIE_TEAM] = true;
SelectTextDraw(playerid, 0x999999FF);
SetPlayerVirtualWorld(playerid, ZOMBIE_WORLD);
InterpolateCameraPos(playerid, 1815.3907, -1823.3296, 21.1186, 1803.9763, -1833.6660, 21.1186, 60000);
InterpolateCameraLookAt(playerid, 1816.0607, -1824.0693, 20.7836, 1804.6462, -1834.4058, 20.7836, 60000);
E_SetPlayerPosEx(playerid, 1841.4988, -1852.2080, 12.9706);
SetPlayerTime(playerid, ZOMBIE_TIME, 0);
SetPlayerWeather(playerid, ZOMBIE_WEATHER);
Streamer_UpdateEx(playerid, 1827.2300, -1839.1360, 12.2020);
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayerEx(playerid, ZombieMusic[random(sizeof(ZombieMusic))]);
SendClientMessage(playerid, -1, "{"ORANGE"}Presiona {"GREY"}ESCAPE {"ORANGE"}para volver a la selección de modos.");
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[25] && PI[playerid][P_SELECTING_MODE_TD] == 1) //TDM
{
PI[playerid][P_SELECTING_MODE_TD] = 2;
CancelSelectTextDraw(playerid);
ShowDialog(playerid, DIALOG_SELECT_TDM_TEAM);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[28] && PI[playerid][P_SELECTING_MODE_TD] == 1) // SHOOTER
{
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
JoinPlayerGameMode(playerid, GAME_SHOOTER);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_SELECTMODE[31] && PI[playerid][P_SELECTING_MODE_TD] == 1) // CARRERAS
{
if(PI[playerid][P_GAMEMODE] != M_NONE) ExitPlayerGameMode(playerid);
PI[playerid][P_SELECTING_MODE_TD] = false;
CancelSelectTextDraw(playerid);
for(new i = 0; i != sizeof TD_SFR_SELECTMODE; i++) TextDrawHideForPlayer(playerid, TD_SFR_SELECTMODE[i]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[0]);
TextDrawHideForPlayer(playerid, TD_SFR_SMODE_PAGE[1]);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
JoinPlayerGameMode(playerid, GAME_RACE);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_ZOMBIE_EDITION[2] && PI[playerid][P_SELECTING_ZOMBIE_TEAM]) //Humanos
{
if(ZI[Z_TEAM_PLAYERS][0] > ZI[Z_TEAM_PLAYERS][1] + 1) return SendClientMessage(playerid, -1, "{"ORANGE"}Por favor seleccione el equipo {"GREY"}ZOMBIE {"ORANGE"}para equilibrar los jugadores.");
for(new i = 0; i != sizeof TD_SFR_ZOMBIE_EDITION; i++) TextDrawHideForPlayer(playerid, TD_SFR_ZOMBIE_EDITION[i]);
PI[playerid][P_SELECTING_ZOMBIE_TEAM] = false;
CancelSelectTextDraw(playerid);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
PI[playerid][P_ZOMBIE_TEAM] = TEAM_HUMANS;
JoinPlayerGameMode(playerid, GAME_ZOMBIE);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_SFR_ZOMBIE_EDITION[3] && PI[playerid][P_SELECTING_ZOMBIE_TEAM]) //Zombies
{
if(ZI[Z_TEAM_PLAYERS][1] > ZI[Z_TEAM_PLAYERS][0] + 1) return SendClientMessage(playerid, -1, "{"ORANGE"}Por favor seleccione el equipo {"GREY"}HUMANOS {"ORANGE"}para equilibrar los jugadores.");
for(new i = 0; i != sizeof TD_SFR_ZOMBIE_EDITION; i++) TextDrawHideForPlayer(playerid, TD_SFR_ZOMBIE_EDITION[i]);
PI[playerid][P_SELECTING_ZOMBIE_TEAM] = false;
CancelSelectTextDraw(playerid);
if(!PI[playerid][P_IGNORE_SFRTD])
{
TextDrawShowForPlayer(playerid, TD_SFR_HUD[0]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[1]);
TextDrawShowForPlayer(playerid, TD_SFR_HUD[2]);
}
TextDrawHideForPlayer(playerid, TD_SFR_WEB_INFO);
PI[playerid][P_ZOMBIE_TEAM] = TEAM_ZOMBIE;
JoinPlayerGameMode(playerid, GAME_ZOMBIE);
StopAudioStreamForPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
else if(clickedid == TD_RACE_Collisions[0])
{
if(PI[playerid][P_GAMEMODE] == M_RACE && RC[R_STATUS] == RACE_WAIT)
{
if(PI[playerid][P_RACE_VOTED]) return SendClientMessage(playerid, -1, "{CCCCCC}Error: ya has votado.");
RC[R_COLLISION_VOTES][0] ++;
new str[45]; format(str, sizeof str, "Con_contacto:_%d~n~Sin_contacto:_%d~n~_", RC[R_COLLISION_VOTES][0], RC[R_COLLISION_VOTES][1]);
TextDrawSetString(TD_RACE_Collisions[3], str);
CancelSelectTextDraw(playerid);
PI[playerid][P_RACE_VOTED] = true;
return 1;
}
}
else if(clickedid == TD_RACE_Collisions[1])
{
if(PI[playerid][P_GAMEMODE] == M_RACE && RC[R_STATUS] == RACE_WAIT)
{
if(PI[playerid][P_RACE_VOTED]) return SendClientMessage(playerid, -1, "{CCCCCC}Error: ya has votado.");
RC[R_COLLISION_VOTES][1] ++;
new str[45]; format(str, sizeof str, "Con_contacto:_%d~n~Sin_contacto:_%d~n~_", RC[R_COLLISION_VOTES][0], RC[R_COLLISION_VOTES][1]);
TextDrawSetString(TD_RACE_Collisions[3], str);
CancelSelectTextDraw(playerid);
PI[playerid][P_RACE_VOTED] = true;
return 1;
}
}
else if(clickedid == TD_CarShop[2]) //COMPRAR
{
if(!PI[playerid][P_USEREXIT]) return SendClientMessage(playerid, -1, "{"GREY"}Debes estar registrado para comprar un vehículo.");
if(PI[playerid][P_VIP]) { if(PI[playerid][P_VEHICLES] >= MAX_VEHICLES_PER_PLAYER) return SendClientMessage(playerid, -1, "{"GREY"}No puedes comprar más vehículos."); }
else { if(PI[playerid][P_VEHICLES] >= MAX_VEHICLES_PER_NORMAL_PLAYER) return SendClientMessage(playerid, -1, "{"GREY"}No puedes comprar más vehículos. {FFCC00}(/vipinfo)"); }
if(PI[playerid][P_MONEY] >= VehiclesConce[PI[playerid][P_SHOPCARINDEX]][1] && PI[playerid][P_SCORE] >= VehiclesConce[PI[playerid][P_SHOPCARINDEX]][2])
{
GivePlayerMoneyEx(playerid, -VehiclesConce[PI[playerid][P_SHOPCARINDEX]][1]);
GivePlayerScoreEx(playerid, -VehiclesConce[PI[playerid][P_SHOPCARINDEX]][2]);
GameTextForPlayer(playerid, "~g~~h~vehiculo_comprado", 5000, 1);
PlayerPlaySoundEx(playerid, 1149, 0.0, 0.0, 0.0);
NewPersonalCar(playerid, VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0], minrand(128, 255), minrand(128, 255));
UpdateUserData(playerid);
HidePlayerCarShop(playerid);
SendClientMessageEx(playerid, -1, "{"ORANGE"}Felicidades! Has comprado un {C6D855}%s. {"ORANGE"}Usa {C6D855}/vv {"ORANGE"}para usar tu vehículo.", VehicleNames[ VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0] - 400]);
}
else
{
SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero o score para comprar esta casa.");
SendClientMessage(playerid, -1, "{"GREY"}Para ganar dinero/score más rápido prueba a jugar en juegos (/m)");
}
return 1;
}
else if(clickedid == TD_CarShop[3]) //>>
{
PlayerPlaySoundEx(playerid, 1054, 0.0, 0.0, 0.0);
if(PI[playerid][P_SHOPCARINDEX] == sizeof(VehiclesConce)-1) PI[playerid][P_SHOPCARINDEX] = 0;
else PI[playerid][P_SHOPCARINDEX] += 1;
PlayerTextDrawSetPreviewModel(playerid, PTD_CarShop[playerid][0], VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0]);
new str[128]; format(str, 128, "%d$~n~%d_Score", VehiclesConce[PI[playerid][P_SHOPCARINDEX]][1], VehiclesConce[PI[playerid][P_SHOPCARINDEX]][2]);
PlayerTextDrawSetString(playerid, PTD_CarShop[playerid][1], str);
PlayerTextDrawSetString(playerid, PTD_CarShop[playerid][2], VehicleNames[ VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0] - 400]);
PlayerTextDrawShow(playerid, PTD_CarShop[playerid][0]);
return 1;
}
else if(clickedid == TD_CarShop[4]) //<<
{
PlayerPlaySoundEx(playerid, 1054, 0.0, 0.0, 0.0);
if(PI[playerid][P_SHOPCARINDEX] == 0) PI[playerid][P_SHOPCARINDEX] = sizeof(VehiclesConce)-1;
else PI[playerid][P_SHOPCARINDEX] -= 1;
PlayerTextDrawSetPreviewModel(playerid, PTD_CarShop[playerid][0], VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0]);
new str[128]; format(str, 128, "%d$~n~%d_Score", VehiclesConce[PI[playerid][P_SHOPCARINDEX]][1], VehiclesConce[PI[playerid][P_SHOPCARINDEX]][2]);
PlayerTextDrawSetString(playerid, PTD_CarShop[playerid][1], str);
PlayerTextDrawSetString(playerid, PTD_CarShop[playerid][2], VehicleNames[ VehiclesConce[PI[playerid][P_SHOPCARINDEX]][0] - 400]);
PlayerTextDrawShow(playerid, PTD_CarShop[playerid][0]);
return 1;
}
return 1;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == PTD_SFR_TUNING[playerid][0])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
if(PI[playerid][P_TUNING_PAGE] == TUNING_NEONS) return 1;
PI[playerid][P_TUNING_PAGE] = TUNING_NEONS;
UpdatePlayerTuningMenu(playerid);
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][1])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
if(PI[playerid][P_TUNING_PAGE] == TUNING_LIGHT) return 1;
PI[playerid][P_TUNING_PAGE] = TUNING_LIGHT;
UpdatePlayerTuningMenu(playerid);
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][2])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
SendClientMessage(playerid, -1, "{"GREY"}Aún no disponible, puedes usar el comando {C6D855}/vcol {"GREY"}de mientras.");
/*if(PI[playerid][P_TUNING_PAGE] == TUNING_PAINT) return 1;
PI[playerid][P_TUNING_PAGE] = TUNING_PAINT;
UpdatePlayerTuningMenu(playerid);*/
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][3])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
HidePlayerTuningMenu(playerid);
ShowDialog(playerid, DIALOG_PLATE);
/*if(PI[playerid][P_TUNING_PAGE] == TUNING_PLATE) return 1;
PI[playerid][P_TUNING_PAGE] = TUNING_PLATE;
UpdatePlayerTuningMenu(playerid);*/
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][6])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
SetVehicleNeonLights(vid, false);
VI[vid][V_NEON] = 0;
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neones eliminados de este vehículo.");
return 1;
}
case TUNING_LIGHT:
{
if(!VI[vid][V_VALID]) return SendClientMessage(playerid, -1, "{CCCCCC}Solo vehículos personales.");
if(IsValidDynamicObject(VEHICLE_SIREN[vid]))
{
DestroyDynamicObject(VEHICLE_SIREN[vid]);
VEHICLE_SIREN[vid] = INVALID_OBJECT_ID;
}
if(VI[vid][V_VALID])
{
new slot = -1;
for(new i = 0; i != MAX_VEHICLES_PER_PLAYER; i ++)
{
if(PI[playerid][P_VEHICLES_VEH_ID][i] == vid)
{
slot = i;
break;
}
}
if(slot == -1)
{
SendClientMessage(playerid, -1, "Un error ocurrió");
return 1;
}
VI[vid][V_SIREN] = false;
HousePlayerVehicle(playerid, slot);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Sirena eliminada de este vehículo, vuelva a sacarlo con /vv.");
}
/*else
{
new Float:pos[4], modelid = GetVehicleModel(vid);
GetVehiclePos(vid, pos[0], pos[1], pos[2]);
GetVehicleZAngle(vid, pos[3]);
DestroyVehicleEx(vid);
new index = CreateVehicle(modelid, pos[0], pos[1], pos[2], pos[3], minrand(128, 255), minrand(128, 255), FR_VEHICLES_RESPAWN_TIME, false);
PutPlayerInVehicleEx(playerid, index, 0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Sirena eliminada de este vehículo.");
}*/
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][8])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid))) return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, RED_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = RED_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon rojo añadido a este vehículo.");
return 1;
}
case TUNING_LIGHT:
{
if(!VI[vid][V_VALID]) return SendClientMessage(playerid, -1, "{CCCCCC}Solo vehículos personales.");
if(PI[playerid][P_GAMEMODE] != M_FREEROAM) return HidePlayerTuningMenu(playerid);
if(var_siren[GetVehicleModel(vid) - 400][2] == 0.0) return SendClientMessage(playerid, -1, "{"GREY"}No se puede añadir la sirena a este vehículo.");
if(PI[playerid][P_MONEY] < 3000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -3000);
if(VI[vid][V_VALID])
{
new slot = -1;
for(new i = 0; i != MAX_VEHICLES_PER_PLAYER; i ++)
{
if(PI[playerid][P_VEHICLES_VEH_ID][i] == vid)
{
slot = i;
break;
}
}
if(slot == -1)
{
GivePlayerMoneyEx(playerid, 3000);
SendClientMessage(playerid, -1, "Un error ocurrió");
return 1;
}
VI[vid][V_SIREN] = true;
HousePlayerVehicle(playerid, slot);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Sirena añadida a este vehículo, usa /vv para usar el vehículo con sirena.");
}
/*else
{
new Float:pos[4], modelid = GetVehicleModel(vid);
GetVehiclePos(vid, pos[0], pos[1], pos[2]);
GetVehicleZAngle(vid, pos[3]);
DestroyVehicleEx(vid);
new index = CreateVehicle(modelid, pos[0], pos[1], pos[2], pos[3], minrand(128, 255), minrand(128, 255), FR_VEHICLES_RESPAWN_TIME, true);
if(IsValidDynamicObject(VEHICLE_SIREN[index])) DestroyDynamicObject(VEHICLE_SIREN[index]);
VEHICLE_SIREN[index] = CreateDynamicObject(19420, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachDynamicObjectToVehicle(VEHICLE_SIREN[index], index, var_siren[modelid - 400][0], var_siren[modelid - 400][1], var_siren[modelid - 400][2], 0.0, 0.0, 0.0);
Streamer_Update(playerid);
PutPlayerInVehicleEx(playerid, index, 0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Sirena añadida a este vehículo.");
}*/
HidePlayerTuningMenu(playerid);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][10])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid))) return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, BLUE_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = BLUE_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon azul añadido a este vehículo.");
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][12])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid)))return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, GREEN_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = GREEN_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon verde añadido a este vehículo.");
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][14])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid))) return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, YELLOW_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = YELLOW_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon amarillo añadido a este vehículo.");
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][16])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid))) return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, PINK_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = PINK_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon rosa añadido a este vehículo.");
return 1;
}
}
return 1;
}
else if(playertextid == PTD_SFR_TUNING[playerid][18])
{
if(!PI[playerid][P_VIP]) return HidePlayerTuningMenu(playerid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HidePlayerTuningMenu(playerid);
new vid = GetPlayerVehicleID(playerid);
if(VI[vid][V_VALID])
{
if(VI[vid][V_OWNERID] != PI[playerid][P_ID]) return SendClientMessage(playerid, -1, "{"GREY"}Este vehículo no te pertenece.");
}
switch(PI[playerid][P_TUNING_PAGE])
{
case TUNING_NEONS:
{
if(!VehicleSupportsNeonLights(GetVehicleModel(vid))) return SendClientMessage(playerid, -1, "{"GREY"}No se pueden añadir neones a este vehículo.");
if(PI[playerid][P_MONEY] < 5000) return SendClientMessage(playerid, -1, "{"GREY"}No tienes suficiente dinero.");
GivePlayerMoneyEx(playerid, -5000);
SetVehicleNeonLights(vid, true, WHITE_NEON);
if(VI[vid][V_VALID]) VI[vid][V_NEON] = WHITE_NEON;
SetVehicleVelocity(vid, 0.0, 0.0, 0.1);
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid, -1, "{"ORANGE"}INFO: {C6D855}Neon blanco añadido a este vehículo.");
return 1;
}
}
return 1;
}
return 1;
}
forward Float:GetVehicleSpeed(vehicleid);
public Float:GetVehicleSpeed(vehicleid)
{
new Float:vx, Float:vy, Float:vz;
GetVehicleVelocity(vehicleid, vx, vy, vz);
new Float:vel = floatmul(floatsqroot(floatadd(floatadd(floatpower(vx, 2), floatpower(vy, 2)), floatpower(vz, 2))), 181.5);
return vel;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SECONDARY_ATTACK)
{
if(PI[playerid][P_GAMEMODE] == M_GANGWAR)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, 2495.439697, -1690.764648, 14.765625) && GetPlayerTeam(playerid) == TEAM_GROVE && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 2496.089111, -1692.420776, 1014.742187, 180.0, 3, GANGWAR_VW);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2496.089111, -1692.420776, 1014.742187) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 2495.439697, -1690.764648, 14.765625, 0.0, 0, GANGWAR_VW);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2637.048095, -1991.733276, 14.324020) && GetPlayerTeam(playerid) == TEAM_BALLAS && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 2468.781982, -1698.151123, 1013.507812, 90.0, 2, GANGWAR_VW);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2468.781982, -1698.151123, 1013.507812) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 2637.048095, -1991.733276, 14.324020, 220.0, 0, GANGWAR_VW);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 1555.178833, -1675.459838, 16.195312) && GetPlayerTeam(playerid) == TEAM_POLICE && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 246.982345, 62.742130, 1003.640625, 0.0, 6, GANGWAR_VW);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 246.982345, 62.742130, 1003.640625) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPosEx(playerid, 1555.178833, -1675.459838, 16.195312, 90.0, 0, GANGWAR_VW);
return 1;
}
}
else if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
for(new i = 0; i != HOUSES_LOADED; i++)
{
if(HI[i][H_VALID] && HI[i][H_SOLD])
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, HI[i][H_extPos][0], HI[i][H_extPos][1], HI[i][H_extPos][2]) && GetPlayerVirtualWorld(playerid) == FREEROAM_VW)
{
if(HI[i][H_OWNERID] == PI[playerid][P_ID] || HI[i][H_OPENED])
{
E_SetPlayerPosEx(playerid, HI[i][H_intPos][0], HI[i][H_intPos][1], HI[i][H_intPos][2]);
SetPlayerFacingAngle(playerid, HI[i][H_intPos][3]);
SetPlayerInterior(playerid, HI[i][H_INTERIOR]);
SetPlayerVirtualWorld(playerid, HI[i][H_ID]);
if(HI[i][H_FREEZE])
{
TogglePlayerControllable(playerid, false);
PI[playerid][P_TIMERS][0] = SetTimerEx("UnfreezePlayer", 3000, false, "d", playerid);
}
SetCameraBehindPlayer(playerid);
}
else GameTextForPlayer(playerid, "~r~~h~propiedad_cerrada", 2000, 1);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, HI[i][H_intPos][0], HI[i][H_intPos][1], HI[i][H_intPos][2]) && GetPlayerVirtualWorld(playerid) == HI[i][H_ID])
{
SetPlayerPosEx(playerid, HI[i][H_extPos][0], HI[i][H_extPos][1], HI[i][H_extPos][2], HI[i][H_extPos][3], 0, FREEROAM_VW, false, false);
SetCameraBehindPlayer(playerid);
return 1;
}
}
}
return 1;
}
else if(PI[playerid][P_GAMEMODE] == M_DERBY)
{
if(PI[playerid][P_DERBY_STATUS] == PD_SPECTATE)
{
PI[playerid][P_STATUS] = S_SPAWNED;
new old = PI[playerid][P_DERBY_SPECTATEPLAYER];
for(new i = PI[playerid][P_DERBY_SPECTATEPLAYER], j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_DERBY)
{
if(PI[i][P_DERBY_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_DERBY_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_DERBY_VEHICLEID]);
PI[playerid][P_DERBY_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_DERBY_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_DERBY_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
if(PI[playerid][P_DERBY_SPECTATEPLAYER] == old)
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_DERBY)
{
if(PI[i][P_DERBY_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_DERBY_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_DERBY_VEHICLEID]);
PI[playerid][P_DERBY_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_DERBY_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_DERBY_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
}
return 1;
}
}
else if(PI[playerid][P_GAMEMODE] == M_SHOOTER)
{
if(PI[playerid][P_SHOOTER_STATUS] == PD_SPECTATE)
{
PI[playerid][P_STATUS] = S_SPAWNED;
new old = PI[playerid][P_SHOOTER_SPECTATEPLAYER];
for(new i = PI[playerid][P_SHOOTER_SPECTATEPLAYER], j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_SHOOTER)
{
if(PI[i][P_SHOOTER_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_SHOOTER_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_SHOOTER_VEHICLEID]);
PI[playerid][P_SHOOTER_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_SHOOTER_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_SHOOTER_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
if(PI[playerid][P_SHOOTER_SPECTATEPLAYER] == old)
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_SHOOTER)
{
if(PI[i][P_SHOOTER_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_SHOOTER_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_SHOOTER_VEHICLEID]);
PI[playerid][P_SHOOTER_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_SHOOTER_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_SHOOTER_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
}
return 1;
}
}
else if(PI[playerid][P_GAMEMODE] == M_RACE)
{
if(PI[playerid][P_RACE_STATUS] == PD_SPECTATE)
{
PI[playerid][P_STATUS] = S_SPAWNED;
new old = PI[playerid][P_RACE_SPECTATEPLAYER];
for(new i = PI[playerid][P_RACE_SPECTATEPLAYER], j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_RACE)
{
if(PI[i][P_RACE_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_RACE_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_RACE_VEHICLEID]);
PI[playerid][P_RACE_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_RACE_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_RACE_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
if(PI[playerid][P_RACE_SPECTATEPLAYER] == old)
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(PI[i][P_GAMEMODE] == M_RACE)
{
if(PI[i][P_RACE_STATUS] == PD_NORMAL)
{
if(PI[playerid][P_RACE_SPECTATEPLAYER] != i)
{
PlayerSpectateVehicle(playerid, PI[i][P_RACE_VEHICLEID]);
PI[playerid][P_RACE_SPECTATEPLAYER] = i;
new str[70]; format(str, 70, "_~n~_~n~_~n~_~n~~y~-_~g~~h~%s_~b~~h~%d_~y~-~n~_", PI[ PI[playerid][P_RACE_SPECTATEPLAYER] ][P_NAME], PI[playerid][P_RACE_SPECTATEPLAYER]);
GameTextForPlayer(playerid, str, 3000, 3);
return 1;
}
}
}
}
}
}
return 1;
}
}
return 1;
}
else if(newkeys & KEY_FIRE)
{
switch(PI[playerid][P_GAMEMODE])
{
case M_FREEROAM:
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(!PI[playerid][P_GODMODE]) return 1;
AddVehicleComponent(GetPlayerVehicleID(playerid), 1009);
new Float:vx, Float:vy, Float:vz;
GetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz);
SetVehicleVelocity(GetPlayerVehicleID(playerid), vx * 1.2, vy * 1.2, vz * 1.2);
return 1;
}
return 1;
}
case M_DERBY:
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && PI[playerid][P_VIP])
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1009);
return 1;
}
}
case M_SHOOTER:
{
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && ST[S_STATUS] == SHOOTER_RUNNING && ST[S_FIREWORKS])
{
if(gettime() < PI[playerid][P_SHOOTER_FIRETIME] + 3) return 1;
PI[playerid][P_SHOOTER_FIRETIME] = gettime();
new Float:pos[6], Float:m_pos[6], Float:v_pos[7], vehicleid = GetPlayerVehicleID(playerid), Float:distance = 120.0, Float:speed = distance + 30.0;
GetVehiclePos(vehicleid, v_pos[0], v_pos[1], v_pos[2]);
GetVehicleRotation(vehicleid, v_pos[3], v_pos[4], v_pos[5]);
GetVehicleZAngle(vehicleid, v_pos[6]);
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i) && PI[i][P_GAMEMODE] == M_SHOOTER)
{
if(i == playerid) continue;
new Float:vel = GetVehicleSpeed(PI[i][P_SHOOTER_VEHICLEID]);
if(IsPlayerInRangeOfPoint(i, distance, v_pos[0], v_pos[1], v_pos[2]) && vel <= 5.0)
{
new Float:tmpx, Float:tmpy, Float:tmpz, Float:tmpang;
GetPlayerPos(i, tmpx, tmpy, tmpz);
tmpang = (90 - atan2(tmpy - v_pos[1], tmpx - v_pos[0]) );
if(tmpang < 0) tmpang = 360.0 + tmpang;
tmpang = 360.0 - tmpang;
if(floatabs(tmpang - v_pos[6]) < 5.0)
{
distance = GetPlayerDistanceFromPoint(i, v_pos[0], v_pos[1], v_pos[2]);
}
}
}
}
conversion(v_pos[0], v_pos[1], v_pos[2], v_pos[3], v_pos[4], v_pos[5], 0.0, 3.5, -0.4, 0.0, 0.0, 0.0, pos[0], pos[1], pos[2], pos[3], pos[4], pos[5]);
conversion(pos[0], pos[1], pos[2], pos[3], pos[4], pos[5], 0.0, distance, 0.2, 0.0, 0.0, 0.0, m_pos[0], m_pos[1], m_pos[2], m_pos[3], m_pos[4], m_pos[5]);
new id = CreateDynamicObject(345, pos[0], pos[1], pos[2], pos[3], pos[4], pos[5], SHOOTER_VW);
new areaid = CreateDynamicSphere(0.0, 0.0, 0.0, 5.5, SHOOTER_VW);
AttachDynamicAreaToObject(areaid, id);
new ob_info[2]; ob_info[0] = true; ob_info[1] = areaid;
new area_info[3]; area_info[0] = true; area_info[1] = id; area_info[2] = playerid;
Streamer_SetArrayData(STREAMER_TYPE_OBJECT, id, E_STREAMER_EXTRA_ID, ob_info, 2);
Streamer_SetArrayData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, area_info, 3);
MoveDynamicObject(id, m_pos[0], m_pos[1], m_pos[2], speed);
Streamer_Update(playerid);
return 1;
}
}
}
return 1;
}
else if(newkeys & KEY_ACTION)
{
if(PI[playerid][P_GAMEMODE] == M_SHOOTER && ST[S_STATUS] == SHOOTER_RUNNING)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(gettime() < PI[playerid][P_SHOOTER_JUMP] + 2) return 1;
PI[playerid][P_SHOOTER_JUMP] = gettime();
new Float:x, Float:y, Float:z;
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z + 0.3);
return 1;
}
return 1;
}
}
else if(newkeys & KEY_YES)
{
if(PI[playerid][P_EVENT_POSGET])
{
PI[playerid][P_EVENT_POSGET] = false;
if(EVENT_STATUS == EVENT_RUNNING) return SendClientMessage(playerid, -1, "{"ORANGE"}El evento ya fue activado.");
GetPlayerPos(playerid, EVENT_POS[0], EVENT_POS[1], EVENT_POS[2]);
GetPlayerFacingAngle(playerid, EVENT_POS[3]);
EVENT_INT = GetPlayerInterior(playerid);
EVENT_VIRUALWORLD = GetPlayerVirtualWorld(playerid);
ShowDialog(playerid, DIALOG_EVENT);
return 1;
}
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(!PI[playerid][P_GODMODE]) return 1;
new Float:x, Float:y, Float:z;
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z + 0.25);
return 1;
}
return 1;
}
return 1;
}
else if(newkeys & KEY_CROUCH)
{
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(!PI[playerid][P_GODMODE]) return 1;
new Float:angle;
GetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
SetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
SetVehicleAngularVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0);
return 1;
}
return 1;
}
return 1;
}
else if(newkeys & KEY_SUBMISSION)
{
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && PI[playerid][P_VIP] && !PI[playerid][P_GODMODE])
{
RepairVehicle(GetPlayerVehicleID(playerid));
PlayerPlaySoundEx(playerid, 1133, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~_~n~_~n~_~n~~p~~h~vehiculo reparado!", 2000, 6);
return 1;
}
return 1;
}
return 1;
}
if(PRESSED(KEY_WALK))
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE && PI[playerid][P_ZOMBIE_TEAM] == TEAM_ZOMBIE && PI[playerid][P_STATUS] == S_SPAWNED)
{
ApplyAnimation(playerid, "ped", "WALK_old", 4.1, 1, 1, 1, 1, 1, true);
return 1;
}
}
else if(PRESSED(KEY_SPRINT))
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE && PI[playerid][P_ZOMBIE_TEAM] == TEAM_ZOMBIE && PI[playerid][P_STATUS] == S_SPAWNED)
{
ApplyAnimation(playerid, "MUSCULAR", "MuscleSprint", 4.1, 1, 1, 1, 1, 1, true);
return 1;
}
}
if(RELEASED(KEY_WALK) || RELEASED(KEY_SPRINT))
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE && PI[playerid][P_ZOMBIE_TEAM] == TEAM_ZOMBIE && PI[playerid][P_STATUS] == S_SPAWNED)
{
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 0, 0, 0, 0, 0, true);
return 1;
}
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(PI[playerid][P_STATUS] == S_SPAWNED || PI[playerid][P_STATUS] == S_DEAD)
{
if(GetPlayerPing(playerid) >= MAX_PING)
{
new message[145]; format(message, 145, "{FF7A45}AVISO: El jugador %s ha sido expulsado por ping alto (+%d).", PI[playerid][P_NAME], MAX_PING);
SendMessageToAdmins(-1, message);
new log[145]; format(log, 145, "Jugador %s (%d) [%s] kickeado por ping alto +%d ", PI[playerid][P_NAME], PI[playerid][P_ID], PI[playerid][P_IP], MAX_PING);
AntiCheatLog(log);
FuckPlayer(playerid, "Ping muy alto (mas de 750)");
return 1;
}
}
TextDrawHideForPlayer(playerid, TD_MUSIC_YT[0]);
TextDrawHideForPlayer(playerid, TD_MUSIC_YT[1]);
PI[playerid][P_ANTICARTROLL_TIME] += 221;
if(PI[playerid][P_GODMODE]) DeactivePlayerGodMode(playerid);
switch(PI[playerid][P_GAMEMODE])
{
case M_DUEL:
{
new duel_id = PI[playerid][P_DUEL_ID];
if(DLI[duel_id][DL_RUNNING])
{
new winner;
if(DLI[duel_id][DL_PLAYER_ONE] == playerid) winner = DLI[duel_id][DL_PLAYER_TWO];
else winner = DLI[duel_id][DL_PLAYER_ONE];
FinishDuel(duel_id, winner, playerid);
SendClientMessage(winner, -1, "{CCCCCC}Info: el duelo ha finalizado, para salir usa /salir.");
}
return 1;
}
case M_FREEROAM:
{
if(PI[playerid][P_DESMADRE])
{
new r = random(sizeof(Random_Desmadre_Spawn));
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), Random_Desmadre_Spawn[r][0], Random_Desmadre_Spawn[r][1], Random_Desmadre_Spawn[r][2], Random_Desmadre_Spawn[r][3], 24, 9999999999, 25, 9999999999, 34, 9999999999);
}
else
{
new Float:distance;
new respawnID;
distance = GetPlayerDistanceFromPoint(playerid, PlayerSpawnPosition_FR_LV[0][0], PlayerSpawnPosition_FR_LV[0][1], PlayerSpawnPosition_FR_LV[0][2]);
respawnID = 0;
for(new i = 0; i < sizeof(PlayerSpawnPosition_FR_LV); ++i)
{
new Float:tempDistance = GetPlayerDistanceFromPoint(playerid, PlayerSpawnPosition_FR_LV[i][0], PlayerSpawnPosition_FR_LV[i][1], PlayerSpawnPosition_FR_LV[i][2]);
if(tempDistance < distance)
{
distance = tempDistance;
respawnID = i;
}
}
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), PlayerSpawnPosition_FR_LV[respawnID][0], PlayerSpawnPosition_FR_LV[respawnID][1], PlayerSpawnPosition_FR_LV[respawnID][2], PlayerSpawnPosition_FR_LV[respawnID][3], 0, 0, 0, 0, 0, 0);
}
}
case M_GANGWAR:
{
SetPlayerColor(playerid, TEAM_COLORS[GetPlayerTeam(playerid)]);
new r = random(sizeof(TEAM_SPAWNS[]));
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), TEAM_SPAWNS[GetPlayerTeam(playerid)][r][0], TEAM_SPAWNS[GetPlayerTeam(playerid)][r][1], TEAM_SPAWNS[GetPlayerTeam(playerid)][r][2], TEAM_SPAWNS[GetPlayerTeam(playerid)][r][3], TEAM_WEAPONS[GetPlayerTeam(playerid)][0], 500, TEAM_WEAPONS[GetPlayerTeam(playerid)][1], 500, TEAM_WEAPONS[GetPlayerTeam(playerid)][2], 500);
}
case M_DM:
{
new index = random(sizeof(DM_SP));
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), DM_SP[index][0], DM_SP[index][1], DM_SP[index][2], DM_SP[index][3], 0, 0, 0, 0, 0, 0);
}
case M_TDM:
{
new index = random(sizeof(TDM_SP[])), team = GetPlayerTeam(playerid);
SetSpawnInfo(playerid, team, GetPlayerSkin(playerid), TDM_SP[team][index][0], TDM_SP[team][index][1], TDM_SP[team][index][2], TDM_SP[team][index][3], 0, 0, 0, 0, 0, 0);
if(IsPlayerConnected(killerid))
{
if(PI[killerid][P_GAMEMODE] == M_TDM)
{
new teamKiller = GetPlayerTeam(killerid);
TDMI[T_COUNTER][ teamKiller ] ++;
if(TDMI[T_COUNTER][ teamKiller ] == TDMI[T_OBJECTIVE])
{
givePrize(M_TDM, teamKiller, 750 * TDMI[T_PLAYERS], 5);
new str[45]; format(str, 45, "equipo_%d_gana", teamKiller + 1);
TextDrawSetString(TD_TDM[15], str);
KillTimer(TDMI[T_TIMETIMER]);
TDMI[T_TIME] = 0;
KillTimer(TDMI[T_NEXTTDM_TIMER]);
TDMI[T_NEXTTDM_TIMER] = SetTimer("NextTDM", 3000, false);
}
}
}
}
case M_DERBY:
{
if(PI[playerid][P_STATUS] == S_SPAWNED && PI[playerid][P_DERBY_STATUS] == PD_NORMAL)
{
if(DI[D_STATUS] == DERBY_RUNNING && DI[D_RUNNINGPLAYERS] > 1)
{
PlayerDerbyDead(playerid);
}
}
}
case M_SHOOTER:
{
if(PI[playerid][P_STATUS] == S_SPAWNED && PI[playerid][P_SHOOTER_STATUS] == PD_NORMAL)
{
if(ST[S_STATUS] == SHOOTER_RUNNING && ST[S_RUNNING_PLAYERS] > 1)
{
PlayerShooterDead(playerid);
}
}
}
case M_FALL:
{
if(FI[F_STATUS] == FALL_RUNNING) PlayerFallDead(playerid);
}
case M_ZOMBIE:
{
if(IsPlayerInAnyVehicle(playerid)) RemovePlayerFromVehicleEx(playerid);
if(PI[playerid][P_VIP])
{
if(IsPlayerConnected(killerid))
{
if(PI[killerid][P_ZOMBIE_TEAM] == TEAM_ZOMBIE)
{
PI[playerid][P_INFECTED] = true;
}
}
}
if(PI[playerid][P_INFECTED] && PI[playerid][P_ZOMBIE_TEAM] == TEAM_HUMANS)
{
if(ZI[Z_TEAM_PLAYERS][1] > ZI[Z_TEAM_PLAYERS][0] + 3) PI[playerid][P_INFECTED] = false;
else
{
ZI[Z_TEAM_PLAYERS][PI[playerid][P_ZOMBIE_TEAM]] -= 1;
PI[playerid][P_ZOMBIE_TEAM] = TEAM_ZOMBIE;
ZI[Z_TEAM_PLAYERS][PI[playerid][P_ZOMBIE_TEAM]] += 1;
new r = random(sizeof(ZombieSpawns[]));
SetPlayerColor(playerid, ZombieColor[PI[playerid][P_ZOMBIE_TEAM]]);
SetSpawnInfo(playerid, NO_TEAM, GetPlayerSkin(playerid), ZombieSpawns[PI[playerid][P_ZOMBIE_TEAM]][r][0], ZombieSpawns[PI[playerid][P_ZOMBIE_TEAM]][r][1], ZombieSpawns[PI[playerid][P_ZOMBIE_TEAM]][r][2], ZombieSpawns[PI[playerid][P_ZOMBIE_TEAM]][r][3], 0, 0, 0, 0, 0, 0);
GameTextForPlayer(playerid, "~r~~h~Infectado", 5000, 2);
}
}
if(!PI[playerid][P_INFECTED])
{
new team = PI[playerid][P_ZOMBIE_TEAM];
new Float:distance;
new respawnID;
distance = GetPlayerDistanceFromPoint(playerid, ZombieSpawns[team][0][0], ZombieSpawns[team][0][1], ZombieSpawns[team][0][2]);
respawnID = 0;
for(new i = 0; i < sizeof(ZombieSpawns[]); ++i)
{
new Float:tempDistance = GetPlayerDistanceFromPoint(playerid, ZombieSpawns[team][i][0], ZombieSpawns[team][i][1], ZombieSpawns[team][i][2]);
if(tempDistance < distance)
{
distance = tempDistance;
respawnID = i;
}
}
SetSpawnInfo(playerid, team, GetPlayerSkin(playerid), ZombieSpawns[team][respawnID][0], ZombieSpawns[team][respawnID][1], ZombieSpawns[team][respawnID][2], ZombieSpawns[team][respawnID][3], 0, 0, 0, 0, 0, 0);
}
PI[playerid][P_INFECTED] = false;
if(IsPlayerConnected(killerid))
{
GivePlayerScoreEx(killerid, 1);
GivePlayerMoneyEx(killerid, 500);
PI[killerid][P_KILLS] ++;
}
PI[playerid][P_DEATHS] ++;
SendDeathMessage(killerid, playerid, reason);
PI[playerid][P_STATUS] = S_DEAD;
return 1;
}
}
if(IsPlayerConnected(killerid))
{
if(PI[killerid][P_DESMADRE])
{
new Float:armour; GetPlayerArmour(killerid, armour);
if(armour < 100.0) SetPlayerArmour(killerid, armour+5.0);
}
TogglePlayerSpectatingEx(playerid, true);
if(IsPlayerInAnyVehicle(killerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(killerid));
else PlayerSpectatePlayer(playerid, killerid);
PI[playerid][P_TIMERS][2] = SetTimerEx("FinishPlayerSpectatePlayer", 3000, false, "i", playerid);
GivePlayerScoreEx(killerid, 1);
switch(random(5))
{
case 0: GameTextForPlayer(playerid, "~r~~h~puto manco", 3000, 6), GameTextForPlayer(killerid, "~g~~h~todo un hombre", 3000, 6);
case 1: GameTextForPlayer(playerid, "~r~~h~noob", 3000, 6), GameTextForPlayer(killerid, "~g~~h~madre mia willy", 3000, 6);
case 2: GameTextForPlayer(playerid, "~r~~h~aprende a jugar", 3000, 6), GameTextForPlayer(killerid, "~g~~h~el puto amo", 3000, 6);
case 3: GameTextForPlayer(playerid, "~r~~h~dedicate a otra cosa", 3000, 6), GameTextForPlayer(killerid, "~g~~h~eres un bicharraco", 3000, 6);
case 4: GameTextForPlayer(playerid, "~r~~h~ponte a estudiar", 3000, 6), GameTextForPlayer(killerid, "~g~~h~matar te dara de comer", 3000, 6);
}
GivePlayerMoneyEx(killerid, 500);
}
if(IsPlayerConnected(killerid)) PI[killerid][P_KILLS] ++;
PI[playerid][P_DEATHS] ++;
SendDeathMessage(killerid, playerid, reason);
PI[playerid][P_STATUS] = S_DEAD;
return 1;
}
public OnPlayerText(playerid, text[])
{
if(PI[playerid][P_STATUS] == S_CONNECTED || PI[playerid][P_STATUS] == S_CLASS) { SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes hablar."); return 0; }
if(text[0] == '#' && (PI[playerid][P_MOD] >= 1 || IsPlayerAdmin(playerid)) )
{
new string[145];
format(string, sizeof(string), " {90C3D4}Admin Chat: {90D496}%s (%s): {CCCCCC}%s", PI[playerid][P_NAME], adminLevel(PI[playerid][P_MOD]), text[1]);
SendMessageToAdmins(-1, string);
return 0;
}
if(text[0] == '@' && PI[playerid][P_VIP])
{
new string[145];
format(string, sizeof(string), " {C6D855}VIP Chat: {CCCCCC}%s: %s", PI[playerid][P_NAME], text[1]);
SendMessageToVipUsers(-1, string);
return 0;
}
if(text[0] == '!' && PI[playerid][P_CREW_SLOT] != -1)
{
new string[145];
format(string, sizeof(string), " {%x}%s Chat: {CCCCCC}%s ({90C3D4}%s{CCCCCC}): %s", CI[PI[playerid][P_CREW_SLOT]][C_COLOR], CI[PI[playerid][P_CREW_SLOT]][C_NAME], PI[playerid][P_NAME], Crew_Ranks[PI[playerid][P_CREW_RANK]], text[1]);
SendMessageToCrew(PI[playerid][P_CREW_ID], -1, string);
return 0;
}
if(gettime() < PI[playerid][P_ANTIFLOOD_TICKCOUNT] + 1) { GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~~r~~h~vamo_~p~a_~y~calmarno~n~~g~~h~ok?~n~_", 2000, 6); return 0; }
PI[playerid][P_ANTIFLOOD_TICKCOUNT] = gettime();
new str[145];
if(PI[playerid][P_CREW_SLOT] == -1) format(str, sizeof(str), "{%06x}%s{CCCCCC}(%d): {%x}%s", GetPlayerColor(playerid) >>> 8, PI[playerid][P_NAME], playerid, PI[playerid][P_CHATCOLOR], text);
else format(str, sizeof(str), "{%x}» [%s] {%06x}%s{CCCCCC}(%d): {%x}%s", CI[PI[playerid][P_CREW_SLOT]][C_COLOR], CI[PI[playerid][P_CREW_SLOT]][C_NAME], GetPlayerColor(playerid) >>> 8, PI[playerid][P_NAME], playerid, PI[playerid][P_CHATCOLOR], text);
SendClientMessageToAll(-1, str);
SetPlayerChatBubble(playerid, text, PI[playerid][P_CHATCOLOR] << 8, 10.0, 10000);
return 0;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == GROVE_STREET_HEALTH_PICKUP || pickupid == BALLAS_HEALTH_PICKUP || pickupid == POLICE_HEALTH_PICKUP)
{
if(GetPlayerTeam(playerid) == NO_TEAM) return 1;
SetPlayerHealth(playerid, 100.0);
SetPlayerArmour(playerid, 100.0);
return 1;
}
else if(pickupid == GROVE_STREET_WEAPON_PICKUP[0] || pickupid == BALLAS_WEAPON_PICKUP[0] || pickupid == POLICE_WEAPON_PICKUP[0])
{
if(GetPlayerTeam(playerid) == NO_TEAM) return 1;
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][0], 500);
return 1;
}
else if(pickupid == GROVE_STREET_WEAPON_PICKUP[1] || pickupid == BALLAS_WEAPON_PICKUP[1] || pickupid == POLICE_WEAPON_PICKUP[1])
{
if(GetPlayerTeam(playerid) == NO_TEAM) return 1;
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][1], 500);
return 1;
}
else if(pickupid == GROVE_STREET_WEAPON_PICKUP[2] || pickupid == BALLAS_WEAPON_PICKUP[2] || pickupid == POLICE_WEAPON_PICKUP[2])
{
if(GetPlayerTeam(playerid) == NO_TEAM) return 1;
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][2], 500);
return 1;
}
else if(pickupid == PORTAL_PICKUP[0])
{
SetPlayerPosEx(playerid, 288.515350, -1782.124755, 4.480312, 180.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Los Santos", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[1])
{
SetPlayerPosEx(playerid, -1984.807861, 260.942871, 35.223373, 90.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "San Fierro", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[2])
{
SetPlayerPosEx(playerid, -743.484863, 502.881072, 1372.125000, 250.0, 1, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Libert City", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[3])
{
SetPlayerPosEx(playerid, 1506.277099, 1501.160766, 10.886412, 0.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Aeropuerto Las Venturas", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[4])
{
SetPlayerPosEx(playerid, -1524.225585, -99.324348, 14.148437, 45.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Aeropuerto San Fierro", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[5])
{
SetPlayerPosEx(playerid, 374.283721, 2536.765869, 16.769062, 180.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Aeropuerto Abandonado", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[6])
{
SetPlayerPosEx(playerid, -2318.737060, -1640.964599, 483.703125, 260.0, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Monte Chilliad", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[7])
{
SetPlayerPosEx(playerid, -2625.978515, 1393.064086, 7.101562, 268.868530, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Puente SF", 3000, 6);
return 1;
}
else if(pickupid == PORTAL_PICKUP[8])
{
SetPlayerPosEx(playerid, 837.984191, -1101.969116, 24.303991, 269.831726, 0, FREEROAM_VW, false, true, 0);
SetCameraBehindPlayer(playerid);
GameTextForPlayer(playerid, "Cementerio", 3000, 6);
return 1;
}
return 1;
}
public OnPlayerEnterDynamicArea(playerid, areaid)
{
/*if(areaid == LS_Gang_Area && GetPlayerVirtualWorld(playerid) == FREEROAM_VW && PI[playerid][P_GAMEMODE] == M_FREEROAM && GetPlayerInterior(playerid) == 0)
{
if(PI[playerid][P_GODMODE]) DeactivePlayerGodMode(playerid);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1009);
ResetPlayerWeapons(playerid);
if(GetPlayerTeam(playerid) != NO_TEAM)
{
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][0], 500);
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][1], 500);
GivePlayerWeapon(playerid, TEAM_WEAPONS[GetPlayerTeam(playerid)][2], 500);
}
PlayerPlaySoundEx(playerid, 30802, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~_~n~_~n~_~n~~h~~r~has_entrado_en_zona_de_bandas~n~_", 3000, 6);
return 1;
}*/
if(PI[playerid][P_GAMEMODE] == M_SHOOTER)
{
new area_info[3];
Streamer_GetArrayData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, area_info, 3);
if(area_info[0] && playerid != area_info[2] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
GivePlayerScoreEx(area_info[2], 1);
DestroyDynamicArea(areaid);
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
SHOOTER_CreateExplosion(pos[0], pos[1], pos[2], 0, 15.0);
DestroyDynamicObject(area_info[1]);
}
return 1;
}
if(areaid == Desmadre_Area && GetPlayerVirtualWorld(playerid) == FREEROAM_VW && PI[playerid][P_GAMEMODE] == M_FREEROAM && GetPlayerInterior(playerid) == 1)
{
if(PI[playerid][P_GODMODE])
{
if(PI[playerid][P_SPAWN_PROTECTION]) PI[playerid][P_SPAWN_PROTECTION] = false;
PI[playerid][P_GODMODE] = false;
}
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 24, 9999999999);
GivePlayerWeapon(playerid, 25, 9999999999);
GivePlayerWeapon(playerid, 34, 9999999999);
PI[playerid][P_DESMADRE] = true;
PlayerPlaySoundEx(playerid, 30802, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~p~desmadre!", 3000, 6);
return 1;
}
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new Float:p[3]; GetVehiclePos(GetPlayerVehicleID(playerid), p[0], p[1], p[2]);
for(new i = 0; i != sizeof(PlayerSpawnPosition_FR_LV); i++)
{
if(areaid == PlayerSpawnPosition_Areas[i])
{
if(p[2] <= PlayerSpawnPosition_FR_LV[i][2] + 10.0)
{
new Float:x, Float:y, Float:z;
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
SetVehicleVelocity(GetPlayerVehicleID(playerid), -x * 0.8, -y * 0.8, z + 0.25);
GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~_~n~_~n~_~n~~h~~p~~h~spawn_zone~n~_", 3000, 6);
return 1;
}
}
}
}
else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if(!PI[playerid][P_GODMODE] && !PI[playerid][P_SPAWN_PROTECTION] && !PI[playerid][P_DESMADRE])
{
new Float:p[3]; GetPlayerPos(playerid, p[0], p[1], p[2]);
for(new i = 0; i != sizeof(PlayerSpawnPosition_FR_LV); i++)
{
if(areaid == PlayerSpawnPosition_Areas[i])
{
if(p[2] <= PlayerSpawnPosition_FR_LV[i][2] + 10.0)
{
new Float:oldh = PI[playerid][P_HEALTH];
GetPlayerHealth(playerid, PI[playerid][P_HEALTH]);
if(PI[playerid][P_HEALTH] > 100.0) PI[playerid][P_HEALTH] = oldh;
ResetPlayerWeapons(playerid);
SetPlayerHealth(playerid, 9999999.0);
TextDrawMessageForPlayer(playerid, "~g~~h~~h~ON~n~Spawn_Protection", 3000);
//GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~_~n~_~n~_~n~~h~~y~spawn_protection_~g~~h~on~n~_", 3000, 6);
PI[playerid][P_SPAWN_PROTECTION] = true;
return 1;
}
}
}
}
}
}
return 1;
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(areaid == Desmadre_Area)
{
PI[playerid][P_DESMADRE] = false;
return 1;
}
else if(areaid == Minecraft_Area)
{
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), FREEROAM_VW);
SetPlayerVirtualWorld(playerid, FREEROAM_VW);
}
Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, 550, playerid);
return 1;
}
if(PI[playerid][P_GAMEMODE] == M_FREEROAM)
{
if(!PI[playerid][P_GODMODE] && PI[playerid][P_SPAWN_PROTECTION])
{
for(new i = 0; i != sizeof(PlayerSpawnPosition_FR_LV); i++)
{
if(areaid == PlayerSpawnPosition_Areas[i])
{
SetPlayerHealth(playerid, PI[playerid][P_HEALTH]);
ResetPlayerWeapons(playerid);
for(new w = 0; w != 10; w ++) GivePlayerWeapon(playerid, Random_Weapons[random(sizeof(Random_Weapons))], 500);
TextDrawMessageForPlayer(playerid, "~r~~h~~h~OFF~n~Spawn_Protection", 3000);
//GameTextForPlayer(playerid, "_~n~_~n~_~n~_~n~_~n~_~n~_~n~~h~~y~spawn_protection_~r~~h~off~n~_", 3000, 6);
PI[playerid][P_SPAWN_PROTECTION] = false;
return 1;
}
}
}
}
return 1;
}
public OnDynamicObjectMoved(objectid)
{
new ob_info[2];
Streamer_GetArrayData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_EXTRA_ID, ob_info, 2);
if(ob_info[0])
{
DestroyDynamicArea(ob_info[1]);
new Float:pos[3];
GetDynamicObjectPos(objectid, pos[0], pos[1], pos[2]);
SHOOTER_CreateExplosion(pos[0], pos[1], pos[2], 0, 15.0);
DestroyDynamicObject(objectid);
}
return 1;
}
/*
new eTPcommand[][] =
{
"TP_TYPE_CITY",
"TP_TYPE_STUNTS",
"TP_TYPE_DM",
"TP_TYPE_JUMP",
"TP_TYPE_PARKOUR",
"TP_TYPE_BASEJUMP",
"TP_TYPE_DRIFT",
"TP_TYPE_INTERIOR",
"TP_TYPE_OTHER",
"TP_TYPE_CARTUNING"
};
CMD:pos(playerid, params[])
{
new type, etp_name[24], etp_command[24], etp_freeze, etp_allowcar, etp_modelid;
if(sscanf(params, "ds[24]s[23]dd", type, etp_name, etp_command, etp_freeze, etp_allowcar)) return SendClientMessage(playerid, -1, "Syntax: /pos [TYPE] [TP_NAME] [TP_COMMAND] [TP_FREEZE] [TP_ALLOWCARTP]");
new Float:p[4];
if(IsPlayerInAnyVehicle(playerid))
{
GetVehiclePos(GetPlayerVehicleID(playerid), p[0], p[1], p[2]);
GetVehicleZAngle(GetPlayerVehicleID(playerid), p[3]);
etp_modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
}
else GetPlayerPos(playerid, p[0], p[1], p[2]), GetPlayerFacingAngle(playerid, p[3]);
printf("{%s, "%s", "%s", %f, %f, %f, %f, %d, FREEROAM_VW, %s, %s, %d},", eTPcommand[type], etp_name, etp_command, p[0], p[1], p[2], p[3], GetPlayerInterior(playerid), (etp_freeze == 0 ? ("false"):("true")), (etp_allowcar == 0 ? ("false"):("true")), etp_modelid);
return 1;
}
CMD:sel(playerid, params[])
{
SelectObject(playerid);
return 1;
}
public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z)
{
printf("Eliminado: %d, %d, %f, %f, %f", objectid, modelid, x, y, z);
DestroyDynamicObject(objectid);
return 1;
}*/
CMD:rpos(playerid, params[])
{
new Float:pos[4];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GetPlayerFacingAngle(playerid, pos[3]);
printf("%f, %f, %f, %f", pos[0], pos[1], pos[2], pos[3]);
return 1;
}
CMD:panel(playerid, params[])
{
ShowDialog(playerid, DIALOG_USER_PANEL);
return 1;
}
CMD:color(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE || PI[playerid][P_GAMEMODE] == M_GANGWAR || PI[playerid][P_GAMEMODE] == M_TDM) return SendClientMessage(playerid, -1, "{"GREY"}No puedes cambiar de color en este modo de juego.");
ShowDialog(playerid, DIALOG_SELECT_COLOR);
return 1;
}
CMD:colores(playerid, params[])
{
return cmd_color(playerid, params);
}
CMD:musica(playerid, params[])
{
ShowDialog(playerid, DIALOG_SOCIAL_MUSIC);
return 1;
}
CMD:radio(playerid, params[])
{
ShowDialog(playerid, DIALOG_RADIO);
return 1;
}
CMD:stop(playerid, params[])
{
StopAudioStreamForPlayer(playerid);
return 1;
}
CMD:guardar(playerid, params[])
{
if(PI[playerid][P_ID] == 0) return SendClientMessage(playerid, -1, "{CCCCCC}No estás registrado, usa /registrarse.");
UpdateUserData(playerid);
SendClientMessage(playerid, -1, "Datos actualizados.");
return 1;
}
CMD:stats(playerid, params[])
{
ShowDialog(playerid, DIALOG_STATS);
return 1;
}
CMD:kill(playerid, params[])
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
CMD:godmode(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || PI[playerid][P_DESMADRE]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
if(PI[playerid][P_GODMODE]) DeactivePlayerGodMode(playerid);
else ActivePlayerGodMode(playerid);
return 1;
}
CMD:god(playerid, params[])
{
return cmd_godmode(playerid, params);
}
CMD:teles(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ShowDialog(playerid, DIALOG_TELEPORTS);
return 1;
}
CMD:t(playerid, params[])
{
return cmd_teles(playerid, params);
}
CMD:v(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
if(!sscanf(params, "d", params[0]))
{
if(params[0] < 400 || params[0] > 611) return SendClientMessage(playerid, -1, "{"ORANGE"}Vehículo incorrecto.");
switch(params[0])
{
case 425, 447, 469, 520, 432, 464: return SendClientMessage(playerid, -1, "{"ORANGE"}Vehículo prohibido.");
}
SpawnCarForPlayer(playerid, params[0]);
return 1;
}
new vehname[24];
if(!sscanf(params, "s[24]", vehname))
{
new VehicleID = GetVehicleModelIDFromName(vehname);
if(VehicleID == -1) return SendClientMessage(playerid, -1, "{"ORANGE"}Vehículo incorrecto.");
switch(VehicleID)
{
case 425, 447, 469, 520, 432, 464: return SendClientMessage(playerid, -1, "{"ORANGE"}Vehículo prohibido.");
}
SpawnCarForPlayer(playerid, VehicleID);
return 1;
}
SendClientMessage(playerid, -1, "{"ORANGE"}Recuerda que también puedes usar {"GREY"}/v [modelid/nombre]");
ShowDialog(playerid, DIALOG_VEHICLES);
return 1;
}
CMD:play(playerid, params[])
{
if(!sscanf(params, "d", params[0]))
{
if(params[0] == 0) return StopAudioStreamForPlayer(playerid);
PlaySocialSong(playerid, params[0]);
}
else SendClientMessage(playerid, -1, "{CCCCCC}Usa /play <id>");
return 1;
}
CMD:like(playerid, params[])
{
if(!PI[playerid][P_USEREXIT]) return SendClientMessage(playerid, -1, "{999999}Debes estar registrado para indicar que te gusta una canción.");
new id;
if(!sscanf(params, "d", id))
{
if(id <= 0) return SendClientMessage(playerid, -1, "{CCCCCC}Usa /like <id>");
new DBResult:Result;
format(DB_Query, sizeof(DB_Query), "SELECT MUSIC.TITLE, (EXISTS(SELECT * FROM LIKES WHERE LIKES.ID_USUARIO = '%d' AND LIKES.ID_SONG = '%d')) AS LIKED FROM MUSIC WHERE MUSIC.ID = '%d'", PI[playerid][P_ID], id, id);
Result = db_query(Database, DB_Query);
new song_title[32], liked;
if(db_num_rows(Result))
{
db_get_field(Result, 0, song_title, 32);
liked = db_get_field_int(Result, 1);
if(liked)
{
format(DB_Query, sizeof(DB_Query), "DELETE FROM LIKES WHERE ID_USUARIO = '%d' AND ID_SONG = '%d'", PI[playerid][P_ID], id);
db_query(Database, DB_Query);
SendClientMessageEx(playerid, -1, "{CCCCCC}La canción {90C3D4}'%s' {CCCCCC}ya no te gusta.", song_title);
}
else
{
format(DB_Query, sizeof(DB_Query), "INSERT INTO LIKES (ID_USUARIO, ID_SONG) VALUES ('%d', '%d')", PI[playerid][P_ID], id);
db_query(Database, DB_Query);
SendClientMessageEx(playerid, -1, "{CCCCCC}Has indicado que la canción {90C3D4}'%s' {CCCCCC}te gusta.", song_title);
SendClientMessage(playerid, -1, "{CCCCCC}Puedes quitar esta canción de favoritos usando el mismo comando.");
}
}
else SendClientMessage(playerid, -1, "{CCCCCC}Canción no encontrada.");
db_free_result(Result);
}
else SendClientMessage(playerid, -1, "{CCCCCC}Usa /like <id>");
return 1;
}
CMD:duelo(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_DUEL) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Ya estás en un duelo.");
if(PI[playerid][P_IGNORE_DUELS]) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Debes de activar las peticiones de duelo con /dls.");
new id, bet;
if(!sscanf(params, "ud", id, bet))
{
if(id == playerid) return SendClientMessage(playerid, -1, "{CCCCCC}Error:");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Jugador desconectado.");
if(PI[id][P_GAMEMODE] == M_DUEL) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Este jugador ya está en un duelo.");
if(PI[id][P_STATUS] != S_SPAWNED) return SendClientMessage(playerid, -1, "{CCCCCC}Error: El jugador no está preparado para un duelo.");
if(PI[id][P_IGNORE_DUELS]) return SendClientMessage(playerid, -1, "{CCCCCC}Error: El jugador ignora las peticiones de duelos.");
if(bet < 10 || bet > 10000) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Apuesta minima: 10$, apuesta máxima: 10.000$.");
if(PI[playerid][P_MONEY] < bet) return SendClientMessage(playerid, -1, "{CCCCCC}Error: No tienes dinero suficiente para realizar la apuesta.");
if(PI[id][P_MONEY] < bet) return SendClientMessage(playerid, -1, "{CCCCCC}Error: El jugador elegido no tiene suficiente dinero para la apuesta.");
DLI[playerid][DL_RUNNING] = false;
DLI[playerid][DL_DUEL_LIST_ID] = 0;
DLI[playerid][DL_DUEL_WEAPON_ID] = 0;
DLI[playerid][DL_PLAYER_ONE] = playerid;
DLI[playerid][DL_PLAYER_TWO] = id;
DLI[playerid][DL_BET] = bet;
DLI[playerid][DL_WORLD] = playerid + NO_VW;
ShowDialog(playerid, DIALOG_DUEL);
return 1;
}
if(!sscanf(params, "u", params[0]))
{
if(params[0] == playerid) return SendClientMessage(playerid, -1, "{CCCCCC}Error:");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Jugador desconectado.");
if(PI[params[0]][P_GAMEMODE] == M_DUEL) return SendClientMessage(playerid, -1, "{CCCCCC}Error: Este jugador ya está en un duelo.");
if(PI[params[0]][P_STATUS] != S_SPAWNED) return SendClientMessage(playerid, -1, "{CCCCCC}Error: El jugador no está preparado para un duelo.");
if(PI[params[0]][P_IGNORE_DUELS]) return SendClientMessage(playerid, -1, "{CCCCCC}Error: El jugador ignora las peticiones de duelos.");
DLI[playerid][DL_RUNNING] = false;
DLI[playerid][DL_DUEL_LIST_ID] = 0;
DLI[playerid][DL_DUEL_WEAPON_ID] = 0;
DLI[playerid][DL_PLAYER_ONE] = playerid;
DLI[playerid][DL_PLAYER_TWO] = params[0];
DLI[playerid][DL_BET] = 0;
DLI[playerid][DL_WORLD] = playerid + NO_VW;
ShowDialog(playerid, DIALOG_DUEL);
return 1;
}
SendClientMessage(playerid, -1, "{CCCCCC}Usa /duelo <playerid/playername> <apuesta $>");
return 1;
}
CMD:dls(playerid, params[])
{
if(PI[playerid][P_IGNORE_DUELS])
{
PI[playerid][P_IGNORE_DUELS] = false;
SendClientMessage(playerid, -1, "{FFCC00}Peticiones para duelos habilitadas.");
}
else
{
PI[playerid][P_IGNORE_DUELS] = true;
SendClientMessage(playerid, -1, "{FFCC00}Ya no recibirás más peticiones de duelos.");
}
return 1;
}
CMD:weather(playerid, params[])
{
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "{CCCCCC}Usa /weather <id>");
SetPlayerWeather(playerid, params[0]);
//SetWeather(19);
return 1;
}
CMD:aplay(playerid, params[])
{
if(PI[playerid][P_MOD] < ADMIN_LEVEL_BAN) return 0;
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "{CCCCCC}Usa /aplay <id>");
new DBResult:Result;
format(DB_Query, sizeof(DB_Query), "SELECT TITLE, URL FROM MUSIC WHERE ID = '%d'", params[0]);
Result = db_query(Database, DB_Query);
new song_title[32], url[128];
if(db_num_rows(Result))
{
db_get_field(Result, 0, song_title, 32);
db_get_field(Result, 1, url, 128);
}
else return SendClientMessage(playerid, -1, "{CCCCCC}Canción no encontrada.");
db_free_result(Result);
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(!PI[i][P_IGNORE_MUSIC])
{
PlayAudioStreamForPlayer(i, url);
SendClientMessageEx(i, -1, "{CCCCCC}Reproduciendo {90C3D4}'%s' {CCCCCC}usa {CCFF00}/play %d {CCCCCC}para volver a reproducir esta canción.", song_title, params[0]);
}
}
}
new advert[145]; format(advert, 145, "{CC0000}%s[%d] usó /aplay %d", PI[playerid][P_NAME], playerid, params[0]);
SendMessageToAdmins(-1, advert);
return 1;
}
CMD:w(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0 || PI[playerid][P_GODMODE] || PI[playerid][P_SPAWN_PROTECTION]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
if(!sscanf(params, "d", params[0]))
{
if(params[0] == 38 || params[0] == 35 || params[0] == 36 || params[0] == 44 || params[0] == 45) return SendClientMessage(playerid, -1, "{"ORANGE"}Arma prohibida.");
GivePlayerWeapon(playerid, params[0], 500);
return 1;
}
ShowDialog(playerid, DIALOG_WEAPONS);
return 1;
}
CMD:ww(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0 || PI[playerid][P_GODMODE] || PI[playerid][P_SPAWN_PROTECTION]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 8, 1);
GivePlayerWeapon(playerid, 27, 8888);
GivePlayerWeapon(playerid, 29, 8888);
GivePlayerWeapon(playerid, 31, 8888);
PlayerPlaySoundEx(playerid, 1058, 0.0, 0.0, 0.0);
return 1;
}
CMD:ww2(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0 || PI[playerid][P_GODMODE] || PI[playerid][P_SPAWN_PROTECTION]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 4, 1);
GivePlayerWeapon(playerid,28, 1000);
GivePlayerWeapon(playerid,30, 1000);
PlayerPlaySoundEx(playerid, 1058, 0.0, 0.0, 0.0);
return 1;
}
CMD:rw(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0 || PI[playerid][P_GODMODE] || PI[playerid][P_SPAWN_PROTECTION]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 32, 1000);
GivePlayerWeapon(playerid, 26, 1000);
GivePlayerWeapon(playerid, 25, 1000);
PlayerPlaySoundEx(playerid, 1058, 0.0, 0.0, 0.0);
return 1;
}
CMD:rw2(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0 || PI[playerid][P_GODMODE] || PI[playerid][P_SPAWN_PROTECTION]) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 28, 1000);
GivePlayerWeapon(playerid, 27, 1000);
PlayerPlaySoundEx(playerid, 1058, 0.0, 0.0, 0.0);
return 1;
}
CMD:jetpack(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] != M_FREEROAM || GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
GameTextForPlayer(playerid, "~p~~h~jetpack!", 2000, 6);
return 1;
}
//ITEMS
CMD:items(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
ShowDialog(playerid, DIALOG_ITEMS);
return 1;
}
CMD:remove(playerid, params[])
{
for(new i=0; i< MAX_PLAYER_ATTACHED_OBJECTS; i++)
{
if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i);
}
return 1;
}
CMD:bombero(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19330, 2, 0.166000, -0.038999, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000); //FIREMAN
return 1;
}
CMD:policia(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19161, 2, 0.078999, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000); //POLICE
return 1;
}
CMD:hatmj(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 18639, 2, 0.131000, 0.019000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000); //HAT MJ
return 1;
}
CMD:obrero(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 18638, 2, 0.148999, 0.031000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000); //WORKER
return 1;
}
CMD:gorra(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 18939, 2, 0.164000, 0.001999, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000); //Gorare
return 1;
}
CMD:hat(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19488, 2, 0.121999, 0.000000, -0.005999, -83.199966, 98.200027, -2.500000, 1.000000, 1.000000, 1.000000); //sombrero
return 1;
}
CMD:hatmg(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19352, 2, 0.106999, 0.016000, -0.010999, 4.500000, 82.099990, -3.100001, 1.000000, 1.000000, 1.000000); //magicosombr
return 1;
}
CMD:bolsa(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19090, 2, -0.315999, 0.019999, 0.030000, 0.000000, 0.000000, 0.000000, 1.455999, 0.526000, 0.541000); //BAG
return 1;
}
CMD:dj(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid, 0, 19424, 2, 0.070999, -0.026000, -0.002000, -85.299987, 1.600005, -99.500000, 0.944001, 0.915000, 0.809999); //DJ
return 1;
}
CMD:dloro(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19078,1,-1.000000,-0.517000,0.000000,0.000000,0.299999,10.499994,8.673998,9.400999,7.410993);//dizfraz de loro
return 1;
}
CMD:loro(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19078,4,-0.067000,0.053999,0.018000,-168.400039,-169.800003,-2.800000,1.000000,1.000000,1.000000);//loro en hombro
return 1;
}
CMD:parche(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19085,2,0.090999,0.035000,-0.015000,106.599983,83.199996,0.800003,1.000000,1.000000,1.000000);//parche
return 1;
}
CMD:dildo(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19086,15,0.051000,0.000000,-0.424999,0.000000,0.000000,-102.100006,1.000000,1.000000,1.000000);//dildo
return 1;
}
CMD:chicken(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19137,2,0.101000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,1.000000,1.000000);//cabeza de pollo
return 1;
}
CMD:dchicken(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19137,15,0.040999,0.000000,-0.130000,-86.300003,106.100013,-96.100051,7.741999,4.874000,5.584998);//disfraz de pollo
return 1;
}
CMD:ciervo(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19315,1,-0.247999,0.509999,-0.015999,4.300004,86.900024,85.500015,3.010000,4.463000,3.824000);//ciervo
return 1;
}
CMD:cuernos1(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19314,2,0.157000,0.000000,0.000000,-0.199999,-7.600006,-88.599998,1.000000,1.000000,1.000000);//cuernos 1
return 1;
}
CMD:cuernos2(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19314,2,0.157000,0.000000,0.000000,1.400000,-7.600006,-28.599973,0.711000,0.919999,0.361999);//cuernos 2
return 1;
}
CMD:dcalabaza(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,19320,2,0.000000,0.000000,0.000000,4.299999,72.999992,3.199999,3.594999,3.787999,4.951001);//disfraz de calabaza
return 1;
}
CMD:cabezon(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,18963,2,0.261000,0.084999,0.004999,4.999999,85.400039,84.699974,2.097000,2.627000,3.033999);//cabezonn
return 1;
}
CMD:delfin(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,1607,2,0.267000,0.000000,0.000000,-0.199999,81.199996,-3.499999,1.135000,1.000000,1.126999);//delfin
return 1;
}
CMD:tiburon(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,1608,1,0.000000,0.000000,0.000000,0.499999,89.200042,0.199999,1.000000,1.000000,1.000000);//tiburon
return 1;
}
CMD:turtle(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,1609,1,-0.358000,0.000000,0.170000,0.000000,93.099998,0.000000,1.427000,1.509000,1.641000);//tortuga
return 1;
}
CMD:vaca(playerid, params[])
{
if(PI[playerid][P_GAMEMODE] == M_ZOMBIE) return SendClientMessage(playerid, -1, "{"GREY"}Ahora no puedes usar este comando.");
SetPlayerAttachedObject(playerid,0,16442,15,0.000000,0.000000,0.259000,0.000000,0.000000,-104.400001,1.000000,1.000000,1.000000);//vaca
return 1;
}
CMD:pm(playerid, params[])
{
if(PI[playerid][P_PMS]) return SendClientMessage(playerid, -1, "{996600}ERROR: Activa los mensajes privados con /pms");
new message[95];
if(sscanf(params, "us[95]", params[0], message)) return SendClientMessage(playerid, -1, "{996600}ERROR: /pm [PlayerID/Nombre] [Mensaje]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "{996600}Jugador desconectado.");
//if(params[0] == playerid) return SendClientMessage(playerid, -1, "{996600}Jugador desconectado.");
if(PI[params[0]][P_PMS]) return SendClientMessage(playerid, -1, "{996600}ERROR: El jugador tiene los mensajes privados deshabilitados.");
PlayerPlaySoundEx(playerid, 1149, 0.0, 0.0, 0.0);
PlayerPlaySoundEx(params[0], 1085, 0.0, 0.0, 0.0);
SendClientMessageEx(playerid, -1, "{FFFC33}[PM] enviado a %s (%d): %s", PI[params[0]][P_NAME], params[0], message);
SendClientMessageEx(params[0], -1, "{FFFC33}[PM] de %s (%d): %s", PI[playerid][P_NAME], playerid, message);
return 1;
}
CMD:pms(playerid, params[])
{
if(PI[playerid][P_PMS])
{
PI[playerid][P_PMS] = false;
SendClientMessage(playerid, -1, "{FFCC00}Mensajes privados habilitados.");
}
else
{
PI[playerid][P_PMS] = true;
SendClientMessage(playerid, -1, "{FFCC00}Mensajes privados deshabilitados.");
}
return 1;
}
//ANIMACIONES
CMD:animaciones(playerid, params[])
{
ShowDialog(playerid, DIALOG_ANIMS);
return 1;
}
CMD:anims(playerid, params[])
{
return cmd_animaciones(playerid, params);
}
CMD:parar(playerid, params[])
{
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 0, 0, 0, 0, 0, true);
ClearAnimations(playerid);
return 1;
}
CMD:rendirse(playerid, params[])
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_HANDSUP); //rendirse
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:blowjob(playerid, params[])
{
ApplyAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.0, 1, 1, 1, 0, 0);//blowjob
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:rodar(playerid, params[])
{
ApplyAnimation(playerid,"PED","BIKE_fallR",4.0,0,1,1,1,0);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:borracho(playerid, params[])
{
ApplyAnimation(playerid,"PED", "WALK_DRUNK",4.0,1,1,1,1,500);//borracho
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:bomba(playerid, params[])
{
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 1, 1, 0,0);//bomba
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:apuntar(playerid, params[])
{
ApplyAnimation( playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1,500);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:reir(playerid, params[])
{
ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0,0);//reir
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:amenazar(playerid, params[])
{
ApplyAnimation(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 0, 0, 0, 1,500);//amenazar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:paja(playerid, params[])
{
ApplyAnimation(playerid, "PAULNMAC", "wank_loop", 4.0, 1, 0, 0, 1, 0);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:herido(playerid, params[])
{
ApplyAnimation(playerid, "SWEET", "LaFin_Sweet", 4.0, 0, 1, 1, 1, 0);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:cruzarbrazos(playerid, params[])
{
ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 1, 1, 1, 0, 4000);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:recostarse(playerid, params[])
{
ApplyAnimation(playerid,"SUNBATHE", "Lay_Bac_in", 4.0, 0, 0, 0, 1, 0);//recostarse
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:cubrirse(playerid, params[])
{
ApplyAnimation(playerid, "ped", "cower", 4.0, 1, 0, 0, 0, 0);//crubrirse
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:vomitar(playerid, params[])
{
ApplyAnimation(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0);//vomitar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:comer(playerid, params[])
{
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.00, 0, 0, 0, 0, 0);
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:despedir(playerid, params[])
{
ApplyAnimation(playerid, "KISSING", "BD_GF_Wave", 3.0, 0, 0, 0, 0, 0);//despedir
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:nalgada(playerid, params[])
{
ApplyAnimation(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0);//nalgada
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:agonizar(playerid, params[])
{
ApplyAnimation(playerid, "WUZI", "CS_Dead_Guy", 4.0, 0, 0, 0, 1, 0);//agonizar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:besar(playerid, params[])
{
ApplyAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.0, 0, 0, 0, 0, 0);//besar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:crack(playerid, params[])
{
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 0, 0, 0, 1, 0);//crack
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:mear(playerid, params[])
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);//mear
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:sentarse(playerid, params[])
{
ApplyAnimation(playerid, "SUNBATHE", "ParkSit_M_in", 4.000000, 0, 1, 1, 1, 0);//sentarse
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:fucku(playerid, params[])
{
ApplyAnimation( playerid,"ped", "fucku", 4.0, 0, 1, 1, 1, 1 );//fucku
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:llamar(playerid, params[])
{
ApplyAnimation(playerid, "ped", "phone_in", 4.000000, 0, 0, 0, 1, 4000);//llamar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:taichi(playerid, params[])
{
ApplyAnimation(playerid, "PARK", "Tai_Chi_Loop", 4.1,7,5,1,1,1);//taichi
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:beber(playerid, params[])
{
ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.0, 0, 1, 1, 0, 4000);//beber
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:boxear(playerid, params[])
{
ApplyAnimation(playerid, "GYMNASIUM", "gym_shadowbox", 4.1,7,5,1,1,1);//boxear
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:saludar(playerid, params[])
{
ApplyAnimation(playerid,"GANGS","hndshkfa_swt",4.1,0,0,0,0,0);//saludar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:curar(playerid, params[])
{
ApplyAnimation(playerid,"MEDIC","CPR",4.1,0,0,0,0,0);//curar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:llorar(playerid, params[])
{
ApplyAnimation(playerid,"GRAVEYARD","mrnF_loop",4.1,0,0,0,0,0);//llorar
SendClientMessage(playerid, -1, "{C6D855}Para cancelar la animacion utiliza el comando {"ORANGE"}/parar");
return 1;
}
CMD:dormir(playerid, params[])
{
Appl