Szerző Téma: Core RPG Release - Hotkey  (Megtekintve 2281 alkalommal)

Nem elérhető P3ti

  • 321
    • Profil megtekintése
Core RPG Release - Hotkey
« Dátum: 2012. december 28. - 00:34:41 »
+3 Show voters
Sziasztok!
HP segítség képpen Legendnek átküldött anyagokat a Coreból, viszont az általam készített scripteket én nem engedélyeztem.
Ebben benne volt a Hotkey rendszer amit még késõbb valamire fel szerettem volna használni, egyik egyedisége lett volna a Corenak.
Mikor utoljára nekikezdtünk a Corenak én továbbfejlesztettem ezt a scriptet és kicsit zavart hogy se Jex se az én nevem nélkül be van máshova rakva egy karakternyi módosítás nélkül.
Remélem sokatoknak hasznára válik!
Fontos: csak zcmd-t támogat és a módotokba be kell \"includeolni\" és a megfelelõ callback alá írni ezeket az eljárásokat:
- Hotkey_OnDialogResponse
- Hotkey_OnPlayerKeyStateChange
- Hotkey_OnPlayerDisconnect
 
/* 
* 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

 
(Jex azt mondta nekünk nem érdekli mit csinálunk a munkáival, ezért gondolom nem kell kérni a beleegyezését.)
Üdv, P3ti.
« Utoljára szerkesztve: 2013. január 12. - 23:23:52 írta Cannonn »

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #1 Dátum: 2012. december 28. - 00:38:26 »
+2 Show voters
Idézetet írta: P3ti date=1356651281\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic
A legelsõ Core módban készítette ezt a rendszert Jex, de még nem volt teljesen tökéletes (csak a gombmentés/érzékelés és a hotkeymentés volt teljesen kész benne).
 
Teljesen jól mûködött.
Én meg írtam Legendnek hogy a régit használhatja, ezt nem.
Használjátok egészséggel :)

Nem elérhető P3ti

  • 321
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #2 Dátum: 2012. december 28. - 00:39:43 »
+2 Show voters
Idézetet írta: Zharko date=1356651506\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic


A legelsõ Core módban készítette ezt a rendszert Jex, de még nem volt teljesen tökéletes (csak a gombmentés/érzékelés és a hotkeymentés volt teljesen kész benne).
 
Teljesen jól mûködött.
Én meg írtam Legendnek hogy a régit használhatja, ezt nem.
Használjátok egészséggel :)
 
[/quote]
Azt hogy teljesen jól mûködött én nem mondanám, próbáltam akármilyen parancskezelõvel, móddal stb. nem mûködött.
De ahogy gondolod.
« Utoljára szerkesztve: 2012. december 28. - 00:41:20 írta P3ti »

Nem elérhető rhassi

  • 624
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #3 Dátum: 2012. december 28. - 00:44:26 »
+1 Show voters
Amikor én próbáltam ki akkor mûködött.

Nem elérhető trave

  • 840
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #4 Dátum: 2012. december 28. - 00:47:07 »
+2 Show voters
Azért, mert átalakítottad egy kicsit még nem jelenti azt, hogy publikálni kéne.. tökéletesen mûködött mindig is. Nem te fixelted, csak átírtad kicsit :/

Nem elérhető P3ti

  • 321
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #5 Dátum: 2012. december 28. - 00:48:00 »
+2 Show voters
Idézetet írta: trave date=1356652027\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic
Azért, mert átalakítottad egy kicsit még nem jelenti azt, hogy publikálni kéne.. tökéletesen mûködött mindig is. Nem te fixelted, csak átírtad kicsit :/
 
Akkor kiszedem, hogy nem mûködött akkor se tetszett, hogy Palora fel lett rakva.

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #6 Dátum: 2012. december 28. - 00:48:47 »
+2 Show voters
Idézetet írta: P3ti date=1356652080\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic


Azért, mert átalakítottad egy kicsit még nem jelenti azt, hogy publikálni kéne.. tökéletesen mûködött mindig is. Nem te fixelted, csak átírtad kicsit :/
 
Akkor kiszedem, hogy nem mûködött akkor se tetszett, hogy Palora fel lett rakva.
 
[/quote]
Arról meg a vezetõséggel beszélj.

Nem elérhető P3ti

  • 321
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #7 Dátum: 2012. december 28. - 00:50:24 »
+2 Show voters
Idézetet írta: Zharko date=1356652127\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic


 

Azért, mert átalakítottad egy kicsit még nem jelenti azt, hogy publikálni kéne.. tökéletesen mûködött mindig is. Nem te fixelted, csak átírtad kicsit :/
 
Akkor kiszedem, hogy nem mûködött akkor se tetszett, hogy Palora fel lett rakva.
 
[/quote]
Arról meg a vezetõséggel beszélj.
 
[/quote]
Nem kell beszélnem, mostmár olyan minthogyha innen berakták volna.
Azért raktam ki, hogyha már a Palo használhatja akkor a többi szerver is.

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
Core RPG Release - Hotkey
« Válasz #8 Dátum: 2012. december 28. - 00:51:31 »
0 Show voters
Idézetet írta: P3ti date=1356652224\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31536\" data-ipsquote-contentclass=\"forums_Topic


 

 

Azért, mert átalakítottad egy kicsit még nem jelenti azt, hogy publikálni kéne.. tökéletesen mûködött mindig is. Nem te fixelted, csak átírtad kicsit :/
 
Akkor kiszedem, hogy nem mûködött akkor se tetszett, hogy Palora fel lett rakva.
 
[/quote]
Arról meg a vezetõséggel beszélj.
 
[/quote]
Nem kell beszélnem, mostmár olyan minthogyha innen berakták volna.
Azért raktam ki, hogyha már a Palo használhatja akkor a többi szerver is.
 
[/quote]
Akkor meg? Te tudod..

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal