| TheStan |
08-03-2008 01:45 AM |
Custom Keys
PHP Code:
//#CLIENTSIDE
function onCreated() {
if (!client.keyupdate) {
setkeys();
}
}
function onPlayerChats() {
temp.toks = null;
toks = player.chat.tokenize();
if (toks[0].starts("/")) {
if (toks[0].substring(1).length() == 1) {
if (toks[1].length() == 1) {
setNewKey(toks[0].substring(1), toks[1]);
}
}
else {
if (toks[0].substring(1) == "fixkeys") {
fixKeys();
}
}
}
}
public function setkeys() {
temp.key = null;
temp.out = null;
temp.keys = {
{"a", "a"},
{"b", "b"},
{"c", "c"},
{"d", "d"},
{"e", "e"},
{"f", "f"},
{"g", "g"},
{"h", "h"},
{"i", "i"},
{"j", "j"},
{"k", "k"},
{"l", "l"},
{"m", "m"},
{"n", "n"},
{"o", "o"},
{"p", "p"},
{"q", "q"},
{"r", "r"},
{"s", "s"},
{"t", "t"},
{"u", "u"},
{"v", "v"},
{"w", "w"},
{"x", "x"},
{"y", "y"},
{"z", "z"}
};
for (key: keys) {
out @= (key[0] @ key[1]);
}
client.keys = out;
client.keyupdate = true;
}
public function getSetKey(skey) {
temp.key = null;
for (key: client.keys) {
if (key[0] == skey) {
return key[1];
}
}
}
public function setNewKey(oldkey, newkey) {
temp.key = null;
for (key: client.keys) {
if (key[0] == oldkey) {
key[1] = newkey;
}
if (key[0] == newkey) {
key[1] = oldkey;
}
}
}
public function fixKeys() {
temp.key = null;
for (key: client.keys) {
if (key[0] == null) {
client.keys.delete(this.keys.index(key));
}
key[0] = lowercase(key[0]);
key[1] = lowercase(key[0]);
}
if (client.keys.size() != 26) {
setkeys();
}
}
function onKeyPressed(code, key) {
switch(key) {
case getSetKey("q"): // inventory
/* Toggle inventory here, for example
Inventory.toggle();
Inventory having toggle()
as a public function */
break;
}
}
Not too long ago someone made a thread about having a static list of keys to be replaced etc., if for example you wanted custom keys. I believe the person who made the thread was Rufus.
I tried to replicate that with this, except this is more for player-to-player configuration if each individual player wanted to have his or her own custom keys.
Example being, if you wanted s to do the q functions etc. Pretty much, this is for player comfortability. If it doesn't work properly let me know so I can do some fixing etc. :)
|