Szerző Téma: Hotkey segítség..  (Megtekintve 572 alkalommal)

Nem elérhető BoSS

  • 816
    • Profil megtekintése
Hotkey segítség..
« Dátum: 2012. December 28. - 09:47:19 »
0 Show voters
Sziasztok,elmagyaráznátok nekem,hogy ez hogy mûködik és ezt hogy tudom használni,és mikhez
 
   /*
            * Core RPG module: Hotkey rendszer *
            készítette: Jex & P3ti
           
    FÜGGVÉNYEK, ELJÁRÁSOK:
           
    Hotkey_Timer(playerid,keys)
            Nézi a lenyomott gombok kombinációját
    Hotkey_Menu(playerid)
            Elõhozza a hotkey kezelõ dialogot.
    Hotkey_KeyName(indexedkey)
            Kiírja a nem GameTextbe szánt gomb neveket.
    Hotkey_Dialog(playerid)
            Elõhozza a hotkey elsõ dialogját, amiben be lehet állítani a hotkeyeket
    Hotkey_DialogLenyomva(keys)
            Kiadja, hogy mik vannak lenyomva
    Hotkey_Delete(playerid, hotkeyid)
            Hotkey törlése
     
    VÁLTOZÓK: */
    new             bool:hotkey                             [ PLAYERS ];
    new             hotkeytimer                             [ PLAYERS ];
    new             hotkey_key                              [ PLAYERS ][ 66 ][ MAX_HOTKEY_TEXT_SIZE ];
    new             stringz                                 [ 128 ];
     
    // ELJÁRÁSOK
    forward Hotkey_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
    forward Hotkey_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
    forward Hotkey_OnPlayerDisconnect(playerid, reason);
    forward Hotkey_OnPlayerCommandText(playerid, cmdtext[]);
    forward Hotkey_Timer(playerid,keys);
     
    public Hotkey_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
            if(dialogid==HK_DIALOGID)
            {
                if(response) { msg(playerid, \"{FF0000}A felvétel elindult.. {FFFFFF}Tartsd nyomva a gombot/gombokat 5 másodpercig.\"); }
                else hotkey[playerid] = false;
            }
            if(dialogid==HK_DIALOGID+1)
            {
                if(response)
                {
                    new hk = GetPVarInt(playerid,\"hotkey\");
                    format(hotkey_key[playerid][Hotkey_KeyToIndex(hk)],32,\"%s\",inputtext);
                    msg(playerid,hotkey_key[playerid][Hotkey_KeyToIndex(hk)]);
                    // printf(\"hotkey: %d, %s, eredmény: %s\", GetPVarInt(playerid,\"hotkey\"), inputtext, hotkey_key[playerid][Hotkey_KeyToIndex(hk)]);
                    msg(playerid,\"A hotkey beállítva, a felvétel kikapcsolva!\");
                    hotkey[playerid] = false;
                }
            }
            if(dialogid==HK_DIALOGID+2)
            {
                if(response) {
                    if(listitem == 0)
                    {
                        new Hotkey_Desc [ 1024 ];
                        strcat(Hotkey_Desc,\"{FF0000}» {FFFFFF}Mi az a Hotkey?\\n{A9A9A9}A hotkey egy gombra/gombkombinációra beállított parancs.\\n\\n\");
                        strcat(Hotkey_Desc,\"{FF0000}» {FFFFFF}Hogy kell Hotkeyt készíteni?\\n{A9A9A9}A /hotkey paranccsal elõjön a Hotkey menü ott rákattintassz a Létrehozás opcióra\\nés elfogadod a dialógust. Majd megnyomod és nyomva tartod a beállítani\\nvaló billentyûkombinációt 5 másodpercig és kész a Hotkey.\\n\\n\");
                        strcat(Hotkey_Desc,\"{FF0000}» {FFFFFF}Miért érdemes Hotkeyt használnom?\\n{A9A9A9}Mert megkönnyíti a parancsok beírását. Olyan, mint egy beépített Shortkey.\\n\\n\");
                        strcat(Hotkey_Desc,\"{FF0000}» {FFFFFF}Hogyan tudok törölni Hotkeyt?\\n{A9A9A9}A Hotkey menüben(/hotkey) minden hotkeynek van egy menüpont.\\nRákattintassz a törölni való hotkeyre a listában és törölve van.\");
                        ShowPlayerDialog(playerid, DIALOG_UNUSED, MSGBOX, \"Hotkey rendszer leírás\",Hotkey_Desc,\"Oké\", \"\");
                    }
                    else if(listitem == 1) {
                                    Hotkey_Dialog(playerid);
                                    hotkey[playerid]=true;
                            }else{
                                new hotkey_exists = 0;
                                    for(new i=0;i<66;i++)
                                    {
                                        if(strlen(hotkey_key[playerid]) != 0)
                                        {
                                                    hotkey_exists++;
                                                    if(hotkey_exists == listitem-1)
                                                    {
                                                        Hotkey_Delete(playerid, i);
                                                            msg(playerid, \"{FFFFFF}A kiválasztott {FF0000}hotkey{FFFFFF} törölve!\");
                                                    }
                                            }
                                    }
                            }
                    }else{
                            return 1;
                    }
            }
            return 1;
    }
     
    public Hotkey_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
            /* format(stringy,sizeof(stringy),\"%d, %d\",newkeys,oldkeys);
            msg(playerid,stringy);*/
            if(newkeys != 0)
            {
     
                    /* format(stringy,sizeof(stringy),\"hotkey_key[playerid][%d]: %s, %d\",Hotkey_KeyToIndex(newkeys),hotkey_key[playerid][Hotkey_KeyToIndex(newkeys)],Hotkey_KeyToIndex(newkeys));
                    msg(playerid,stringy);*/
                    if(strlen(hotkey_key[playerid][Hotkey_KeyToIndex(newkeys)]) != 0)
                    {
                            //msg(playerid,hotkey_key[playerid][Hotkey_KeyToIndex(newkeys)]);
                            zcmd_Command(playerid,hotkey_key[playerid][Hotkey_KeyToIndex(newkeys)]);
                    }
            }
            if(hotkey[playerid] == true)
            {
                if(strlen(Hotkey_DialogLenyomva(newkeys)) != 0)
                {
                    GameTextForPlayer(playerid,Hotkey_DialogLenyomva(newkeys),5000,3);
                    KillTimer(hotkeytimer[playerid]);
                            hotkeytimer[playerid] = SetTimerEx(\"Hotkey_Timer\",5000,0,\"dd\",playerid,newkeys);
                }
            }
    }
     
    public Hotkey_OnPlayerDisconnect(playerid, reason)
    {
            if(hotkey[playerid] == true)
            {
                for(new i=0;i<66;i++)
                {
                    Hotkey_Delete(playerid, i);
                }
                hotkey[playerid] = false;
                    KillTimer(hotkeytimer[playerid]);
            }
    }
     
    // HOTKEY
    COMMAND:hotkey(playerid, params[])
    {
            Hotkey_Menu(playerid);
            return 1;
    }
     
    stock KettoHatvany(szam) return floatround(floatpower(2,szam),floatround_round);
    stock KettoHatvanye(szam)
    {
        for(new i=0;i<15;i++) if(KettoHatvany(i) == szam) return true;
            return false;
    }
     
    public Hotkey_Timer(playerid,keys)
    {
            // SendFormattedMessage(playerid,COLOR_WHITE,\"a hotkey: %d\",keys);
            SetPVarInt(playerid,\"hotkey\",keys);
        ShowPlayerDialog(playerid,HK_DIALOGID+1,1,\":: Hotkey beállítás ::\",\"Írd be, hogy mit csináljon a megadott kombinációra (parancs):\",\"Oké\",\"Mégse\");
            return 1;
    }
    stock Hotkey_Dialog(playerid)
    {
            ShowPlayerDialog(playerid,HK_DIALOGID,0,\":: Hotkey készítés ::\",\"Kattints a készítésre, aztán\\nnyomd le a billentyûkombinációt és 5 mp.\\nután beállíthatsz rá egy hotkeyt.\",\"Készítés\",\"Mégse\");
    }
    stock Hotkey_Menu(playerid)
    {
            new temp[100];
            format(stringx, sizeof stringx, \"Hotkey rendszer leírás\\nLétrehozás\\n\");
            for(new i=0;i<66;i++)
            {
                if(strlen(hotkey_key[playerid]) != 0)
                {
                    format(temp, 100, \"{FF0000}Törlés{FFFFFF} - %s (%s)\", hotkey_key[playerid], Hotkey_KeyName(i));
                            strcat(stringx, temp);
                            strcat(stringx, \"\\n\");
                    }
        }
            ShowPlayerDialog(playerid,HK_DIALOGID+2,LIST,\":: Hotkey ::\",stringx,\"Oké\",\"Mégse\");
    }
    stock Hotkey_DialogLenyomva(keys)
    {
        /* 1 - Akció
               2 - Guggolás
               4 - Ütés
               8 - Sprint
               16 - Enter/Exit
               32 - Ugrás
               64 -
               128 - Célzás
               256 -
               512 - Hátranézés
               1024 - Gyaloglás
               2056 -
               4112 -
               8192 - 4-es gomb
               16384 - 6-os gomb
            */
            new hklist[15][12]={
            \"Akció\",\"Guggolás\",\"Ütés\",\"Sprint\",\"Enter/Exit\",\"Ugrás\",\"Nincs\",\"Célzás\",
            \"Nincs\",\"Hátranézés\",\"Gyaloglás\",\"Nincs\",\"Nincs\",\"4-es gomb\",\"6-os gomb\"
            };
            stringx=\"\\0\";
            for(new i=14;i>=0;i--)
            {
                if(KettoHatvanye(keys))
                {
                    new idx = floatround(floatlog(keys,2),floatround_round);
                    format(stringz,sizeof(stringz),\"~r~%s\",hklist[idx]);
                    // print(stringz);
                    strins(stringx,stringz,strlen(stringx));
                    // printf(\"%d    %d\",keys,floatround(floatlog(keys,2),floatround_round));
                    break;
                }
                if(keys - KettoHatvany(i) > 0)
                {
                    keys -= KettoHatvany(i);
                    format(stringz,sizeof(stringz),\"~r~%s~n~~w~+~n~\",hklist);
                    // print(stringz);
                    strins(stringx,stringz,strlen(stringx));
                    // printf(\"%d    %d\",KettoHatvany(i),i);
                }
            }
            return stringx;
    }
    stock Hotkey_Delete(playerid, hotkeyid)
    {
        format(hotkey_key[playerid][hotkeyid], 32, \"\");
    }
    stock Hotkey_KeyName(indexedkey)
    {
            new Key_Name[32];
            switch(indexedkey)
            {
                case 0: format(Key_Name, 32, \"akció\");
                case 1: format(Key_Name, 32, \"guggolás\");
                case 2: format(Key_Name, 32, \"akció+guggolás\");
                case 3: format(Key_Name, 32, \"ütés\");
                case 4: format(Key_Name, 32, \"ütés+akció\");
                case 5: format(Key_Name, 32, \"ütés+guggolás\");
                case 6: format(Key_Name, 32, \"sprint\");
                case 7: format(Key_Name, 32, \"sprint+akció\");
                case 8: format(Key_Name, 32, \"sprint+guggolás\");
                case 9: format(Key_Name, 32, \"sprint+ütés\");
                case 10: format(Key_Name, 32, \"enter\");
                case 11: format(Key_Name, 32, \"enter+akció\");
                case 12: format(Key_Name, 32, \"enter+guggolás\");
                case 13: format(Key_Name, 32, \"enter+ütés\");
                case 14: format(Key_Name, 32, \"enter+sprint\");
                case 15: format(Key_Name, 32, \"ugrás\");
                case 16: format(Key_Name, 32, \"ugrás+akció\");
                case 17: format(Key_Name, 32, \"ugrás+guggolás\");
                case 18: format(Key_Name, 32, \"ugrás+ütés\");
                case 19: format(Key_Name, 32, \"ugrás+sprint\");
                case 20: format(Key_Name, 32, \"ugrás+enter\");
                case 21: format(Key_Name, 32, \"célzás\");
                case 22: format(Key_Name, 32, \"célzás+akció\");
                case 23: format(Key_Name, 32, \"célzás+guggolás\");
                case 24: format(Key_Name, 32, \"célzás+ütés\");
                case 25: format(Key_Name, 32, \"célzás+sprint\");
                case 26: format(Key_Name, 32, \"célzás+enter\");
                case 27: format(Key_Name, 32, \"célzás+ugrás\");
                case 28: format(Key_Name, 32, \"hátranézés\");
                case 29: format(Key_Name, 32, \"hátranézés+akció\");
                case 30: format(Key_Name, 32, \"hátranézés+guggolás\");
                    case 31: format(Key_Name, 32, \"hátranézés+ütés\");
                    case 32: format(Key_Name, 32, \"hátranézés+sprint\");
                    case 33: format(Key_Name, 32, \"hátranézés+enter\");
                    case 34: format(Key_Name, 32, \"hátranézés+ugrás\");
                    case 35: format(Key_Name, 32, \"hátranézés+célzás\");
                    case 36: format(Key_Name, 32, \"gyaloglás\");
                    case 37: format(Key_Name, 32, \"gyaloglás+akció\");
                    case 38: format(Key_Name, 32, \"gyaloglás+guggolás\");
                    case 39: format(Key_Name, 32, \"gyaloglás+ütés\");
                    case 40: format(Key_Name, 32, \"gyaloglás+sprint\");
                    case 41: format(Key_Name, 32, \"gyaloglás+enter\");
                    case 42: format(Key_Name, 32, \"gyaloglás+ugrás\");
                    case 43: format(Key_Name, 32, \"gyaloglás+célzás\");
                    case 44: format(Key_Name, 32, \"gyaloglás+hátranézés\");
                    case 45: format(Key_Name, 32, \"4\");
                    case 46: format(Key_Name, 32, \"4+akció\");
                    case 47: format(Key_Name, 32, \"4+guggolás\");
                    case 48: format(Key_Name, 32, \"4+ütés\");
                    case 49: format(Key_Name, 32, \"4+sprint\");
                    case 50: format(Key_Name, 32, \"4+enter\");
                    case 51: format(Key_Name, 32, \"4+ugrás\");
                    case 52: format(Key_Name, 32, \"4+célzás\");
                    case 53: format(Key_Name, 32, \"4+hátranézés\");
                    case 54: format(Key_Name, 32, \"4+gyaloglás\");
                    case 55: format(Key_Name, 32, \"6\");
                    case 56: format(Key_Name, 32, \"6+akció\");
                    case 57: format(Key_Name, 32, \"6+guggolás\");
                    case 58: format(Key_Name, 32, \"6+ütés\");
                    case 59: format(Key_Name, 32, \"6+sprint\");
                    case 60: format(Key_Name, 32, \"6+enter\");
                    case 61: format(Key_Name, 32, \"6+ugrás\");
                    case 62: format(Key_Name, 32, \"6+célzás\");
                    case 63: format(Key_Name, 32, \"6+hátranézés\");
                    case 64: format(Key_Name, 32, \"6+gyaloglás\");
                    case 65: format(Key_Name, 32, \"6+4\");
            }
            if(strlen(Key_Name) == 0) { format(Key_Name, 32, \"ismeretlen gomb\"); }
            return Key_Name;
    }
    stock Hotkey_KeyToIndex(key)
    {
            switch(key)
            {
                case 1: return 0; // akció
                case 2: return 1; // guggolás
                case 3: return 2; // akció+guggolás
                case 4: return 3; // ütés
                case 5: return 4; // ütés+akció
                case 6: return 5; // ütés+guggolás
                case 8: return 6; // sprint
                case 9: return 7; // sprint+akció
                case 10: return 8;// sprint+guggolás
                case 12: return 9;// sprint+ütés
                case 16: return 10; // enter
                case 17: return 11; // enter+akció
                case 18: return 12; // enter+guggolás
                case 20: return 13; // enter+ütés
                case 24: return 14; // enter+sprint
                case 32: return 15; // ugrás
                case 33: return 16; // ugrás+akció
                case 34: return 17; // ugrás+guggolás
                case 36: return 18; // ugrás+ütés
                case 40: return 19; // ugrás+sprint
                case 48: return 20; // ugrás+enter
                case 128: return 21; // célzás
                case 129: return 22; // célzás+akció
                case 130: return 23; // célzás+guggolás
                case 132: return 24; // célzás+ütés
                case 136: return 25; // célzás+sprint
                case 144: return 26; // célzás+enter
                case 160: return 27; // célzás+ugrás
                case 512: return 28; // hátranézés
                case 513: return 29; // hátranézés+akció
                case 514: return 30; // hátranézés+guggolás
                    case 516: return 31; // hátranézés+ütés
                    case 520: return 32; // hátranézés+sprint
                    case 528: return 33; // hátranézés+enter
                    case 544: return 34; // hátranézés+ugrás
                    case 640: return 35; // hátranézés+célzás
                    case 1024: return 36; // gyaloglás
                    case 1025: return 37; // gyaloglás+akció
                    case 1026: return 38; // gyaloglás+guggolás
                    case 1028: return 39; // gyaloglás+ütés
                    case 1032: return 40; // gyaloglás+sprint
                    case 1040: return 41; // gyaloglás+enter
                    case 1056: return 42; // gyaloglás+ugrás
                    case 1152: return 43; // gyaloglás+célzás
                    case 1536: return 44; // gyaloglás+hátranézés
                    case 8192: return 45; // 4
                    case 8193: return 46; // 4+akció
                    case 8194: return 47; // 4+guggolás
                    case 8196: return 48; // 4+ütés
                    case 8200: return 49; // 4+sprint
                    case 8208: return 50; // 4+enter
                    case 8224: return 51; // 4+ugrás
                    case 8320: return 52; // 4+célzás
                    case 8704: return 53; // 4+hátranézés
                    case 9216: return 54; // 4+gyaloglás
                    case 16384: return 55; // 6
                    case 16385: return 56; // 6+akció
                    case 16386: return 57; // 6+guggolás
                    case 16388: return 58; // 6+ütés
                    case 16392: return 59; // 6+sprint
                    case 16400: return 60; // 6+enter
                    case 16416: return 61; // 6+ugrás
                    case 16512: return 62; // 6+célzás
                    case 16896: return 63; // 6+hátranézés
                    case 17408: return 64; // 6+gyaloglás
                    case 24576: return 65; // 6+4
            }
            return -1;
    }
     
    // HOTKEY VÉGE
     

 
Elõre is köszi.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Hotkey segítség..
« Válasz #1 Dátum: 2012. December 28. - 13:08:51 »
0 Show voters
minden le van írva.. aki publikált leírta normálisan.  ;)

Nem elérhető BoSS

  • 816
    • Profil megtekintése
Hotkey segítség..
« Válasz #2 Dátum: 2012. December 28. - 14:46:38 »
0 Show voters
Idézetet írta: ZyZu date=1356696531\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31560\" data-ipsquote-contentclass=\"forums_Topic
minden le van írva.. aki publikált leírta normálisan.  ;)
 
Tudom csak nem értem :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal