Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- !!! AVISO !!!
- Coloque S_LabelCriarDb(); em algum lugar do OnGameModeInit
- !!! AVISO !!!
- Boa Sorte! :)
- */
- //==============================G_Label===========================================
- #define NumeroMaximoLabels (100)
- #define DIALOG_GLABEL (8176)
- #define DIALOG_GLABEL1 (8177)
- enum G_Label
- {
- Label_ID,
- Label_Cor,
- Label_Texto[50],
- Label_Cor2[50],
- Label_Data[50],
- Label_Criador[50],
- Float:Label_X,
- Float:Label_Y,
- Float:Label_Z,
- Text3D:Label_Label,
- };
- new
- DB:LabelDB,
- Sistem_Label_Info[NumeroMaximoLabels][G_Label],
- Ultimo_Label_ID[2];
- forward S_LabelCriarDb();
- public S_LabelCriarDb()
- {
- LabelDB = db_open("labels.db");
- db_query(LabelDB,"CREATE TABLE IF NOT EXISTS `labels` (`ID` NUMBERIC,`Texto` TEXT,`Criador` TEXT,`Data` TEXT,`X` TEXT,`Y` TEXT,`Z` TEXT,`Cor` TEXT)");
- SetTimer("S_CarregarLabels",1500,false);
- return 1;
- }
- forward S_CarregarLabels();
- public S_CarregarLabels()
- {
- LabelDB = db_open("labels.db");
- db_query(LabelDB,"CREATE TABLE IF NOT EXISTS `labels` (`ID` NUMBERIC,`Texto` TEXT,`Criador` TEXT,`Data` TEXT,`X` TEXT,`Y` TEXT,`Z` TEXT,`Cor` TEXT)");
- new Pasta_Labels[100],DBResult:Resultado;
- for(new i = 0; i < NumeroMaximoLabels; i++) {
- format(Pasta_Labels, sizeof(Pasta_Labels),"SELECT * FROM labels WHERE ID = %d",i);
- Resultado = db_query(LabelDB, Pasta_Labels);
- if(db_num_rows(Resultado)) {
- new Informacao_Label[8][50];
- db_get_field_assoc(Resultado,"ID",Informacao_Label[0],50);
- Sistem_Label_Info[i][Label_ID] = strval(Informacao_Label[0]);
- new ID_Label = Sistem_Label_Info[i][Label_ID];
- db_get_field_assoc(Resultado,"X",Informacao_Label[1], 50);
- db_get_field_assoc(Resultado,"Y",Informacao_Label[2], 50);
- db_get_field_assoc(Resultado,"Z",Informacao_Label[3], 50);
- db_get_field_assoc(Resultado,"Data",Informacao_Label[4], 50);
- db_get_field_assoc(Resultado,"Criador",Informacao_Label[5], 50);
- db_get_field_assoc(Resultado,"Cor",Informacao_Label[6], 50);
- db_get_field_assoc(Resultado,"Texto",Informacao_Label[7], 50);
- Sistem_Label_Info[ID_Label][Label_Cor2] = Informacao_Label[6];
- Sistem_Label_Info[ID_Label][Label_Texto] = Informacao_Label[7];
- Sistem_Label_Info[ID_Label][Label_Data] = Informacao_Label[4];
- Sistem_Label_Info[ID_Label][Label_Criador] = Informacao_Label[5];
- Sistem_Label_Info[ID_Label][Label_Cor] = S_PegarCorTexto3d(Informacao_Label[6]);
- Sistem_Label_Info[ID_Label][Label_X] = floatstr(Informacao_Label[1]);
- Sistem_Label_Info[ID_Label][Label_Y] = floatstr(Informacao_Label[2]);
- Sistem_Label_Info[ID_Label][Label_Z] = floatstr(Informacao_Label[3]);
- Sistem_Label_Info[ID_Label][Label_Label] = CreateDynamic3DTextLabel(Informacao_Label[7],S_PegarCorTexto3d(Informacao_Label[6]),Sistem_Label_Info[ID_Label][Label_X],Sistem_Label_Info[ID_Label][Label_Y],Sistem_Label_Info[ID_Label][Label_Z],40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, STREAMER_3D_TEXT_LABEL_SD);
- Ultimo_Label_ID[0] = ID_Label;
- Ultimo_Label_ID[1] = i;}}
- db_free_result(Resultado);
- printf(" Numero de Labels Carregados: %d",Ultimo_Label_ID[0]);
- return 1;
- }
- stock S_PegarCorTexto3d(CorNome[])
- {
- if(!strcmp(CorNome,"red",true)){ return 0xFF0000FF;}else
- if(!strcmp(CorNome,"green",true)){ return 0x00FF00FF;}else
- if(!strcmp(CorNome,"yellow",true)){ return 0xFFFF00FF;}else
- if(!strcmp(CorNome,"darkgreen",true)){ return 0x008B00FF;}else
- if(!strcmp(CorNome,"grey",true)){ return 0xCACACAAA;}else
- if(!strcmp(CorNome,"cyan",true)){ return 0x00BFFFFF;}else
- if(!strcmp(CorNome,"pink",true)){ return 0xFF66FFAA;} // O Ultimo não pode ter "else"
- return -255;
- }
- stock S_PegarLabelJogaodor(playerid)
- {
- new ID_ULTIMO_LABEL = Ultimo_Label_ID[1];
- ID_ULTIMO_LABEL+=1;
- for(new i=0; i<ID_ULTIMO_LABEL; i++){
- new ID_Label = Sistem_Label_Info[i][Label_ID];
- if(IsPlayerInRangeOfPoint(playerid,10.0,Sistem_Label_Info[ID_Label][Label_X],Sistem_Label_Info[ID_Label][Label_Y],Sistem_Label_Info[ID_Label][Label_Z])){
- return ID_Label;}}
- return -255;
- }
- forward S_CriarNovoLabel(playerid);
- public S_CriarNovoLabel(playerid)
- {
- new Float:JogadorPosicao[3],InformacaoLabel[5][50],JogadorTempo[3];
- GetPlayerPos(playerid,JogadorPosicao[0],JogadorPosicao[1],JogadorPosicao[2]);
- GetPVarString(playerid,"Label_Texto",InformacaoLabel[0],50);
- GetPVarString(playerid,"Label_Cor",InformacaoLabel[1],50);
- Ultimo_Label_ID[0]++;
- Ultimo_Label_ID[1]++;
- Sistem_Label_Info[Ultimo_Label_ID[1]][Label_ID] = Ultimo_Label_ID[0];
- new ID_Label = Sistem_Label_Info[Ultimo_Label_ID[1]][Label_ID];
- Sistem_Label_Info[ID_Label][Label_X] = JogadorPosicao[0];
- Sistem_Label_Info[ID_Label][Label_Y] = JogadorPosicao[1];
- Sistem_Label_Info[ID_Label][Label_Z] = JogadorPosicao[2];
- Sistem_Label_Info[ID_Label][Label_Cor2] = InformacaoLabel[1];
- Sistem_Label_Info[ID_Label][Label_Cor] = S_PegarCorTexto3d(InformacaoLabel[1]);
- Sistem_Label_Info[ID_Label][Label_Texto] = InformacaoLabel[0];
- format(InformacaoLabel[2],50,"%s",pName(playerid));
- Sistem_Label_Info[ID_Label][Label_Criador] = InformacaoLabel[2];
- getdate(JogadorTempo[2],JogadorTempo[1],JogadorTempo[0]);
- format(InformacaoLabel[3],50,"%d/%d/%d",JogadorTempo[0],JogadorTempo[1],JogadorTempo[2]);
- Sistem_Label_Info[ID_Label][Label_Data] = InformacaoLabel[3];
- new InserirDbLabel[350];
- format(InserirDbLabel,sizeof(InserirDbLabel),"INSERT INTO `labels`(`ID`,`Texto`,`Criador`,`Data`,`X`,`Y`,`Z`,`Cor`) VALUES ('%d','%s','%s','%s','%f','%f','%f','%s')",ID_Label,InformacaoLabel[0],\
- InformacaoLabel[2],InformacaoLabel[3],JogadorPosicao[0],JogadorPosicao[1],JogadorPosicao[2],InformacaoLabel[1]);
- db_query(LabelDB,InserirDbLabel);
- Sistem_Label_Info[ID_Label][Label_Label] = CreateDynamic3DTextLabel(InformacaoLabel[0],S_PegarCorTexto3d(InformacaoLabel[1]),Sistem_Label_Info[ID_Label][Label_X],Sistem_Label_Info[ID_Label][Label_Y],Sistem_Label_Info[ID_Label][Label_Z],40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, STREAMER_3D_TEXT_LABEL_SD);
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:label(playerid,params[])
- {
- if(PlayerInfo[playerid][LoggedIn] == 0)return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
- if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Level] < 4)return SendClientMessage(playerid,red,"ERROR: You need to be RCON to use this command");{
- ShowPlayerDialog(playerid,DIALOG_GLABEL,DIALOG_STYLE_INPUT,"{00BFFF}Label","{00BFFF}Please insert the text to be placed on the label (nothing with insults)","Next","Close");}
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:removelabel(playerid,params[])
- {
- new RemoverLabelDb[250],LabelRemoverInfo[50]="Null";
- if(PlayerInfo[playerid][LoggedIn] == 0)return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
- if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Level] < 4)return SendClientMessage(playerid,red,"ERROR: You need to be RCON to use this command");{
- if(S_PegarLabelJogaodor(playerid) <=-1)return SendClientMessage(playerid,red,"ERROR: You are not near a label");
- format(RemoverLabelDb,sizeof(RemoverLabelDb),"DELETE FROM `labels` WHERE `ID` = '%d'",S_PegarLabelJogaodor(playerid));
- db_query(LabelDB,RemoverLabelDb);
- new ID_Label = S_PegarLabelJogaodor(playerid);
- DestroyDynamic3DTextLabel(Sistem_Label_Info[ID_Label][Label_Label]);
- Sistem_Label_Info[ID_Label][Label_X] = 0.0;
- Sistem_Label_Info[ID_Label][Label_Y] = 0.0;
- Sistem_Label_Info[ID_Label][Label_Z] = 0.0;
- Sistem_Label_Info[ID_Label][Label_Cor2] = LabelRemoverInfo;
- Sistem_Label_Info[ID_Label][Label_Cor] = -1;
- Sistem_Label_Info[ID_Label][Label_Texto] = LabelRemoverInfo;}
- return 1;
- }
- //==============================G_Label===========================================
- //public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- //{
- //==============================G_Label===========================================
- if(dialogid == DIALOG_GLABEL){
- if(response){
- if(strlen(inputtext) <=0){
- SendClientMessage(playerid,red,"ERROR: You need to enter text to create the label");
- ShowPlayerDialog(playerid,DIALOG_GLABEL,DIALOG_STYLE_INPUT,"{00BFFF}Label","{00BFFF}Please insert the text to be placed on the label (nothing with insults)","Next","Close");}else
- if(strlen(inputtext) >=1){
- SetPVarString(playerid,"Label_Texto",inputtext);
- ShowPlayerDialog(playerid,DIALOG_GLABEL1,DIALOG_STYLE_LIST,"{00BFFF}Label","{FF0000}Red\n{FFFF00}Yellow\n{00FF00}Green\n{008B00}Dark Green\n{CACACA}Grey\n{00BFFF}Cyan\n{FF66FF}Pink","Next","Back");}}}
- if(dialogid == DIALOG_GLABEL1){
- if(!response){
- SetPVarString(playerid,"Label_Texto"," ");
- ShowPlayerDialog(playerid,DIALOG_GLABEL,DIALOG_STYLE_INPUT,"{00BFFF}Label","{00BFFF}Please insert the text to be placed on the label (nothing with insults)","Next","Close");}
- if(response){
- switch (listitem){
- case 0: { SetPVarString(playerid,"Label_Cor","red"); S_CriarNovoLabel(playerid);}
- case 1: { SetPVarString(playerid,"Label_Cor","yellow"); S_CriarNovoLabel(playerid);}
- case 2: { SetPVarString(playerid,"Label_Cor","green"); S_CriarNovoLabel(playerid);}
- case 3: { SetPVarString(playerid,"Label_Cor","darkgreen"); S_CriarNovoLabel(playerid);}
- case 4: { SetPVarString(playerid,"Label_Cor","grey"); S_CriarNovoLabel(playerid);}
- case 5: { SetPVarString(playerid,"Label_Cor","cyan"); S_CriarNovoLabel(playerid);}
- case 6: { SetPVarString(playerid,"Label_Cor","pink"); S_CriarNovoLabel(playerid);}
- }}}
- //==============================G_Label===========================================
- // return 1;
- //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement