Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Includes */
- #include <a_samp>
- #include <a_zones>
- #include <zcmd>
- #include <sscanf2>
- #include <streamer>
- /* Definições */
- #define MAX_NATAL (10) // Define o maximo de Árvores de Natal.
- #define UPDATE_TEXT_LABEL (200) // Define por quantos milesegundo a textlabel será atualizada.
- #define PRESENTE_DELAY (3600) // Define quantos segundos o player poderá usar o comando '/pegarpresente' novamente.
- /* Variaveis */
- new PresenteTempo[MAX_PLAYERS];
- enum enumNatal {
- n_Objects[5],
- Float:n_Position[3],
- Text3D: n_TextLabel[2]
- }
- new Natal[MAX_NATAL][enumNatal];
- /* Comandos */
- CMD:criarnatal(playerid, params[]) {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
- new Nome[MAX_PLAYER_NAME+1], Mensagem[158], Zone_Name[28];
- for(new i; i < MAX_NATAL; i++) {
- if(Natal[i][n_Position][0] == 0 && Natal[i][n_Position][1] == 0) {
- GetPlayerPos(playerid, Natal[i][n_Position][0], Natal[i][n_Position][1], Natal[i][n_Position][2]);
- SetPlayerPos(playerid, Natal[i][n_Position][0]+3, Natal[i][n_Position][1], Natal[i][n_Position][2]);
- Criar_Natal(i);
- SetTimer("Update_Text_Natal", UPDATE_TEXT_LABEL, true);
- GetPlayerName(playerid, Nome, sizeof(Nome));
- GetPlayer2DZone(playerid, Zone_Name, 28);
- format(Mensagem, sizeof(Mensagem), "{FF3333}[ * Natal * ] %s{D9FF00} Está convidando a todos para vir até {FF3333}%s{D9FF00} para receber presentes!", Nome, Zone_Name);
- SendClientMessageToAll(-1, Mensagem);
- format(Mensagem, sizeof Mensagem, "{A8A8A8}›› Você criou uma Árvore de Natal. #ID {E36D6D}%i{FFFFFF}.", i);
- return SendClientMessage(playerid, -1, Mensagem);
- }
- }
- return 1;
- }
- CMD:destruirnatal(playerid, params[]) {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
- new Natal_ID, Mensagem[128];
- if(sscanf(params, "i", Natal_ID)) return SendClientMessage(playerid, -1, "{F55151}Use:{FFFFFF} /destruirnatal [{FA7373}natalid{FFFFFF}]");
- if(0 <= Natal_ID < MAX_NATAL) {
- if(Natal[Natal_ID][n_Position][0] == 0 && Natal[Natal_ID][n_Position][1] == 0) return SendClientMessage(playerid, -1, "{FF6B6B}Este Natal ID não está sendo usado!");
- Destruir_Natal(Natal_ID);
- format(Mensagem, sizeof(Mensagem), "{A8A8A8}›› Você destruiu uma Árvore de Natal. #ID {E36D6D}%i{FFFFFF}.", Natal_ID);
- SendClientMessage(playerid, -1, Mensagem);
- }
- else SendClientMessage(playerid, -1, "Árvore de Natal inválida.");
- return 1;
- }
- CMD:resetarpresentetempo(playerid, params[]) {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{F76060}Somente Administradores RCON pode usar este comando!");
- new Alvo, Mensagem[128], Nome[MAX_PLAYER_NAME+1];
- if(sscanf(params, "i", Alvo)) return SendClientMessage(playerid, -1, "{F55151}Use:{FFFFFF} /resetarpresentetempo [{FA7373}playerid{FFFFFF}]");
- PresenteTempo[Alvo] = 0;
- GetPlayerName(playerid, Nome, sizeof(Nome));
- format(Mensagem, sizeof(Mensagem), "{84E64C}O administrador %s resetou seu tempo de pegar presente agora você pode pegar presente novamente.", Nome);
- SendClientMessage(playerid, -1, Mensagem);
- return 1;
- }
- CMD:pegarpresente(playerid, params[]) {
- if(gettime() - PresenteTempo[playerid] < PRESENTE_DELAY) return SendClientMessage(playerid, -1, "{F76060}››{FFFfFF} Você já abriu uma caixa de presentes é necessario esperar 1 hora para usar este comando novamente!");
- for(new i; i < MAX_NATAL; i++) {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, Natal[i][n_Position][0], Natal[i][n_Position][1], Natal[i][n_Position][2])) {
- new iRand = random(5), Mensagem[128], Nome[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, Nome, sizeof(Nome));
- switch(iRand) {
- case 0: {
- GivePlayerMoney(playerid, 50000);
- format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou {048704}$50,000{B7FA00}.");
- SendClientMessageToAll(1, Mensagem);
- }
- case 1: {
- GivePlayerWeapon(playerid, 24, 99999);
- GivePlayerWeapon(playerid, 29, 99999);
- GivePlayerWeapon(playerid, 31, 99999);
- GivePlayerWeapon(playerid, 34, 99999);
- GivePlayerWeapon(playerid, 4, 1);
- format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou um {02D185}Kit de Armas{B7FA00}.");
- SendClientMessageToAll(1, Mensagem);
- }
- case 2: {
- GivePlayerWeapon(playerid, 9, 1);
- format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou uma {F5F50C}Motosserra{B7FA00}.");
- SendClientMessageToAll(1, Mensagem);
- }
- case 3: {
- GivePlayerWeapon(playerid, 38, 5000);
- format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou uma {F5F50C}Minigun{B7FA00}.");
- SendClientMessageToAll(1, Mensagem);
- }
- case 4: {
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
- format(Mensagem, sizeof(Mensagem), "{00FA3A}(Árvore de Natal){B7FA00} %s abriu uma das caixas de presentes e ganhou um {F5F50C}JetPack{B7FA00}.");
- SendClientMessageToAll(1, Mensagem);
- }
- }
- PresenteTempo[playerid] = gettime();
- }
- }
- return 1;
- }
- /* Callbacks */
- public OnFilterScriptInit()
- {
- print("* ----------------------------------------------------- *");
- print(" Nome do Filter Script: Árvore de Natal");
- print(" Criado por: NurbWill");
- print(" Includes: zcmd, sscanf e streamer.");
- print(" Skype: Nurb.Will - Profile SA-MP: http://forum.sa-mp.com/member.php?u=220166");
- print("* ----------------------------------------------------- *");
- return 1;
- }
- forward Update_Text_Natal();
- public Update_Text_Natal() {
- new Label_String[128];
- new const Cores[][] = {"FF0000", "FF00C3", "1500FF", "FFEA00", "FF6200", "15FF00", "6705A8", "3CE8E5", "FF6D05", "768705", "FF00CC", "FFFFFF"};
- format(Label_String, sizeof(Label_String), "{%s}F{%s}e{%s}l{%s}i{%s}z {%s}N{%s}a{%s}t{%s}a{%s}l{%s}!{%s}", Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))], Cores[random(sizeof(Cores))]);
- for(new i; i < MAX_NATAL; i++) UpdateDynamic3DTextLabelText(Natal[i][n_TextLabel][0], -1, Label_String);
- }
- stock Criar_Natal(id) {
- new Label_String[128];
- Natal[id][n_Objects][0] = CreateDynamicObject(19076, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2]-0.9, 0.00000, 0.00000, 0.20201);
- Natal[id][n_Objects][1] = CreateDynamicObject(19054, Natal[id][n_Position][0]+1.5, Natal[id][n_Position][1]+1, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
- Natal[id][n_Objects][2] = CreateDynamicObject(19055, Natal[id][n_Position][0]-1.5, Natal[id][n_Position][1]-1, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -10.91999);
- Natal[id][n_Objects][3] = CreateDynamicObject(19056, Natal[id][n_Position][0]+1.5, Natal[id][n_Position][1]-1.5, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
- Natal[id][n_Objects][4] = CreateDynamicObject(19057, Natal[id][n_Position][0]-1.5, Natal[id][n_Position][1]+1.5, Natal[id][n_Position][2]-0.5, 0.00000, 0.00000, -13.68000);
- Natal[id][n_TextLabel][0] = CreateDynamic3DTextLabel("Feliz Natal", 0x008080FF, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2]+11.0, 40.0);
- format(Label_String, sizeof(Label_String), "{2BFF00}Árvore {FFFB00}de {FF0A0A}Natal\n{FFFB00}Use '{0004FF}/pegarpresente{FFFB00}' para abrir uma das caixas\nID: {94AD03}%i", id);
- Natal[id][n_TextLabel][1] = CreateDynamic3DTextLabel(Label_String, 0x008080FF, Natal[id][n_Position][0], Natal[id][n_Position][1], Natal[id][n_Position][2], 10.0);
- printf("[Natal] Árvore de Natal #%i criado com sucesso.", id);
- }
- stock Destruir_Natal(id) {
- Natal[id][n_Position][0] = 0;
- Natal[id][n_Position][1] = 0;
- Natal[id][n_Position][2] = 0;
- for(new i; i < 5; i++) DestroyDynamicObject(Natal[id][n_Objects][i]);
- DestroyDynamic3DTextLabel(Natal[id][n_TextLabel][0]);
- DestroyDynamic3DTextLabel(Natal[id][n_TextLabel][1]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement