Показано с 1 по 1 из 1

Тема: [Мануал] Dj-Panel как на нетварсе

  1. #1
    Аватар для РустиК
    Активный участник
    Регистрация
    25.12.2012
    Сообщений
    104
    Благодарностей
    0
    Сказали спасибо: 22

    [Мануал] Dj-Panel как на нетварсе

    Всем привет, кто знает DJ панель в нетварсе
    Вот его копия

    После #include <a_samp>
    PHP код:
    #include <sscanf2> // у вас должен быть sscanf2 инклуд и sscanf плагин !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    ко всем new
    PHP код:
    new RedakMuz[MAX_PLAYERS];
    enum infoTrack
    {
        
    TrackName[500],
        
    TrackURL[500]
    }
    new 
    PlayList[20][infoTrack];
    new 
    TrackOnly;
    new 
    PlayerText:TrackListLeft[21]= {PlayerText:-1, ...};
    new 
    Text:PlayListUSEbox[8];
    new 
    Text:DJpanelText;
    new 
    Float:TrackListUSEboxX[8] = {226.000000,622.000000,224.399993,630.799987,504.400024,417.200012,324.400024,618.000000};
    new 
    Float:TrackListUSEboxY[8] = {135.153335,135.153335,135.900009,397.979980,398.726654,399.473327,399.473327,135.153335};
    new 
    Float:TrackListBoxSize[2][8] =
    {
        {
    27.061113,27.144075,1.591480,2.338148,2.172224,2.089261,2.338148,1.757408},
        {
    18.000000,402.000000,20.399999,566.000000,553.200012,486.800018,390.000000,404.399993}
    };
    new 
    JanrName[2][30] = { "DubStep","Exit"};
    new 
    Text:TrackListJanr[2];
    new 
    Float:TrackJanrX[4] = {331.999938,436.800109,504.799926,587.200134};
    new 
    Float:TrackJanrTextsize[4] = {375.999908,470.399963,553.599914,614.400085};
    new 
    Djcords;
    new 
    bool:FixDJCords[MAX_PLAYERS];
    //-----------// 
    дальше в public ongamemodeinit
    PHP код:
    //---
        
    for(new xx<sizeof(PlayListUSEbox); x++)
        {
            
    PlayListUSEbox[x] = TextDrawCreate(TrackListUSEboxX[x], TrackListUSEboxY[x], "usebox");
            
    TextDrawLetterSize(PlayListUSEbox[x], 0.000000TrackListBoxSize[0][x]);
            
    TextDrawTextSize(PlayListUSEbox[x], TrackListBoxSize[1][x], 0.000000);
            
    TextDrawAlignment(PlayListUSEbox[x], 1);
            
    TextDrawColor(PlayListUSEbox[x], 0);
            
    TextDrawUseBox(PlayListUSEbox[x], true);
            
    TextDrawBoxColor(PlayListUSEbox[x], 102);
            
    TextDrawSetShadow(PlayListUSEbox[x], 0);
            
    TextDrawSetOutline(PlayListUSEbox[x], 0);
            
    TextDrawFont(PlayListUSEbox[x], 0);
        }
        for(new 
    yy<sizeof(TrackListJanr); y++)
        {
            
    TrackListJanr[y] = TextDrawCreate(TrackJanrX[y], 399.466583JanrName[y]);
            
    TextDrawLetterSize(TrackListJanr[y], 0.4660002.010667);
            
    TextDrawTextSize(TrackListJanr[y], TrackJanrTextsize[y], 18.666667);
            
    TextDrawAlignment(TrackListJanr[y], 1);
            
    TextDrawColor(TrackListJanr[y], -1);
            
    TextDrawSetShadow(TrackListJanr[y], 0);
            
    TextDrawSetOutline(TrackListJanr[y], 1);
            
    TextDrawBackgroundColor(TrackListJanr[y], 51);
            
    TextDrawFont(TrackListJanr[y], 1);
            
    TextDrawSetProportional(TrackListJanr[y], 1);
            
    TextDrawSetSelectable(TrackListJanr[y], 1);
        }
        
    DJpanelText TextDrawCreate(68.800018132.906616"Dj Panel");
        
    TextDrawLetterSize(DJpanelText0.6252001.883733);
        
    TextDrawAlignment(DJpanelText1);
        
    TextDrawColor(DJpanelText, -1);
        
    TextDrawSetShadow(DJpanelText0);
        
    TextDrawSetOutline(DJpanelText1);
        
    TextDrawBackgroundColor(DJpanelText51);
        
    TextDrawFont(DJpanelText1);
        
    TextDrawSetProportional(DJpanelText1);
        
    Djcords CreateDynamicRectangle(476.4002,-16.2831,475.0897,-13.5279);
        
    LoadPlayList();
        
    //--- 
    дальше в public onplayerconnect
    PHP код:
    for(new ii<10i++)
        {
            
    TrackListLeft[i] = CreatePlayerTextDraw(playerid,21.600006160.533294+i*20"Track");
            
    PlayerTextDrawLetterSize(playerid,TrackListLeft[i],  0.4499991.600000);
            
    PlayerTextDrawTextSize(playeridTrackListLeft[i], 219.20005718.426670);
            
    PlayerTextDrawAlignment(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawColor(playerid,TrackListLeft[i], -1);
            
    PlayerTextDrawSetShadow(playerid,TrackListLeft[i], 0);
            
    PlayerTextDrawSetOutline(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawBackgroundColor(playerid,TrackListLeft[i], 51);
            
    PlayerTextDrawFont(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawSetOutline(playerid,TrackListLeft[i], 0);
            
    PlayerTextDrawSetProportional(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawSetSelectable(playerid,TrackListLeft[i], 1);
        }
        for(new 
    10i<20i++)
        {
            
    TrackListLeft[i] = CreatePlayerTextDraw(playerid,406.400146159.039978+(i-10)*20"Track");
            
    PlayerTextDrawLetterSize(playerid,TrackListLeft[i], 0.4499991.600000);
            
    PlayerTextDrawTextSize(playeridTrackListLeft[i], 616.00000018.933330);
            
    PlayerTextDrawAlignment(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawColor(playerid,TrackListLeft[i], -1);
            
    PlayerTextDrawSetShadow(playerid,TrackListLeft[i], 0);
            
    PlayerTextDrawSetOutline(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawBackgroundColor(playerid,TrackListLeft[i], 51);
            
    PlayerTextDrawFont(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawSetProportional(playerid,TrackListLeft[i], 1);
            
    PlayerTextDrawSetSelectable(playerid,TrackListLeft[i], 1);
        } 
    В public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) если нету то создаём
    PHP код:
            new string[65];
        if(
    FixDJCords[playerid])
        {
            if(
    _:playertextid == 65535SelectTextDraw(playerid0xAFAFAFFF);
            for(new 
    ii<sizeof(TrackListLeft); i++)
            {
                if(
    playertextid == TrackListLeft[i])
                {
                    
    format(stringsizeof(string),"Звучит музыка: %s",PlayList[i][TrackName]);
                    
    SendClientMessage(playerid,-1,string);
                    new 
    GetMaxPlayers();
                    do
                    {
                        --
    x;
                        
    PlayAudioStreamForPlayer(xPlayList[i][TrackURL], 487.9597,-13.9757,1000.812340);
                    }
                    while(
    x);
                }
            }
        }

    В public OnPlayerClickTextDraw(playerid, Text:clickedid) если нету то создаём
    PHP код:
    if(FixDJCords[playerid]) 
        { 
           if(
    _:clickedid == 65535SelectTextDraw(playerid0xAFAFAFFF); 
           else if(
    clickedid == TrackListJanr[0]) 
           { 
             
    ShowPlayList(playerid); 
           } 
           else if(
    clickedid == TrackListJanr[1]) 
           { 
                
    CancelSelectTextDraw(playerid); 
                for(new 
    xx<sizeof(PlayListUSEbox); x++) TextDrawHideForPlayer(playeridPlayListUSEbox[x]); 
                for(new 
    yy<sizeof(TrackListJanr); y++) TextDrawHideForPlayer(playeridTrackListJanr[y]); 
                
    TextDrawHideForPlayer(playeridDJpanelText); 
                
    FixDJCords[playerid] = false
                for(new 
    022i++) PlayerTextDrawHide(playeridTrackListLeft[i]); 
                } 
        } 
        } 

    ко всем командам
    PHP код:
    else if(strcmp(cmd"/newtracks"true) == 0)
        {
            new 
    cstring[128];
            
    strcat(cstring,"{33AAFF}Введите название новой Музыки и Адрес (URL) через запятую\n");
             
    strcat(cstring,"{33AAFF}Пример: {83D02A}TrancOnLy,http://melody.uz:8003/europa\n");
            
    ShowPlayerDialog(playerid48791"Новая Музыки"cstring"Создать""Отмена");
             return 
    true;
        }
        else if(
    strcmp(cmd"/tracklist"true) == 0)
        {
            new 
    str[128], strs[128];
             for(new 
    fsizeof(PlayList); f++)
              {
                   
    format(strsizeof(str), "[%d]%s\n"f+1PlayList[f][TrackName],PlayList[f][TrackURL]);
                 
    strcat(strs,str);
               }
               
    ShowPlayerDialog(playerid9942DIALOG_STYLE_LIST"Редактирование Музыки и Адресс(URL)"strs"Выбрать""Отмена");
               return 
    true;
        } 
    Далее ко всем диалогам
    PHP код:
    case 4879
            { 
                if(
    response
                { 
                    if(!
    strlen(inputtext)) 
                    { 
                           
    strcat(string,"{33AAFF}Введите название новой Музыки и Адрес (URL) через запятую\n"); 
                        
    strcat(string,"{33AAFF}Пример:{83D02A}\tTrancOnLy,http://melody.uz:8003/europa\n"); 
                        
    ShowPlayerDialog(playerid48791"Название Музыки"string"Создать""Отмена"); 
                    } 
                    if(
    strfind(inputtext,"http://",true) != -&& strfind(inputtext,".uz",true) != -1
                    { 
                        new 
    namemusic[128], nameurl[128]; 
                        
    sscanf(inputtext"p<,>s[128]s[128]"namemusicnameurl); 
                        
    SetString(PlayList[TrackOnly][TrackURL], nameurl); 
                        
    SetString(PlayList[TrackOnly][TrackName], namemusic); 
                        
    format(string,sizeof(string),"Музыки '%s  URL:%s' успешно создано"namemusic,nameurl); 
                        
    SendClientMessage(playeridCOLOR_LIGHTBLUEstring); 
                        
    SavePlayList(); 
                    } 
                } 
            } 
            case 
    9942
            { 
                if(
    response
                { 
                    
    strcat(string,"{33AAFF}Вы хотите редактировать Музыку %s\n",PlayList[listitem][TrackName]); 
                    
    strcat(string,"{33AAFF}Введите название новой Музыки и Адрес (URL) через запятую\n"); 
                    
    strcat(string,"{33AAFF}Пример:{83D02A}\tTrancOnLy,http://melody.uz:8003/europa\n"); 
                    
    ShowPlayerDialog(playerid48801"Название Музыки"string"Создать""Отмена"); 
                    
    RedakMuz[playerid] = listitem
                    return 
    true
                } 
                return 
    true
            } 
            case 
    4880
            { 
                if(
    response
                { 
                    new 
    count RedakMuz[playerid]; 
                    if(!
    strlen(inputtext)) 
                    { 
                           
    strcat(string,"{33AAFF}Вы хотите редактировать Музыку %s\n",PlayList[count][TrackName]); 
                        
    strcat(string,"{33AAFF}Введите название новой Музыки и Адрес (URL) через запятую\n"); 
                        
    strcat(string,"{33AAFF}Пример:{83D02A}\tTrancOnLy,http://melody.uz:8003/europa\n"); 
                        
    ShowPlayerDialog(playerid48801"Название Музыки"string"Создать""Отмена"); 
                    } 
                    if(
    strfind(inputtext,"http://",true) != -&& strfind(inputtext,".uz",true) != -1
                    { 
                        new 
    namemusic[128], nameurl[128]; 
                        
    sscanf(inputtext"p<,>s[128]s[128]"namemusicnameurl); 
                        
    SetString(PlayList[count][TrackURL], nameurl); 
                        
    SetString(PlayList[count][TrackName], namemusic); 
                        
    format(string,sizeof(string),"Музыки '%s  URL:%s' успешно создано"namemusic,nameurl); 
                        
    SendClientMessage(playeridCOLOR_LIGHTBLUEstring); 
                        
    RedakMuz[playerid] = -1
                        
    SavePlayList(); 
                    } 
                } 
            } 
    Далее в самый низ мода, создадим загрузку музыки и сохранение
    PHP код:
    stock LoadPlayList() 

        new 
    arrCoords[3][100]; 
        new 
    strFromFile2[256]; 
        new 
    Filefile fopen("[PlayList]/PlayerLists.ini"io_read); 
        if (
    file
        { 
            new 
    idx
            while (
    idx sizeof(PlayList)) 
            { 
                
    fread(filestrFromFile2); 
                
    split(strFromFile2arrCoords'|'); 
                
    strmid(PlayList[idx][TrackName], arrCoords[0], 0strlen(arrCoords[0]), 255); 
                
    strmid(PlayList[idx][TrackURL], arrCoords[1], 0strlen(arrCoords[1]), 255); 
                
    idx++; 
            } 
            
    fclose(file); 
            
    printf("[ Загрузка ... ] %d PlayList успешно загружены.",idx,TrackOnly); 
        } 
        else 
        { 
            for (new 
    0sizeof(PlayList); ++) 
            { 
                
    SetString(PlayList[i][TrackName],"No_Music_Name"); 
                
    SetString(PlayList[i][TrackURL],"No_Music_URL"); 
            } 
            
    SavePlayList(); 
        } 
        return 
    1

    stock SavePlayList() 

        new 
    Filefile
        for (new 
    0;sizeof(PlayList);++) 
        { 
            new 
    string[100], str[50]; 
            
    format(stringsizeof(string), "%s|%s|\n"
            
    PlayList[i][TrackName], 
            
    PlayList[i][TrackURL]); 
            
    format(strsizeof(str),"[PlayList]/PlayerLists.ini"); 
            if(!
    ifile fopen(strio_write); 
            else 
    file fopen(strio_append); 
            
    fwrite(filestring); 
            
    fclose(file); 
        } 
        return 
    true

    stock ShowPlayList(playerid

        new 
    str[128]; 
        for(new 
    isizeof(PlayList); ++) 
        { 
            if(!
    GetString(PlayList[i][TrackName],"No_Music_Name")) 
            { 
                
    format(str,sizeof(str),"%s (%d)\n",PlayList[i][TrackName],i+1); 
                
    PlayerTextDrawSetString(playerid,TrackListLeft[i], str); 
                
    PlayerTextDrawShow(playerid,TrackListLeft[i]); 
                
    TrackOnly++; 
            } 
        } 
        return 
    true
    }
    stock GetString(param1[],param2[]) 

        return !
    strcmp(param1param2false); 

    stock SetString(param_1[],param_2[]) 

        return 
    strmid(param_1,param_2,0,strlen(param_2),255); 

    Далее в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    PHP код:
    if(newkeys == 512//Нажимаем на ролик мышки 
        

            if(
    FixDJCords[playerid]) 
            { 
                
    SelectTextDraw(playeridCOLOR_LIGHTBLUE); 
            } 
        } 
    Далее в public OnPlayerLeaveDynamicArea(playerid, areaid) если нету то создаём
    PHP код:
    else if(areaid == Djcords
        { 
                   for(new 
    xx<sizeof(PlayListUSEbox); x++) TextDrawHideForPlayer(playeridPlayListUSEbox[x]); 
                for(new 
    yy<sizeof(TrackListJanr); y++) TextDrawHideForPlayer(playeridTrackListJanr[y]); 
                
    TextDrawHideForPlayer(playeridDJpanelText); 
                
    FixDJCords[playerid] = false
        } 
    Далее в public OnPlayerEnterDynamicArea(playerid, areaid) если нету создаём
    PHP код:
    else if(areaid == Djcords
        { 
                   for(new 
    xx<sizeof(PlayListUSEbox); x++) TextDrawShowForPlayer(playeridPlayListUSEbox[x]); 
                for(new 
    yy<sizeof(TrackListJanr); y++) TextDrawShowForPlayer(playeridTrackListJanr[y]); 
                
    TextDrawShowForPlayer(playeridDJpanelText); 
                
    FixDJCords[playerid] = true
        } 
    Что-бы система работала создаём в scriptfiles папку [PlayList] после запуска сервера в этой папке появится файл PlayerLists.ini. открываем его и видим |No_Music_Name|No_Music_URL| Где No_Music_Name пишим название трека где No_Music_URL ссылку, ну это необязательно так как всё это можно делать с игры. Возможно есть недоработки так как система полностью не проверялась, дальше уже сами!

    Автор системы: Crazy_Town и Ayzek_Clark
    Последний раз редактировалось РустиК; 25.08.2014 в 04:47.
    кто такой РустиК спросите у Рустика

    Street Workout

    Нажми если нетрудно

    бл* еще раз нажми

    ещё разочик...

    тебе что делать не*уй?

    как тебе такое?
    [свернуть]
    [свернуть]
    [свернуть]
    [свернуть]

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •