![]() |
Class Specific Input - Printable Version +- Mirage Source (https://mirage-engine.uk/forums) +-- Forum: Mirage Source (Nostalgia) (https://mirage-engine.uk/forums/forumdisplay.php?fid=61) +--- Forum: Archive (2006-2011) (https://mirage-engine.uk/forums/forumdisplay.php?fid=18) +---- Forum: General (https://mirage-engine.uk/forums/forumdisplay.php?fid=17) +---- Thread: Class Specific Input (/showthread.php?tid=2011) |
Class Specific Input - Acruno - 14-08-2008 Ok, I am now attempting a feature that would allow Class X to press F1 and drink a HP Potion, and Class Y to press F1 and cast a spell. Judging by how my class-specific backgrounds are chosen, I assume I would send a packet from the server with the player's class, and then define the keypresses in ModHandleData. However, I am not sure what sub to send it in server-side. Anyone able to help? [NOTE]I also would like to find out how to stop people just holding down a button to keep repeating an action (i.e. holding down ctrl and spam attacking an npc). I assume I could use a timer (for things like mining), or that there is some code that only runs the request once. Thanks in advance ![]() Re: Class Specific Input - Robin - 14-08-2008 Acruno Wrote:Ok, I am now attempting a feature that would allow Class X to press F1 and drink a HP Potion, and Class Y to press F1 and cast a spell. If you want it to only happen once per button press, call it in KeyPress or KeyUp instead of KeyDown. As for how to call it, create the packet that sends the KeyPress request to the server, then write something like this: Code: Select Case GetPlayerClass(index) Re: Class Specific Input - Acruno - 14-08-2008 That should work, I'll try that now. On the subject of Key Presses, what about if I have a foraging skill and I only want to player to be able to forage on that tile once every X seconds (X defined in the editor perhaps)? Re: Class Specific Input - Robin - 14-08-2008 Take advantage of the TempTile. Set the timer to one of the variables in there, and then do a check. Try.. erm, CheckGetMapItem or something in the server. It handles all the stuff when pressing Enter. At the end, add something like: Code: CheckForage index, map, x, y Then the subroutine something like this: Code: If Player(index).ForageTimer > gettickcount + 1000 then Re: Class Specific Input - Acruno - 14-08-2008 Ok, I think I understand now, thanks for your help ![]() |