Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -------------------------------[Aucuns merites]--------------------------------
- Je ne me permeterais pas de dire que ce script est de moi car une bonne partie de celui-ci est copie des tutoriels du Wiki Sa:-Mp
- et des scripts partages par la communaute Anglophone sur le forum Sa:Mp.
- Les ajustements apportes aux codes copies sont minimes.
- Je vais tacher de regrouper les "sources" ici.
- Jujuv.*/
- /*----------------------[Conseilles aux debutants]---------------
- Il n'y a pas de mal a debuter, a avoir du mal, a ne pas comprendre, [...], mais il ne faut pas bruler les etapes !
- Ainsi copier un code sans y apporter de reel modifications n'est pas une mauvaise chose mais copier un code sans le comprendre est une erreur classique et tragique !!
- Je me suis permis de copier des codes que je comprenais et lorsque ce n'etais pas le cas, je me suis arrete 5 a 10 minutes pour lire les tutoriels ou articles suceptibles de m'aider et je n'ai pas utilise
- le code copie tant que je ne le comprenais pas integralement.
- De plus, je n'ai copie que des codes basiques et libres de droits !
- Il est tout de même possible que j'ai copie un code sans me rendre compte qu'il ete sous licence, si tel est le cas : contactez moi (jujuv.samp {AT} hotmail [DOT] fr)
- Je debute moi même ;-)
- Deuxieme conseille : n'utilisez pas l'IDE de base fourni avec le serveur (Pawno) , preferez en choisir un plus avance (voir http://wiki.sa-mp.com/wiki/Scripting_Editors)
- Perssonelement, j'utilise SAMP Editor.
- A ce propos, un troisieme conseille : ne vous tromper pas dans votre vocabulaire quand vous parler de /scripting/ !
- Ceux qui ne comprenent pas vous croiront doue mais ceux qui ont un niveau plus eleve vous prendront pour un imbecile !
- Ainsi il y a une erreur courrante pour les debutants : ne confondez pas Pawn et Pawno !!
- Pawn est un langage de programmation très haut niveau pour perssonaliser les serveurs Sa:Mp; Pawno , lui est un IDE fourni par la /team Sa:Mp/ avec le logiciel serveur pour Windows !
- /!\Pour la base de la base de la programmation voir : http://www.siteduzero.com/tutoriel-3-361996-par-ou-commencer.html#ss_part_3 (partie 3 uniquement) et http://www.siteduzero.com/tutoriel-3-13920-ayez-les-bons-outils.html#ss_part_1 (Partie 1 du Chapitre 2 de la 1er partie du tutoriel seulement)
- Vous pouvez-vous passer de ces conaissances mais ce serais une grande perte !
- Vous ne comprendriez pas completement ce que vous faites et auriez du mal a passer a un langage informatique plus /difficile/.
- */
- /*-----------------[Message to English scripters]----------------------
- This script is constituted of many basics scripts found on wiki.sa-mp.com and/or forum.sa-mp.com.
- If you are the owner of one or/and if you have a licence for the one , you should contact me at jujuv.games {AT} hotmail [DOT] fr
- You know that internet is realy big and free so you should know that i can't ensure that i can stop the difusion of your code.
- /\
- / \
- / \
- / ! \
- -------- The email i gived is an Hotmail Alias so i can delete it if i get too many spams !
- */
- /*
- -------------------------------[Sources]--------------------------------
- Pour de l'aide, voir : forum.sa-mp.com ou wiki.sa-mp.com
- *Anti Spawn-Kill System : http://forum.sa-mp.com/showthread.php?p=1568257
- *Bases : http://wiki.sa-mp.com/wiki/PAWN_tutorial
- *Bases : http://wiki.sa-mp.com/wiki/Scripting_Basics
- *HeadShot System : http://forum.sa-mp.com/showthread.php?p=802102
- */
- #include <a_samp>
- //Forwards :
- forward AntiSpawnkill(playerid);
- forward GivePlayerScore(playerid, earnedScore);
- forward GetOutPlayerScore(playerid, lostScore);
- //Fin de la liste des Forwards
- //Constantes :
- #define TEAM_TERRO 1
- #define TEAM_COPS 2
- #define TEAM_TERRO_COLOR 0x53555d //Light Black
- #define TEAM_COPS_COLOR 0x0042dc //Blue
- //Fin de la liste des constantes
- //Variables globales
- //Fin de la liste des variables globales
- //Tableaux globales
- //Fin de la liste des tableaux globales
- //Debut du script (Callbacks & Fonctions)
- main()
- {
- print("\n----------------------------------");
- print("Team Death Match Basique");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Testing Script");
- AddPlayerClass(285, 2288.2563,2465.1045,10.8203,102.7608, 31, 250, 23, 1000, 28, 500);
- AddPlayerClass(73 ,1605.4473, 1178.2816, 14.2204, 13.3720, 30, 250, 23, 1000, 32, 500);
- //Cops vehicles
- AddStaticVehicle(598,2277.7202,2478.3662,10.8203,183.91503, 0, 1); //Patrouilleuse
- AddStaticVehicle(598,2273.8252,2478.6213,10.8203,176.1986, 0, 1); //Patrouilleuse
- AddStaticVehicle(598,2268.9844,2478.6133,10.8203,177.1387, 0, 1); //Patrouilleuse
- AddStaticVehicle(599,2259.8948,2459.2444,10.8203,1.6704, 0, 1); // Rancher
- AddStaticVehicle(599,2256.4390,2461.1797,10.8203,177.4520, 0, 1); //Rancher
- AddStaticVehicle(599,2251.8328,2461.1943,10.8203,204.7123, 0, 1); //Rancher
- AddStaticVehicle(427 , 2260.4639,2445.9924,10.8203,355.7169, 0, 1); //Enforcer
- AddStaticVehicle(427 , 2277.7449,2443.4890,10.8203,1.0436, 0, 1); //Enforcer
- //Terrorists Vehicles
- AddStaticVehicle(577, 1572.3068,1188.3766,11.1875,359.8749, 57, 57);// AT400 (Avion)
- AddStaticVehicle(405, 1631.3560,1321.8704,11.1921,359.4152, 57, 57);// sentinel
- AddStaticVehicle(470, 1306.2106,1278.8822,11.2249,2.8879, 57, 57); // Patriot (Humvee)
- AddStaticVehicle(470, 1321.5038,1279.4181,11.1953,357.7491, 57, 57); // Patriot (Humvee)
- AddStaticVehicle(400, 1633.3799,1267.7129,11.1875,91.6029, 57, 57); // Burito
- AddStaticVehicle(482, 1631.0444,1245.0631,11.1875,92.9941, 57, 57); // Burito
- AddStaticVehicle(482, 1630.5090,1299.4934,11.1876,94.6110, 57, 57); // Burito
- AddStaticVehicle(482, 1518.8230,1221.3069,11.1875,359.7036, 57, 57); // Burito
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- /*
- Flemme de prendre les positions :-'
- */
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerTeamFromClass(playerid, classid);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayAudioStreamForPlayer(playerid, "http://jujuv.rd-h.fr/upload/songs/game1.ogg", 0, 0, 0, 0, 0 );
- new pName[MAX_PLAYER_NAME], joinMessage[30 + MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- format(joinMessage, sizeof(joinMessage), "%s a rejoint le serveur !", pName);
- SendClientMessageToAll(0xcc0000, joinMessage);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new pName[MAX_PLAYER_NAME], leaveMsg[39 + MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- switch(reason)
- {
- case 0: format(leaveMsg, sizeof(leaveMsg), "%s a bogue/crashe", pName);
- case 1: format(leaveMsg, sizeof(leaveMsg), "%s a quitte(e) le serveur", pName);
- case 2: format(leaveMsg, sizeof(leaveMsg), "%s a ete expluse(e) du serveur", pName);
- }
- SendClientMessageToAll(0xAAAAAAAA, leaveMsg);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerToTeamColor(playerid);
- SetPlayerHealth(playerid, 10000.0);
- SendClientMessage(playerid, 0xFF0000AA, "[INFO]: Vous etes protege par l'Anti-SpawnKill pour 10 secondes");
- SetPlayerChatBubble(playerid, "[INFO]: Joueur protege contre le SpawnKill", 0xFF0000AA, 100.0, 10000);
- SetTimerEx("AntiSpawnkill",10000,0,"i",playerid);
- return 1;
- }
- public AntiSpawnkill(playerid)
- {
- SetPlayerHealth(playerid, 100.0);
- SendClientMessage(playerid, 0xFF0000AA, "[INFO]: Session Anti-SpawnKill termine.Vous etes dorenavent vulnerable.");
- return 1;
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(issuerid, pName, sizeof(pName));
- HeadShot(playerid, issuerid);
- AntiTeamKill(playerid, issuerid);
- AntiNoFP(playerid, issuerid, weaponid);
- if(weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38 || weaponid == 39 || weaponid == 40 || weaponid == 47 || weaponid == 27 || weaponid == 18 || weaponid == 16)
- {
- BanEx(issuerid, "Cheat/Hack Arme");
- new Float:pHealth;
- GetPlayerHealth(playerid, pHealth);
- new Float:pArmor;
- GetPlayerArmour(playerid, pArmor);
- if(pHealth == 100 && pArmor < 100 && pArmor + amount < 100.1)
- {
- SetPlayerArmour(playerid, pArmor + amount);
- }
- else if(pHealth < 100 && pArmor <= 0)
- {
- if(pHealth + amount <= 100)
- {
- SetPlayerHealth(playerid, pHealth + amount);
- }
- else if(pHealth + amount > 100)
- {
- new Float:pLostHealth = 100 - pHealth;
- SetPlayerHealth(playerid, 100.0);
- SetPlayerArmour(playerid, amount - pLostHealth);
- }
- }
- else
- {
- printf("%s a pris des degats par un cheater mais a 100% de vie est de blindage", pName);
- SendClientMessage(playerid, 0xFF0000AA, "Une erreur innatendue est survenue.Vos point de vies ou d'armure n'ont pu vous être restituer");
- }
- }
- }
- public GivePlayerScore(playerid, earnedScore)
- {
- new oldScore = GetPlayerScore(playerid);
- SetPlayerScore(playerid, oldScore + earnedScore);
- return 1;
- }
- public GetOutPlayerScore(playerid, lostScore)
- {
- new oldScore = GetPlayerScore(playerid);
- SetPlayerScore(playerid, oldScore - lostScore);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(killerid != INVALID_PLAYER_ID)
- {
- GetOutPlayerScore(playerid, 1);
- GivePlayerScore(killerid, 3);
- }
- PlayAudioStreamForPlayer(playerid, "http://jujuv.rd-h.fr/upload/songs/game2.ogg", 0, 0, 0, 0, 0 );
- if(reason == 35 || reason == 36 || reason == 37 || reason == 38 || reason == 39 || reason == 40 || reason == 47 || reason == 27 || reason == 18 || reason == 16)
- {
- BanEx(killerid, "Cheat/Hack Arme");
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/kill", cmdtext, true, 10) == 0)
- {
- SetPlayerHealth(playerid, 0.0);
- return 1;
- }
- return 0;
- }
- SetPlayerTeamFromClass(playerid, classid)
- {
- if (classid == 0)
- {
- SetPlayerTeam(playerid, TEAM_TERRO);
- }
- else
- {
- SetPlayerTeam(playerid, TEAM_COPS);
- }
- }
- SetPlayerToTeamColor(playerid)
- {
- if (GetPlayerTeam(playerid) == TEAM_TERRO)
- {
- SetPlayerColor(playerid, TEAM_TERRO_COLOR);
- GameTextForPlayer(playerid, "~l~Terroristes !", 4000, 0);
- }
- else if (GetPlayerTeam(playerid) == TEAM_COPS)
- {
- SetPlayerColor(playerid, TEAM_COPS_COLOR);
- GameTextForPlayer(playerid, "~b~Policiers !", 4000, 0);
- }
- }
- HeadShot(playerid, issuerid)
- {
- new pAnim = GetPlayerAnimationIndex(playerid);
- if(pAnim == 1173 || pAnim == 1175 || pAnim == 1177 || pAnim == 1178)
- {
- GameTextForPlayer(playerid, "~r~HeadShoted !", 4000, 0);
- SetPlayerHealth(playerid, 0.0);
- GameTextForPlayer(issuerid, "~g~HeadShot !", 2000, 0);
- GivePlayerScore(issuerid, 5);
- GetOutPlayerScore(playerid, 3);
- }
- }
- AntiTeamKill(playerid, issuerid)
- {
- if(GetPlayerTeam(issuerid) == GetPlayerTeam(playerid))
- {
- SendClientMessageToAll(0xcc0000, "Admin-Bot : le tire-ami est strictement interdis !");
- SetPlayerHealth(issuerid, 0.0);
- GetOutPlayerScore(issuerid, 5);
- }
- }
- AntiNoFP(playerid, issuerid, weaponid)
- {
- /*
- Weapon id 50 : Helli-Kill
- Weapon id 49 : Car-kill
- (ou inverssement ...)
- */
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(issuerid, pName, sizeof(pName));
- if(weaponid == 50 || weaponid == 49)
- {
- new badKillMsg[100];
- format(badKillMsg, sizeof(badKillMsg), "%s a ete expulse du serveur : l'HelliKill et le car-kill sont strictement interdit !", pName);
- SetPlayerScore(issuerid, GetPlayerScore(issuerid) / 2);
- SendClientMessageToAll(0xcc0000, badKillMsg);
- Kick(issuerid);
- SetPlayerHealth(playerid, 100.0);
- GivePlayerScore(playerid, 3);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement