PDA

View Full Version : [Request] Hat System


Dangerless
04-23-2008, 06:08 AM
I want a hat system. Such as for EX: I want to have a shop but with a limited amount of hats and being able to trade them with people. Hopefully they save when you go into other levels or relog in.

I don't know if this can be done with an NPC-Server...

Beholder
04-23-2008, 10:14 AM
In a sense, it can... But bare with me it is a crude bastard compaired to it's counterpart.

:HAT NPC EXAMPLE:
if (playerchats && strequals(#c,buy hat 1)) { //Buy Hat
if (strtofloat(#s(server.hat1)) <= 0) {
say2 #b Out of Stock;
} else {
if(playerrupees >= 200) { // Hat Price
setstring client.hat,1; //What ever system you have for adding hats, put it here
setstring server.hat1,#v(strtofloat(#s(server.hat1)) - 1);
} else {
say2 #bNot enough Money;
}
}
}

if (playerenters || playerchats) { //Hat Quantity, Passive Update
if (strtofloat(#s(server.hat1)) <= 0) message Out of Stock!;
else message #s(server.hat1);
}

Now for the real bastard. (I am aware of all bugs and glitches possible in both, for the most part they cannot be helped without a proper medium.)

:HAT TRADE SYSTEM EXAMPLE:

// "/givehat <hatnumber> <targetaccount>"
// "/accepthat <targetaccount>"
// "/cancelhat" <- Only the Owner may Cancel
if (playerchats) {
tokenize #c;
//Clears Completed Pendings
if(!strequals(#s(pendingtradeid),) && strequals(#s(server.#a#s(pendingtradeid)),) setstring pendingtradeid,;

if (strequals(#t(0),/givehat)) {
if (strequals(#s(pendingtradeid))) {
setstring server.#a#t(2),1; //Add Hat to Trade
setstring client.hat,; //Remove the Hat, Leave it Pending in Trade
setstring pendingtradeid,#t(2); //Remember the Trade ID
} else { //Failsafe of trading only one item at a time
setplayerprop #c,You're already trading to #s(pendingtradeid)! Say "/cancelhat #s(pendingtradeid)" to start a new trade.;
}
} else if (strequals(#t(0),/cancelhat)) {
setstring pendingtradeid,; //Clear Pending Trade
setstring client.hat,1; //Give back the Hat
setstring server.#a#t(1),; //Clear Server Trade
setplayerprop #c,Cancelled Trade with #t(1)!;
} else if (strequals(#t(0),/accepthat)) {
if(strequals(#s(server.#t(1)#a),) {
setplayerprop #c,No Trade Pending from #t(1);
} else {
setplayerprop #c,Accepted Hat#s(server.#t(1)#a) from #t(1)!;
setstring client.hat,#s(server.#t(1)#a); //Give Hat from Trade
setstring server.#t(1)#a,; //Clear Pending
}
}
}


Note that both of these have not been tested in any manner, like most requests they are made on the spot.

Spooon
06-07-2008, 09:48 PM
You shouldn't have given it to him, Beholder.
Dangerless, you make fun of other peoples' work but cannot even do it yourself? Please die painfully.

Spooon
06-16-2008, 11:52 AM
Seriously.

Negitar
06-16-2008, 07:17 PM
Skyzer, sadly Beholder is one of the nicest scripters around, so he couldnt not make it.. :(