Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // filescript de Evento Flecha (v1.2). By Chanfa
- //
- // si desean encontrarme en el foro busquenme como 'cocolabush' en la seccion Español.
- // ___________
- // ____________________________________|||||||||||____________________________________
- // ____________________________________INFORMACION____________________________________
- // |||||||||||
- // 09/10/2010 ¯¯¯¯¯¯¯¯¯¯¯
- // Sistema de creación de flecha sobre determinado jugador
- // Sistema de cambio portador al asesino
- // Sistema de restriccion para la iniciación (solo los admins estan autorizados)
- // Sistema simplificado para cambiar opciones visuales (offset y obj_flecha)
- //
- // 11/10/2010
- // Corregido el "bug 3": El error consistia en que solo parte de los usuarios veian la flecha
- // Sistema de cambio de color al iniciar y de restauracion del color anterior al finalizar el evento
- // Agregado texto del evento
- //
- // 12/10/2010 (v1.1) [no fue publicado]
- // Agregados nuevos "define" para hacer mas facil la modificacion
- // Agregados textdraws especificos del evento
- //
- // 12/10/2010 (v1.2)
- // Sistema de recuperacion de colores al azar tras cierre de Filescript o la finalisacion del evento
- //
- // NOTA: Es recomendado utilizar este filescript solo en DM o FR por razones obvias.
- // Se recomienda tener un comando /color en el GameMode ya que al finalizar el evento se
- // selecciona uno al azar.
- //
- #include <a_samp>
- #define offset 2 // Cambiar por la altura buscada sobre el jugador portador
- #define obj_flecha 1318 // Cambiar por el ID del objeto que se quira hacer aparecer en la cabeza del portador (recomendado: 1318)
- #define color_Portador 0xFF4040FF // Cambiar por el color que lleve el Portador (predeterminado: 0xFF4040FF)
- #define color_Resto 0xFFFF4055 // Cambiar por el color que lleve el Resto (predeterminado: 0xFFFF4055)
- #define color_Titulos 0xFA8072FF // Cambiar por el color que lleven los titulos
- #define color_Textos 0xFAFAD2FF // Cambiar por el color que lleven los textos (IMPORTANTE: No son los colores de los textdraws sino de la info de la consola)
- forward Suplantar();
- new Flecha;
- new Portador;
- new Empezado = 0;
- new Suplente;
- new Text:TEvento;
- new Text:TPoseedor;
- new StringPortador[MAX_PLAYER_NAME + 10];
- new Colores[] = {
- 0xFF8C13FF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEEDC2DFF,
- 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
- };
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Evento Flecha [DM] v1.2\n |By Chanfa|");
- print("--------------------------------------\n");
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, color_Titulos, "Evento disponible: Flecha");
- SendClientMessage(i, color_Textos, "utiliza /Empezar");
- }
- }
- TEvento = TextDrawCreate(421.000000, 407.000000, "Evento Flecha Iniciado ..."); // en el caso de querer modificar
- TextDrawBackgroundColor(TEvento, 255); // algo de los textdraws modifique
- TextDrawFont(TEvento, 0); // cualquier cosa menos el string
- TextDrawLetterSize(TEvento, 0.739999, 3.399998); // de TPoseedor
- TextDrawColor(TEvento, -16776961);
- TextDrawSetOutline(TEvento, 0);
- TextDrawSetProportional(TEvento, 1);
- TextDrawSetShadow(TEvento, 1);
- TPoseedor = TextDrawCreate(9.000000, 432.000000, "Portador: ...");
- TextDrawBackgroundColor(TPoseedor, 255);
- TextDrawFont(TPoseedor, 1);
- TextDrawLetterSize(TPoseedor, 0.500000, 1.000000);
- TextDrawColor(TPoseedor, -65281);
- TextDrawSetOutline(TPoseedor, 0);
- TextDrawSetProportional(TPoseedor, 1);
- TextDrawSetShadow(TPoseedor, 1);
- return 1;
- }
- stock Suplantar()
- {
- Atras:
- Suplente = random(MAX_PLAYERS);
- if(!IsPlayerConnected(Suplente)) { goto Atras; }
- if(IsPlayerNPC(Suplente)) { goto Atras; }
- AttachObjectToPlayer(Flecha, Suplente, 0, 0, offset, 0, 0, 0);
- Portador = Suplente;
- SetPlayerColor(Suplente, color_Portador);
- new Nombre[MAX_PLAYER_NAME];
- GetPlayerName(Suplente, Nombre, sizeof(Nombre));
- format(StringPortador, sizeof(StringPortador), "Portador: %s", Nombre);
- TextDrawSetString(TPoseedor, StringPortador);
- TextDrawShowForAll(TPoseedor);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(Empezado == 1)
- {
- if(killerid != INVALID_PLAYER_ID && playerid == Portador)
- {
- AttachObjectToPlayer(Flecha, killerid, 0, 0, offset, 0, 0, 0);
- Portador = killerid;
- new Nombre[MAX_PLAYER_NAME];
- GetPlayerName(killerid, Nombre, sizeof(Nombre));
- format(StringPortador, sizeof(StringPortador), "Portador: %s", Nombre);
- TextDrawSetString(TPoseedor, StringPortador);
- TextDrawShowForAll(TPoseedor);
- SetPlayerColor(playerid, color_Resto);
- SetPlayerColor(killerid, color_Portador);
- }
- else if(killerid == INVALID_PLAYER_ID && playerid == Portador)
- {
- SetPlayerColor(Portador, color_Resto);
- Suplantar();
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/Empezar", cmdtext, true, 10) == 0 && IsPlayerAdmin(playerid))
- {
- if(Empezado == 0)
- {
- Flecha = CreateObject(obj_flecha, 0, 0, -100, 0.0, 0.0, 0);
- AttachObjectToPlayer(Flecha, playerid, 0, 0, offset, 0, 0, 0);
- SendClientMessageToAll(color_Titulos, "Empieza la matanza!");
- SendClientMessageToAll(color_Textos, "Aniquila al jugador que tiene la flecha.");
- Portador = playerid;
- new Nombre[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Nombre, sizeof(Nombre));
- format(StringPortador, sizeof(StringPortador), "Portador: %s", Nombre);
- TextDrawSetString(TPoseedor, StringPortador);
- TextDrawShowForAll(TPoseedor);
- TextDrawShowForAll(TEvento);
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- SetPlayerColor(i, color_Resto);
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, color_Textos, "Para terminar: /Finalizar o /Terminar");
- }
- }
- }
- SetPlayerColor(Portador, color_Portador);
- Empezado = 1;
- }
- else
- {
- SendClientMessage(playerid, color_Textos, "El evento ya comenzo.");
- }
- return 1;
- }
- if ((strcmp("/Finalizar", cmdtext, true, 10) == 0 || strcmp("/Terminar", cmdtext, true, 10) == 0) && IsPlayerAdmin(playerid))
- {
- if(Empezado == 1)
- {
- DestroyObject(Flecha);
- format(StringPortador, sizeof(StringPortador), "Portador: ...");
- TextDrawSetString(TPoseedor, StringPortador);
- TextDrawHideForAll(TPoseedor);
- TextDrawHideForAll(TEvento);
- SendClientMessageToAll(color_Titulos, "Evento finalizado");
- Empezado = 0;
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- SetPlayerColor(i, Colores[random(sizeof(Colores))]);
- }
- }
- else
- {
- SendClientMessage(playerid, color_Textos, "El evento no esta en progreso.");
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerSpawn(playerid)
- {
- if(Empezado == 1)
- {
- if(playerid == Portador)
- {
- AttachObjectToPlayer(Flecha, playerid, 0, 0, offset, 0, 0, 0);
- SetPlayerColor(Portador, color_Portador);
- }
- else { SetPlayerColor(Portador, color_Resto); }
- TextDrawShowForPlayer(playerid, TPoseedor);
- TextDrawShowForPlayer(playerid, TEvento);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(Empezado == 1 && playerid == Portador)
- {
- SetPlayerColor(Portador, color_Resto);
- Suplantar();
- }
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- if(playerid == Portador)
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(forplayerid, x, y, z);
- MoveObject(Flecha, x, y, z, 1000000);
- AttachObjectToPlayer(Flecha, playerid, 0, 0, offset, 0, 0, 0);
- TextDrawShowForPlayer(playerid, TPoseedor);
- TextDrawShowForPlayer(playerid, TEvento);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(Empezado == 1)
- {
- if(playerid == Portador)
- {
- SetPlayerColor(playerid, color_Portador);
- AttachObjectToPlayer(Flecha, playerid, 0, 0, offset, 0, 0, 0);
- }
- else SetPlayerColor(playerid, color_Resto);
- TextDrawShowForPlayer(playerid, TPoseedor);
- TextDrawShowForPlayer(playerid, TEvento);
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- DestroyObject(Flecha);
- format(StringPortador, sizeof(StringPortador), "Portador: ...");
- TextDrawSetString(TPoseedor, StringPortador);
- TextDrawHideForAll(TPoseedor);
- TextDrawHideForAll(TEvento);
- SendClientMessageToAll(color_Titulos, "Evento finalizado");
- Empezado = 0;
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- SetPlayerColor(i, Colores[random(sizeof(Colores))]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment