Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ======================================================
- Sitema Criado Por: SkayBR, CriarPortoes IM-GAME
- Seja Um bom Menino e nao retire os Creditos
- ======================================================
- */
- #include < a_samp >
- #include < DOF2 >
- #include < zcmd >
- #include < sscanf2 >
- #define ZZZ 0x00BFFFFF
- #define AAA 0xFFFF00FF
- #define CCC 0xD3D3D3FF
- #define VVV 0xFF0000FF
- #define EEE 0x00FF00FF
- #define RRR 0xFF1493FF
- #define XXX 0xFFB6C1FF
- #define GGG 0x00FF7FFF
- #define RRX 0xFF69B4FF
- #define VVX 0xFF4500FF
- #define FFF 0x98FB98FF
- #define BBB 0xFFFFFFFF
- #define DIALOG_PORTAO 8765
- #define TextoPortao "{00BFFF}Portao: {FFFFFF}ID: %d\n{00BFFF}Buzine ou /Senhap"
- #define Msg SendClientMessage
- #define MAX_PORTOES 1000
- enum infop
- {
- Senha[24],
- Fechado,
- Grafite,
- Recente,
- Text3D:Texto,
- Float:Xp,
- Float:Yp,
- Float:Zp,
- Float:Xr,
- Float:Yr,
- Float:Zr
- }
- new Portao[MAX_PORTOES][infop], Str[248];
- public OnFilterScriptExit()
- {
- DOF2_Exit();
- return 1;
- }
- public OnFilterScriptInit()
- {
- CarregarPortoes();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Msg(playerid, VVV, "[SkayBR - Scriper]: Sistema de criar portoes IM-GAME");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_PORTAO)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- Msg(playerid, CCC, "INFO: Voce nao digitou a senha!");
- ShowPlayerDialog(playerid, DIALOG_PORTAO, 1,"Portao", "\nDigite a senha do portao","OK", "Sair");
- }
- else // OU
- {
- new ID = GetPVarInt(playerid, "PortaoID");
- if(strcmp(inputtext, Portao[ID][Senha], true) == 0)
- {
- if(Portao[ID][Recente]) return Msg(playerid, CCC, "INFO: Este portao foi abrdo recentemente, aguarde 5 segundo para abri-lo");
- if(Portao[ID][Fechado]) return Msg(playerid, CCC, "INFO: Portao ja esta aberto!");
- AbrirPortao(ID, playerid);
- }
- else // OU
- {
- ShowPlayerDialog(playerid, DIALOG_PORTAO, 1,"Portao", "Senha Errada!\nDigite a senha do portao","OK", "Sair");
- }
- }
- }
- }
- if(dialogid == DIALOG_PORTAO+1)
- {
- if(response)
- {
- new ID = GetPVarInt(playerid, "ID");
- switch(listitem)
- {
- case 0:
- {
- format(Str,sizeof(Str),"Senha Atual: [%s]\nDigite a nova senha do portao!", Portao[ID][Senha]);
- ShowPlayerDialog(playerid, DIALOG_PORTAO+2, 1, "Senha Portao", Str, "OK", "Cancelar");
- }
- case 1:
- {
- if(IsPlayerInRangeOfPoint(playerid, 8.0, Portao[ID][Xp], Portao[ID][Yp], Portao[ID][Zp]))
- {
- EditObject(playerid, Portao[ID][Grafite]);
- }
- else Msg(playerid, CCC, "INFO: Voce deve estar perto do portao para usar a funcao!");
- }
- case 2:
- {
- SetPlayerPos(playerid, Portao[ID][Xp], Portao[ID][Yp]+0.5, Portao[ID][Zp]);
- format(Str,sizeof(Str),"[Portao}: Voce foi ate o portao: [%d]", ID);
- Msg(playerid, XXX, Str);
- }
- case 3:
- {
- DOF2_RemoveFile(PastaPortoes(ID));
- Delete3DTextLabel(Portao[ID][Texto]);
- DestroyObject(Portao[ID][Grafite]);
- format(Str,sizeof(Str),"[Portao}: Voce deletou o portao: [%d]", ID);
- Msg(playerid, VVV, Str);
- }
- }
- }
- }
- if(dialogid == DIALOG_PORTAO+2)
- {
- if(response)
- {
- new ID = GetPVarInt(playerid, "ID");
- if(!strlen(inputtext))
- {
- Msg(playerid, CCC, "INFO: Voce nao digitou a nova senha!");
- format(Str,sizeof(Str),"Senha Atual: [%s]\nDigite a nova senha do portao!", Portao[ID][Senha]);
- ShowPlayerDialog(playerid, DIALOG_PORTAO+2, 1, "Senha Portao", Str, "OK", "Cancelar");
- }
- else
- {
- format(Str,sizeof(Str),"[Portao]: Voce mudou a senha do portao [%d] para: %s", ID, inputtext);
- Msg(playerid, GGG, Str);
- format(Portao[ID][Senha], 24, inputtext);
- SalvarPortaoDados(ID);
- }
- }
- }
- return 1;
- }
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ )
- {
- SetObjectPos ( objectid,fX,fY,fZ );
- SetObjectRot ( objectid,fRotX,fRotY,fRotZ);
- if(response == EDIT_RESPONSE_FINAL)
- {
- SalvarPortaoPosicao(playerid, objectid);
- }
- }
- stock CarregarPortoes()
- {
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(DOF2_FileExists(PastaPortoes(i)))
- {
- CriarPortao(i);
- }
- }
- return 1;
- }
- CMD:criarportao(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, VVV, "INFO: Voce nao pode usar este comando, logue na RCON");
- new pass[24], Float:Pos[3];
- if(sscanf(params,"s[24]", pass)) return Msg(playerid,CCC,"INFO: Use /Criarportao [Senha]");
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(!DOF2_FileExists(PastaPortoes(i)))
- {
- GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
- DOF2_CreateFile(PastaPortoes(i));
- DOF2_SetString(PastaPortoes(i),"Senha", pass);
- DOF2_SetFloat (PastaPortoes(i),"PosX", Pos[0]);
- DOF2_SetFloat (PastaPortoes(i),"PosY", Pos[1]+1);
- DOF2_SetFloat (PastaPortoes(i),"PosZ", Pos[2]);
- DOF2_SetFloat (PastaPortoes(i),"RotX", 0);
- DOF2_SetFloat (PastaPortoes(i),"RotY", 0);
- DOF2_SetFloat (PastaPortoes(i),"RotZ", 0);
- format(Str,sizeof(Str),"[Portao}: Voce criou um portao novo ID: %d com a senha: %s", i, pass);
- Msg(playerid, EEE, Str);
- DOF2_SaveFile();CriarPortao(i); break;
- }
- }
- return 1;
- }
- CMD:senhap(playerid)
- {
- if(!ChecarPortao(playerid)) return Msg(playerid, CCC, "INFO: Voce nao esta perto de um portao!");
- SetPVarInt(playerid, "PortaoID", ChecarPortao(playerid));
- if(Portao[ChecarPortao(playerid)][Recente]) return Msg(playerid, CCC, "INFO: Portao este foi aberdo recentemente, aguarde 5 segundo para abri-lo");
- if(Portao[ChecarPortao(playerid)][Fechado]) return Msg(playerid, CCC, "INFO: Portao ja esta aberto!");
- ShowPlayerDialog(playerid, DIALOG_PORTAO, 1, "Portao", "\nDigite a senha do portao","OK", "Sair");
- return 1;
- }
- CMD:portao(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, VVV, "INFO: Voce nao pode usar este comando, logue na RCON");
- new ID;
- if(sscanf(params,"d", ID)) return Msg(playerid, CCC, "INFO: Use /Portao [ID]");
- if(DOF2_FileExists(PastaPortoes(ID)))
- {
- format(Str,sizeof(Str),"Portao: %d", ID);
- ShowPlayerDialog(playerid, DIALOG_PORTAO+1, 2, Str,
- ">> Mudar Senha\n>> Editar Portao\n>> Ir Portao\n>> Deletar Portao", "Selecionar", "Sair");
- SetPVarInt(playerid, "ID", ID);
- }
- else
- {
- format(Str,sizeof(Str),"INFO: Portao [%d] nao existe", ID);
- Msg(playerid, CCC, Str);
- }
- return 1;
- }
- stock SalvarPortaoDados(ID)
- {
- DOF2_SetString(PastaPortoes(ID),"Senha", Portao[ID][Senha]);
- DOF2_SaveFile();
- return 1;
- }
- stock SalvarPortaoPosicao(playerid, objectid)
- {
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(Portao[i][Grafite] == objectid)
- {
- GetObjectPos(Portao[i][Grafite], Portao[i][Xp], Portao[i][Yp], Portao[i][Zp]);
- GetObjectRot(Portao[i][Grafite], Portao[i][Xr], Portao[i][Yr], Portao[i][Zr]);
- DOF2_SetFloat (PastaPortoes(i),"PosX", Portao[i][Xp]);
- DOF2_SetFloat (PastaPortoes(i),"PosY", Portao[i][Yp]);
- DOF2_SetFloat (PastaPortoes(i),"PosZ", Portao[i][Zp]);
- DOF2_SetFloat (PastaPortoes(i),"RotX", Portao[i][Xr]);
- DOF2_SetFloat (PastaPortoes(i),"RotY", Portao[i][Yr]);
- DOF2_SetFloat (PastaPortoes(i),"RotZ", Portao[i][Zr]);
- DOF2_SaveFile(); Delete3DTextLabel(Portao[i][Texto]);
- CriarTextoPortao(i);
- format(Str,sizeof(Str),"[Portao}: Voce editou a posicao do portao: [%d]", i);
- Msg(playerid, GGG, Str);break;
- }
- }
- return 1;
- }
- stock CriarPortao(ID)
- {
- format(Portao[ID][Senha], 24, DOF2_GetString(PastaPortoes(ID),"Senha"));
- Portao[ID][Xp] = DOF2_GetFloat(PastaPortoes(ID),"PosX");
- Portao[ID][Yp] = DOF2_GetFloat(PastaPortoes(ID),"PosY");
- Portao[ID][Zp] = DOF2_GetFloat(PastaPortoes(ID),"PosZ");
- Portao[ID][Xr] = DOF2_GetFloat(PastaPortoes(ID),"RotX");
- Portao[ID][Yr] = DOF2_GetFloat(PastaPortoes(ID),"RotY");
- Portao[ID][Zr] = DOF2_GetFloat(PastaPortoes(ID),"RotZ");
- /*----------------[ Objecto do Portao ]----------------*/
- Portao[ID][Grafite] = CreateObject(980,
- Portao[ID][Xp],
- Portao[ID][Yp],
- Portao[ID][Zp],
- Portao[ID][Xr],
- Portao[ID][Yr],
- Portao[ID][Zr]);
- /*-----------------------------------------------------*/
- CriarTextoPortao(ID);
- /*-----------------------------------------------------*/
- return 1;
- }
- stock ChecarPortao(playerid)
- {
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 4.0, Portao[i][Xp], Portao[i][Yp], Portao[i][Zp]))
- {
- return i;
- }
- }
- return 0;
- }
- stock AbrirPortao(ID, playerid)
- {
- MoveObject(Portao[ID][Grafite],
- Portao[ID][Xp],
- Portao[ID][Yp],
- Portao[ID][Zp]-6, 5.5);
- SetTimerEx("FecharPortao", 5000, false, "i",Portao[ID][Grafite]);
- Portao[ID][Fechado] = true;
- Delete3DTextLabel(Portao[ID][Texto]);
- GameTextForPlayer(playerid, "~w~Portoao ~g~Aberto", 1000, 4);
- return 1;
- }
- forward FecharPortao(Portaoid); public FecharPortao(Portaoid)
- {
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(Portaoid == Portao[i][Grafite])
- {
- MoveObject(Portao[i][Grafite],
- Portao[i][Xp],
- Portao[i][Yp],
- Portao[i][Zp], 5.5);
- Portao[i][Fechado] = false;
- Portao[i][Recente] = true;
- SetTimerEx("RecentePortao", 5000, false, "i",Portao[i][Grafite]);
- CriarTextoPortao(i);
- break;
- }
- }
- return 1;
- }
- forward RecentePortao(Portaoid); public RecentePortao(Portaoid)
- {
- for( new i = 1; i < MAX_PORTOES; i++)
- {
- if(Portaoid == Portao[i][Grafite])
- {
- Portao[i][Recente] = false; break;
- }
- }
- return 1;
- }
- stock CriarTextoPortao(ID)
- {
- format(Str, 70, TextoPortao, ID);
- Portao[ID][Texto] = Create3DTextLabel(Str, BBB,
- Portao[ID][Xp],
- Portao[ID][Yp],
- Portao[ID][Zp], 20.0,0);
- return 1;
- }
- //---------------[S][K][A][Y][B][R]----------------//
- stock PastaPortoes(ID)
- {
- new string[100];
- format(string, 100, "Portoes/%d.ini", ID);
- return string;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement