/* * Core RPG module: Hotkey rendszer *készítette: Jex & P3tiFÜGGVÉNYEK, ELJÁRÁSOK:Hotkey_Timer(playerid,keys)Nézi a lenyomott gombok kombinációjátHotkey_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 hotkeyeketHotkey_DialogLenyomva(keys)Kiadja, hogy mik vannak lenyomvaHotkey_Delete(playerid, hotkeyid)Hotkey törléseVÁLTOZÓK: */new bool:hotkey [ PLAYERS ];new hotkeytimer [ PLAYERS ];new hotkey_key [ PLAYERS ][ 66 ][ MAX_HOTKEY_TEXT_SIZE ];new stringz [ 128 ];// ELJÁRÁSOKforward 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]);}}// HOTKEYCOMMAND: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áscase 516: return 31; // hátranézés+ütéscase 520: return 32; // hátranézés+sprintcase 528: return 33; // hátranézés+entercase 544: return 34; // hátranézés+ugráscase 640: return 35; // hátranézés+célzáscase 1024: return 36; // gyalogláscase 1025: return 37; // gyaloglás+akciócase 1026: return 38; // gyaloglás+guggoláscase 1028: return 39; // gyaloglás+ütéscase 1032: return 40; // gyaloglás+sprintcase 1040: return 41; // gyaloglás+entercase 1056: return 42; // gyaloglás+ugráscase 1152: return 43; // gyaloglás+célzáscase 1536: return 44; // gyaloglás+hátranézéscase 8192: return 45; // 4case 8193: return 46; // 4+akciócase 8194: return 47; // 4+guggoláscase 8196: return 48; // 4+ütéscase 8200: return 49; // 4+sprintcase 8208: return 50; // 4+entercase 8224: return 51; // 4+ugráscase 8320: return 52; // 4+célzáscase 8704: return 53; // 4+hátranézéscase 9216: return 54; // 4+gyalogláscase 16384: return 55; // 6case 16385: return 56; // 6+akciócase 16386: return 57; // 6+guggoláscase 16388: return 58; // 6+ütéscase 16392: return 59; // 6+sprintcase 16400: return 60; // 6+entercase 16416: return 61; // 6+ugráscase 16512: return 62; // 6+célzáscase 16896: return 63; // 6+hátranézéscase 17408: return 64; // 6+gyalogláscase 24576: return 65; // 6+4}return -1;}// HOTKEY VÉGE
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).
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.
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 :/
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.
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.
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..