Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include "../include/gl_common.inc"
- /*
- -------------------------------------
- Macros pour la configuration
- -------------------------------------
- */
- #define MAX_AMMO 1000//Maximum de munitions
- #define LS_SPAWNS 32//Nombre de points d'apparitionqs à LS
- #define LV_SPAWNS 43//Nombre de points d'apparitions à LV
- #define SF_SPAWNS 31//Nombres de points d'apparition à SF
- #define MONEYDROP_AMMOUNT 1000//Quantité maximum d'argent perdu lors de la mort
- #define MONEY4KILLS_AMMOUNT 1000//Quantité maximum d'argent gagné lors d'un "kill"
- #define VOTE_KICK_DELAY 60//Delai pour le "votekick" (en secondes)
- #define MSG_TIME 10//Temps d'affichage des messages generaux (en secondes)
- /*
- ------------------------------------------
- Macros pour la lisibilité du script
- ------------------------------------------
- */
- #define KNIFE 4
- #define GRENADE 16
- #define MOLOTOV 18
- #define C45 22
- #define SC45 23
- #define DEAGLE 24
- #define SHOTGUN 25
- #define SPAZZ 27
- #define UZI 28
- #define MP5 29
- #define AK47 30
- #define M4 31
- #define TECH9 32
- #define RIFLE 33
- #define SNIPER 34
- #define RPG 35
- #define ROCKET 36
- #define PARA 46
- /*
- ------------------------------------------
- Variables globales (definitions)
- ------------------------------------------
- */
- new gMaxPlayers = 0;
- new gPlayersConnected = 0;
- new kicktimer;//Utilisé pour retenir l'ID du timer "Votekick"
- /*
- ------------------------------------------
- Prototypes de fonctions publiques
- ------------------------------------------
- */
- forward AbortVoteKick();//Prototype de la fonction publique AbortVoteKick()
- forward SetPickupPickable(pickupID);
- /*
- -------------------------------------------
- Structures d'énumeration
- -------------------------------------------
- */
- enum E_PICKUPSINFO
- {
- weaponid,
- pickable
- }
- enum
- {
- DIALOG_HELP,
- DIALOG_VOTEKICK,
- DIALOG_ABORT_VOTE,
- DIALOG_VOTEKICK_CONFIRM,
- DIALOG_VOTEKICK_ERROR,
- DIALOG_TAB_CLICK_MENU,
- DIALOG_PM,
- DIALOG_PM_ERROR,
- DIALOG_ADD_CONTACT,
- DIALOG_ADD_CONTACT_ERROR,
- DIALOG_TP,
- }
- /*
- ---------------------------------------------
- Tableaux globaux (definitions)
- ---------------------------------------------
- */
- new gWeaponPickups[MAX_PICKUPS][E_PICKUPSINFO];//Ascocie à chaque pickup (par ID) l'arme qu'il donne
- //Copié-Collé de la librairie gl_spawns
- new Float:gRandomSpawns_LosSantos[LS_SPAWNS][4] = {
- {1751.1097,-2106.4529,13.5469,183.1979}, // El-Corona - Outside random house
- {2652.6418,-1989.9175,13.9988,182.7107}, // Random house in willowfield - near playa de seville and stadium
- {2489.5225,-1957.9258,13.5881,2.3440}, // Hotel in willowfield - near cluckin bell
- {2689.5203,-1695.9354,10.0517,39.5312}, // Outside stadium - lots of cars
- {2770.5393,-1628.3069,12.1775,4.9637}, // South in east beach - north of stadium - carparks nearby
- {2807.9282,-1176.8883,25.3805,173.6018}, // North in east beach - near apartments
- {2552.5417,-958.0850,82.6345,280.2542}, // Random house north of Las Colinas
- {2232.1309,-1159.5679,25.8906,103.2939}, // Jefferson motel
- {2388.1003,-1279.8933,25.1291,94.3321}, // House south of pig pen
- {2481.1885,-1536.7186,24.1467,273.4944}, // East LS - near clucking bell and car wash
- {2495.0720,-1687.5278,13.5150,359.6696}, // Outside CJ's house - lots of cars nearby
- {2306.8252,-1675.4340,13.9221,2.6271}, // House in ganton - lots of cars nearby
- {2191.8403,-1455.8251,25.5391,267.9925}, // House in south jefferson - lots of cars nearby
- {1830.1359,-1092.1849,23.8656,94.0113}, // Mulholland intersection carpark
- {2015.3630,-1717.2535,13.5547,93.3655}, // Idlewood house
- {1654.7091,-1656.8516,22.5156,177.9729}, // Right next to PD
- {1219.0851,-1812.8058,16.5938,190.0045}, // Conference Center
- {1508.6849,-1059.0846,25.0625,1.8058}, // Across the street of BANK - lots of cars in intersection carpark
- {1421.0819,-885.3383,50.6531,3.6516}, // Outside house in vinewood
- {1133.8237,-1272.1558,13.5469,192.4113}, // Near hospital
- {1235.2196,-1608.6111,13.5469,181.2655}, // Backalley west of mainstreet
- {590.4648,-1252.2269,18.2116,25.0473}, // Outside "BAnk of San Andreas"
- {842.5260,-1007.7679,28.4185,213.9953}, // North of Graveyard
- {911.9332,-1232.6490,16.9766,5.2999}, // LS Film Studio
- {477.6021,-1496.6207,20.4345,266.9252}, // Rodeo Place
- {255.4621,-1366.3256,53.1094,312.0852}, // Outside propery in richman
- {281.5446,-1261.4562,73.9319,305.0017}, // Another richman property
- {790.1918,-839.8533,60.6328,191.9514}, // Mulholland house
- {1299.1859,-801.4249,84.1406,269.5274}, // Maddoggs
- {1240.3170,-2036.6886,59.9575,276.4659}, // Verdant Bluffs
- {2215.5181,-2627.8174,13.5469,273.7786}, // Ocean docks 1
- {2509.4346,-2637.6543,13.6453,358.3565} // Ocean Docks spawn 2
- };
- new Float:gRandomSpawns_LasVenturas[LV_SPAWNS][4] = {
- {1435.8024,2662.3647,11.3926,1.1650}, // Northern train station
- {1457.4762,2773.4868,10.8203,272.2754}, // Northern golf club
- {1739.6390,2803.0569,14.2735,285.3929}, // Northern housing estate 1
- {1870.3096,2785.2471,14.2734,42.3102}, // Northern housing estate 2
- {1959.7142,2754.6863,10.8203,181.4731}, // Northern house 1
- {2314.2556,2759.4504,10.8203,93.2711}, // Northern industrial estate 1
- {2216.5674,2715.0334,10.8130,267.6540}, // Northern industrial estate 2
- {2101.4192,2678.7874,10.8130,92.0607}, // Northern near railway line
- {1951.1090,2660.3877,10.8203,180.8461}, // Northern house 2
- {1666.6949,2604.9861,10.8203,179.8495}, // Northern house 3
- {2808.3367,2421.5107,11.0625,136.2060}, // Northern shopping centre
- {2633.3203,2349.7061,10.6719,178.7175}, // V-Rock
- {2606.6348,2161.7490,10.8203,88.7508}, // South V-Rock
- {2616.5286,2100.6226,10.8158,177.7834}, // North Ammunation 1
- {2491.8816,2397.9370,10.8203,266.6003}, // North carpark 1
- {2531.7891,2530.3223,21.8750,91.6686}, // North carpark 2
- {2340.6677,2530.4324,10.8203,177.8630}, // North Pizza Stack
- {2097.6855,2491.3313,14.8390,181.8117}, // Emerald Isle
- {1893.1000,2423.2412,11.1782,269.4385}, // Souvenir shop
- {1698.9330,2241.8320,10.8203,357.8584}, // Northern casino
- {1479.4559,2249.0769,11.0234,306.3790}, // Baseball stadium 1
- {1298.1548,2083.4016,10.8127,256.7034}, // Baseball stadium 2
- {1117.8785,2304.1514,10.8203,81.5490}, // North carparks
- {1108.9878,1705.8639,10.8203,0.6785}, // Dirtring racing 1
- {1423.9780,1034.4188,10.8203,90.9590}, // Sumo
- {1537.4377,752.0641,11.0234,271.6893}, // Church
- {1917.9590,702.6984,11.1328,359.2682}, // Southern housing estate
- {2089.4785,658.0414,11.2707,357.3572}, // Southern house 1
- {2489.8286,928.3251,10.8280,67.2245}, // Wedding chapel
- {2697.4717,856.4916,9.8360,267.0983}, // Southern construction site
- {2845.6104,1288.1444,11.3906,3.6506}, // Southern train station
- {2437.9370,1293.1442,10.8203,86.3830}, // Wedding chapel (near Pyramid)
- {2299.5430,1451.4177,10.8203,269.1287}, // Carpark (near Pyramid)
- {2214.3008,2041.9165,10.8203,268.7626}, // Central parking lot
- {2005.9174,2152.0835,10.8203,270.1372}, // Central motel
- {2222.1042,1837.4220,10.8203,88.6461}, // Clowns Pocket
- {2025.6753,1916.4363,12.3382,272.5852}, // The Visage
- {2087.9902,1516.5336,10.8203,48.9300}, // Royal Casino
- {2172.1624,1398.7496,11.0625,91.3783}, // Auto Bahn
- {2139.1841,987.7975,10.8203,0.2315}, // Come-a-lot
- {1860.9672,1030.2910,10.8203,271.6988}, // Behind 4 Dragons
- {1673.2345,1316.1067,10.8203,177.7294}, // Airport carpark
- {1412.6187,2000.0596,14.7396,271.3568} // South baseball stadium houses
- };
- new Float:gRandomSpawns_SanFierro[SF_SPAWNS][4] = {
- {-2723.4639,-314.8138,7.1839,43.5562}, // golf course spawn
- {-2694.5344,64.5550,4.3359,95.0190}, // in front of a house
- {-2458.2000,134.5419,35.1719,303.9446}, // hotel
- {-2796.6589,219.5733,7.1875,88.8288}, // house
- {-2706.5261,397.7129,4.3672,179.8611}, // park
- {-2866.7683,691.9363,23.4989,286.3060}, // house
- {-2764.9543,785.6434,52.7813,357.6817}, // donut shop
- {-2660.9402,883.2115,79.7738,357.4440}, // house
- {-2861.0796,1047.7109,33.6068,188.2750}, // parking lot
- {-2629.2009,1383.1367,7.1833,179.7006}, // parking lot at the bridge
- {-2079.6802,1430.0189,7.1016,177.6486}, // pier
- {-1660.2294,1382.6698,9.8047,136.2952}, // pier 69
- {-1674.1964,430.3246,7.1797,226.1357}, // gas station]
- {-1954.9982,141.8080,27.1747,277.7342}, // train station
- {-1956.1447,287.1091,35.4688,90.4465}, // car shop
- {-1888.1117,615.7245,35.1719,128.4498}, // random
- {-1922.5566,886.8939,35.3359,272.1293}, // random
- {-1983.3458,1117.0645,53.1243,271.2390}, // church
- {-2417.6458,970.1491,45.2969,269.3676}, // gas station
- {-2108.0171,902.8030,76.5792,5.7139}, // house
- {-2097.5664,658.0771,52.3672,270.4487}, // random
- {-2263.6650,393.7423,34.7708,136.4152}, // random
- {-2287.5027,149.1875,35.3125,266.3989}, // baseball parking lot
- {-2039.3571,-97.7205,35.1641,7.4744}, // driving school
- {-1867.5022,-141.9203,11.8984,22.4499}, // factory
- {-1537.8992,116.0441,17.3226,120.8537}, // docks ship
- {-1708.4763,7.0187,3.5489,319.3260}, // docks hangar
- {-1427.0858,-288.9430,14.1484,137.0812}, // airport
- {-2173.0654,-392.7444,35.3359,237.0159}, // stadium
- {-2320.5286,-180.3870,35.3135,179.6980}, // burger shot
- {-2930.0049,487.2518,4.9141,3.8258} // harbor
- };
- main()
- {
- print("\n----------------------------------");
- print("(^_^) Free Mode by Jujuv (^_^)");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Free Mode");
- /*Chargements des vehicules
- Je vais pas m'enuyer à prendre des tones de positions et/ou à "convertire" des coordonés
- */
- LoadPickups();
- LoadStaticVehiclesFromFile("/vehicles/flint.txt");
- LoadStaticVehiclesFromFile("/vehicles/bone.txt");
- LoadStaticVehiclesFromFile("/vehicles/ls_airport.txt");
- LoadStaticVehiclesFromFile("/vehicles/ls_gen_inner.txt");
- LoadStaticVehiclesFromFile("/vehicles/ls_gen_outer.txt");
- LoadStaticVehiclesFromFile("/vehicles/ls_law.txt");
- LoadStaticVehiclesFromFile("/vehicles/lv_airport.txt");
- LoadStaticVehiclesFromFile("/vehicles/lv_gen.txt");
- LoadStaticVehiclesFromFile("/vehicles/lv_law.txt");
- LoadStaticVehiclesFromFile("/vehicles/pilots.txt");
- LoadStaticVehiclesFromFile("/vehicles/red_country.txt");
- LoadStaticVehiclesFromFile("/vehicles/sf_airport.txt");
- LoadStaticVehiclesFromFile("/vehicles/sf_gen.txt");
- LoadStaticVehiclesFromFile("/vehicles/sf_law.txt");
- LoadStaticVehiclesFromFile("/vehicles/sf_train.txt");
- LoadStaticVehiclesFromFile("/vehicles/tierra.txt");
- LoadStaticVehiclesFromFile("/vehicles/trains.txt");
- LoadStaticVehiclesFromFile("/vehicles/trains_platform.txt");
- LoadStaticVehiclesFromFile("/vehicles/whetstone.txt");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- //Certaines PVars doivent être initialisé à des valeurs par défaut
- if(gMaxPlayers < playerid) { gMaxPlayers = playerid;}
- gPlayersConnected++;
- SetPVarInt(playerid, "playerClicked", INVALID_PLAYER_ID);//Stoque le joueur cliqué/séléctioné (cible de l'OP)
- SetPVarInt(playerid, "chat_member_1", INVALID_PLAYER_ID);
- SetPVarInt(playerid, "chat_member_2", INVALID_PLAYER_ID);
- SetPVarInt(playerid, "chat_member_3", INVALID_PLAYER_ID);
- SetPVarInt(playerid, "chat_member_4", INVALID_PLAYER_ID);
- SetPVarInt(playerid, "chat_member_5", INVALID_PLAYER_ID);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(GetPVarInt(playerid, "Kicked"))//Si le joueur fait l'objet d'un "votekick"
- {
- ResetVoteKick();//R-à-Z des "voteskick" (voir la fonction ResetVoteKick() )
- }
- if(playerid == gMaxPlayers)
- {
- for(new i = gMaxPlayers-1; i >= 0; i--)//TY Mini'.J'ai juste CC et changé le nom d'la var
- {
- if(IsPlayerConnected(i))
- {gMaxPlayers = i; break;}
- }
- }
- gPlayersConnected--;
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- RandomSpawn(playerid);//Pour que l-on aparaisse à un endroit différent aprés chaque mort
- if(killerid != INVALID_PLAYER_ID)
- {
- GivePlayerMoney(playerid, random(MONEYDROP_AMMOUNT)*(-1));//x*(-1) = -x
- GivePlayerMoney(killerid, random(MONEY4KILLS_AMMOUNT));
- }
- SendDeathMessage(killerid, playerid, reason);
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- SendPlayerChatMessage(playerid, text);//Chat par groupe
- return 0;//Le chat principale est désactivé
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (!strcmp("/aide", cmdtext, true))//La seul commande que vous verrez dans ce mode de jeu !
- {
- ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Aide", "Ici, vous pouvez faire ce que vous voulez!\nEn cliquant sur le pseudonyme d'un joueur dans le menu des scores (touche Tabulation),\n vous pouvez acceder aux fonctions communautaires dont vous avez besoin.\nAmusez vous bien!", "Fermer", "");
- return 1;
- }
- return 0;
- }
- public OnPlayerUpdate(playerid)
- {
- if(GetPVarInt(playerid, "Kicked") >= gPlayersConnected/2 && gPlayersConnected >= 2)//Si au moins la moitié des joueurs ont voté pour expulsé un joueur ET qu'il y a au moins 2 joueurs (1/2=0.5 et 1>0.5, ndlr)
- {
- new kickedName[MAX_PLAYER_NAME+1], string[250];
- ReturnPlayerName(playerid);
- format(string, sizeof(string), "~r~ %s a été éxpulsé du jeu !", kickedName);
- GameTextForAll(string, MSG_TIME*1000, 0);
- Kick(playerid);
- ResetVoteKick();
- KillTimer(kicktimer);//Arret du "timer" "kicktimer" puisque le joueur a été expulsé dans les temps
- }
- /*
- Il arrive moins souvent qu'un joueur soit à l'une des deux positions.
- Tandis qu'il est plus probable qu'un joueur soit dans l'un des trois modeles de vehcules.
- Ainsi, on évite des opérations inutiles dans bien des cas !
- */
- if(IsPlayerInRangeOfPoint(playerid, 20.0, 1515.4438,-1376.8842,242.0400))
- {
- new vehModel = GetVehicleModel(GetPlayerVehicleID(playerid));//Plus lisible et évite des operations inutiles car redondantes
- if(vehModel == 592 || vehModel == 557 || vehModel == 553)
- {
- RemoveBuildingForPlayer(playerid, 4550, 1544.5703, -1355.7891, 117.0703, 1000);
- RemoveBuildingForPlayer(playerid, 4561, 1544.5703, -1355.7891, 117.0703, 1000);
- RemoveBuildingForPlayer(playerid, 4716, 1544.5703, -1355.7891, 117.0703, 1000);
- RemoveBuildingForPlayer(playerid, 4728, 1544.5781, -1356.3750, 327.1328, 1000);
- RemoveBuildingForPlayer(playerid, 4726, 1544.5781, -1356.3750, 327.1328, 1000);
- RemoveBuildingForPlayer(playerid, 4727, 1544.5781, -1356.3750, 327.6719, 1000);
- CreateExplosion(1544.5703, -1355.7891, 117.0703, 6, 50);
- CreateExplosion(1544.5781, -1356.3750, 327.1328, 6, 50);
- CreateExplosion(1544.5781, -1356.3750, 327.6719, 6, 50);
- }
- }
- else if(IsPlayerInRangeOfPoint(playerid, 20.0,1567.6016, -1248.6953, 102.5234))
- {
- new vehModel = GetVehicleModel(GetPlayerVehicleID(playerid));
- if(vehModel == 592 || vehModel == 557 || vehModel == 553)
- {
- RemoveBuildingForPlayer(playerid, 4563, 1567.6016, -1248.6953, 102.5234, 0.25);
- RemoveBuildingForPlayer(playerid, 4566, 1567.6016, -1248.6953, 102.5234, 0.25);
- RemoveBuildingForPlayer(playerid, 4715, 1567.7188, -1248.6953, 102.5234, 0.25);
- CreateExplosion(1567.6016, -1248.6953, 102.5234, 6, 50);
- CreateExplosion(1567.7188, -1248.6953, 102.5234, 6, 50);
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_VOTEKICK_CONFIRM:
- {
- switch(response)
- {
- case 1:
- {
- SetPVarInt(GetPVarInt(playerid, "playerClicked"), "kicked", GetPVarInt(GetPVarInt(playerid, "playerClicked"), "Kicked")+1);
- SetPVarInt(playerid, "Kicking", 1);//Booleen ;)
- new kickedName[MAX_PLAYER_NAME+1], string[100];
- kickedName = ReturnPlayerName(GetPVarInt(playerid, "playerClicked"));
- format(string, sizeof(string), "~r~ Un vote a ete lance pour expulser %s!", kickedName);
- GameTextForAll(string, MSG_TIME*1000, 0);
- kicktimer = SetTimer("AbortVoteKick", VOTE_KICK_DELAY*1000, false);//Delai de vote: 60secondes sinon le vote est annulé
- }
- case 0:
- {
- ShowPlayerDialog(playerid, DIALOG_ABORT_VOTE, DIALOG_STYLE_MSGBOX, "Annulé", "Votre vote a été annulé", "Ok", "");
- }
- }
- }
- case DIALOG_TAB_CLICK_MENU:
- {
- if(response)
- {
- switch(listitem)
- {
- case 0://VoteKick
- {
- if(!GetPVarInt(playerid, "Kicking") && playerid != GetPVarInt(playerid, "playerClicked"))
- {
- new string[250], clickedname[MAX_PLAYER_NAME+1];
- clickedname = ReturnPlayerName(GetPVarInt(playerid, "playerClicked"));
- format(string, sizeof(string), "Etes vous sûr de vouloir voter pour l'expulsion de %s ?", clickedname);
- ShowPlayerDialog(playerid, DIALOG_VOTEKICK_CONFIRM, DIALOG_STYLE_MSGBOX, "Certain ?", string, "Oui", "Non");
- }
- else { ShowPlayerDialog(playerid, DIALOG_VOTEKICK_ERROR, DIALOG_STYLE_MSGBOX, "Operation impossible", "Vous avé dèja voté pour une expulsion ou tentez de voter pour votre propre expulsion !", "Ok", ""); }
- }
- case 1://MP
- {
- pm(playerid, GetPVarInt(playerid, "playerClicked"));
- }
- case 2://Aajouter un conact
- {
- AddPlayerChatMember(playerid, GetPVarInt(playerid, "playerClicked"));
- }
- case 3://TP
- {
- TP(playerid, GetPVarInt(playerid, "playerclicked"));
- }
- }
- }
- }
- case DIALOG_PM:
- {
- if(response)
- {
- if(strlen(inputtext))
- {
- SendPlayerMessageToPlayer(GetPVarInt(playerid, "playerClicked"), playerid, inputtext);
- SendPlayerMessageToPlayer(playerid, playerid, inputtext);
- }
- else { ShowPlayerDialog(playerid, DIALOG_PM, DIALOG_STYLE_INPUT, "Message", "Entrer le contenue de votre MP:", "Envoyer", "Annuler");}
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- SetPVarInt(playerid, "playerClicked", clickedplayerid);
- ShowPlayerDialog(playerid, DIALOG_TAB_CLICK_MENU, DIALOG_STYLE_LIST, "Que faire ?", "Voter pour l'expulsion de ce joueur\r\nEnvoyer un MP à ce joueur\r\nAjouter ce joueur à votre chat\r\nSe TP à ce joueur", "Ok", "Annuler");
- return 1;
- }
- public OnPlayerRequestClass(playerid,classid)
- {
- RandomSpawn(playerid);
- SpawnPlayer(playerid);
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(gWeaponPickups[pickupid][weaponid] >= 1 && gWeaponPickups[pickupid][weaponid] <= 46 && gWeaponPickups[pickupid][pickable])
- {
- GivePlayerWeapon(playerid, gWeaponPickups[pickupid][weaponid], random(MAX_AMMO));
- SetTimerEx("SetPickupPickable", 30*1000, false, "i", pickupid);
- }
- }
- RandomSpawn(playerid)
- {
- new Float:x, Float:y, Float:z, Float:angle, r;
- if(gPlayersConnected < 50)
- {
- r = random(LS_SPAWNS);
- x = gRandomSpawns_LosSantos[r][0];
- y = gRandomSpawns_LosSantos[r][1];
- z = gRandomSpawns_LosSantos[r][2];
- angle = gRandomSpawns_LosSantos[r][3];
- }
- else if(gPlayersConnected < 100)
- {
- r = random(LS_SPAWNS);
- x = gRandomSpawns_LasVenturas[r][0];
- y = gRandomSpawns_LasVenturas[r][1];
- z = gRandomSpawns_LasVenturas[r][2];
- angle = gRandomSpawns_LasVenturas[r][3];
- }
- else
- {
- r = random(LS_SPAWNS);
- x = gRandomSpawns_SanFierro[r][0];
- y = gRandomSpawns_SanFierro[r][1];
- z = gRandomSpawns_SanFierro[r][2];
- angle = gRandomSpawns_SanFierro[r][3];
- }
- SetSpawnInfo(playerid, NO_TEAM, random(300), x, y, z, angle, random(46), random(MAX_AMMO), random(46), random(MAX_AMMO), random(46), random(MAX_AMMO));
- }
- ResetVoteKick()
- {
- new i;
- for(i = 0; i < gMaxPlayers; i++)
- {
- SetPVarInt(i, "Kicking", 0);
- }
- }
- public AbortVoteKick()
- {
- GameTextForAll("~r~Le joueur n'a pas ete expulse (Votes insufissants)", MSG_TIME*1000, 0);
- ResetVoteKick();
- }
- pm(senderid, receiverid)
- {
- if(IsPlayerConnected(receiverid) && receiverid != INVALID_PLAYER_ID && senderid != receiverid)
- {
- ShowPlayerDialog(senderid, DIALOG_PM, DIALOG_STYLE_INPUT, "Message", "Entrer le contenue de votre MP:", "Envoyer", "Annuler");
- }
- else {ShowPlayerDialog(senderid, DIALOG_PM_ERROR, DIALOG_STYLE_MSGBOX, "Invalid ID", "l'ID spécifié ne correspond à aucun joueur connécté!", "Ok", ""); }
- }
- SendPlayerChatMessage(senderid, message[])
- {
- new i, string[20], tmp;
- tmp = false;// Faux si le joueur n'a pas reçu son propre message, sinon vrais ... trouver un nom correct pour cette var est impossible ...
- for(i = 1; i <= 5; i++)
- {
- format(string, sizeof(string), "chat_member_%i", i);
- if(GetPVarInt(senderid, string) != INVALID_PLAYER_ID && IsPlayerConnected(GetPVarInt(senderid, string)))
- {
- SendPlayerMessageToPlayer(GetPVarInt(senderid, string), senderid, message);
- if(!tmp) { SendPlayerMessageToPlayer(senderid, senderid, message); tmp = true;}
- }
- }
- }
- stock AddPlayerChatMember(playerid, memberid)
- {
- if(IsPlayerConnected(memberid) && memberid != playerid)
- {
- new i, string[20];
- for(i = 1; i <= 5; i++)
- {
- format(string, sizeof(string), "chat_member_%i", i);
- if(GetPVarInt(playerid, string) == INVALID_PLAYER_ID || !IsPlayerConnected(GetPVarInt(playerid, string)))
- {
- SetPVarInt(playerid, string, memberid);
- ShowPlayerDialog(playerid, DIALOG_ADD_CONTACT, DIALOG_STYLE_MSGBOX, "Contacte ajouté!", "ce joueur a bien été ajouté à votre chat!", "Ok", "");
- break;
- }
- else if(i == 5)
- {
- ShowPlayerDialog(playerid, DIALOG_ADD_CONTACT_ERROR, DIALOG_STYLE_MSGBOX, "Operation failed!", "Vous avez dèja 5 joueurs dans votre chat.", "Ok", "");
- }
- }
- }
- else { ShowPlayerDialog(playerid, DIALOG_ADD_CONTACT_ERROR, DIALOG_STYLE_MSGBOX, "Operation failed!", "Vous avez spécifié un ID de joueur invalide.", "Ok", ""); }
- }
- stock TP(playerid, playerid2)
- {
- if(playerid != playerid2 && IsPlayerConnected(playerid2) && IsPlayerConnected(playerid))//Sais-t-on jamais ! L'un des deux peux se déconnecter pendant l'OP
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid2, Float:x, Float:y, Float:z);
- if(IsPlayerInAnyVehicle(playerid))
- {
- SetVehicleToRespawn(GetPlayerVehicleID(playerid));
- }
- SetPlayerPos(playerid, Float:x, Float:y, Float:z);
- }
- }
- stock ReturnPlayerName(playerid)
- {
- new pName[MAX_PLAYER_NAME+1];
- if(IsPlayerConnected(playerid))
- {
- GetPlayerName(playerid, pName, sizeof(pName));
- }
- else { pName = "Invalid player name"; }
- return pName;
- }
- stock LoadPickups()
- {
- new pickupID;
- pickupID = CreatePickup(356, 2, 1753.8345, -1855.0022, 13.4141, -1);
- gWeaponPickups[pickupID][weaponid] = M4;
- pickupID = CreatePickup(353, 2, 1762.1573, -1854.9021, 13.4141, -1);
- gWeaponPickups[pickupID][weaponid] = MP5;
- }
- public SetPickupPickable(pickupID)
- {
- gWeaponPickups[pickupID][pickable] = true;
- }
Add Comment
Please, Sign In to add comment