//BINDS by D4RKKNIGH7 // I do not take all credit for this, some of these functions belong to other people, unsure of location, if its you tell me and ill add you to credits //This was only a quick version to make, I will be updating in the future to make script smaller and tidyer. //Thanks for using. //Any bugs/ideas please put on the forum. //I have tested with YCMD only, but no reason it wont work with zcmd. #if !defined isnull #define isnull(%1) \ ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1])))) #endif #include #include #include //#include new PlayersBind[MAX_PLAYERS][24][128]; new ToBind[MAX_PLAYERS]; #define DIALOG_BIND 300 #define DIALOG_BIND2 400 #define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0))) public OnFilterScriptInit() { print("\n--------------------------------------"); print(" D4RKKNIGH7's Bind Script"); print("--------------------------------------\n"); return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(RELEASED(KEY_ACTION)) if(!isnull(PlayersBind[playerid][0])) DoBind(playerid, PlayersBind[playerid][0]); if(RELEASED(KEY_CROUCH)) if(!isnull(PlayersBind[playerid][1])) DoBind(playerid, PlayersBind[playerid][1]); if(RELEASED(KEY_FIRE)) if(!isnull(PlayersBind[playerid][2])) DoBind(playerid, PlayersBind[playerid][2]); if(RELEASED(KEY_SPRINT)) if(!isnull(PlayersBind[playerid][3])) DoBind(playerid, PlayersBind[playerid][3]); if(RELEASED(KEY_SECONDARY_ATTACK)) if(!isnull(PlayersBind[playerid][4])) DoBind(playerid, PlayersBind[playerid][4]); if(RELEASED(KEY_JUMP)) if(!isnull(PlayersBind[playerid][5])) DoBind(playerid, PlayersBind[playerid][5]); if(RELEASED(KEY_LOOK_RIGHT)) if(!isnull(PlayersBind[playerid][6])) DoBind(playerid, PlayersBind[playerid][6]); if(RELEASED(KEY_HANDBRAKE)) if(!isnull(PlayersBind[playerid][7])) DoBind(playerid, PlayersBind[playerid][7]); if(RELEASED(KEY_LOOK_LEFT)) if(!isnull(PlayersBind[playerid][8])) DoBind(playerid, PlayersBind[playerid][8]); if(RELEASED(KEY_SUBMISSION)) if(!isnull(PlayersBind[playerid][9])) DoBind(playerid, PlayersBind[playerid][9]); if(RELEASED(KEY_LOOK_BEHIND)) if(!isnull(PlayersBind[playerid][10])) DoBind(playerid, PlayersBind[playerid][10]); if(RELEASED(KEY_WALK)) if(!isnull(PlayersBind[playerid][11])) DoBind(playerid, PlayersBind[playerid][11]); if(RELEASED(KEY_ANALOG_UP)) if(!isnull(PlayersBind[playerid][12])) DoBind(playerid, PlayersBind[playerid][12]); if(RELEASED(KEY_ANALOG_DOWN)) if(!isnull(PlayersBind[playerid][13])) DoBind(playerid, PlayersBind[playerid][13]); if(RELEASED(KEY_ANALOG_LEFT)) if(!isnull(PlayersBind[playerid][14])) DoBind(playerid, PlayersBind[playerid][14]); if(RELEASED(KEY_ANALOG_RIGHT)) if(!isnull(PlayersBind[playerid][15])) DoBind(playerid, PlayersBind[playerid][15]); if(RELEASED(KEY_YES)) if(!isnull(PlayersBind[playerid][16])) DoBind(playerid, PlayersBind[playerid][16]); if(RELEASED(KEY_NO)) if(!isnull(PlayersBind[playerid][17])) DoBind(playerid, PlayersBind[playerid][17]); if(RELEASED(KEY_CTRL_BACK)) if(!isnull(PlayersBind[playerid][18])) DoBind(playerid, PlayersBind[playerid][18]); if(RELEASED(KEY_UP)) if(!isnull(PlayersBind[playerid][19])) DoBind(playerid, PlayersBind[playerid][19]); if(RELEASED(KEY_DOWN)) if(!isnull(PlayersBind[playerid][20])) DoBind(playerid, PlayersBind[playerid][20]); if(RELEASED(KEY_LEFT)) if(!isnull(PlayersBind[playerid][21])) DoBind(playerid, PlayersBind[playerid][21]); if(RELEASED(KEY_RIGHT)) if(!isnull(PlayersBind[playerid][22])) DoBind(playerid, PlayersBind[playerid][22]); return 1; } public OnPlayerText(playerid, text[]) { return 1; } CMD:bind(playerid, params[]) { ShowBindDialog(playerid); return 1; } DoBind(playerid, text[]) { if(text[0] != '/') return OnPlayerText(playerid, text); else return CallRemoteFunction("OnPlayerCommandText", "is", playerid, text); } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_BIND: { if( !response ) return 1; switch( listitem ) { case 0: ToBind[playerid] = 0, ShowBind2Dialog(playerid); case 1: ToBind[playerid] = 1, ShowBind2Dialog(playerid); case 2: ToBind[playerid] = 2, ShowBind2Dialog(playerid); case 3: ToBind[playerid] = 3, ShowBind2Dialog(playerid); case 4: ToBind[playerid] = 4, ShowBind2Dialog(playerid); case 5: ToBind[playerid] = 5, ShowBind2Dialog(playerid); case 6: ToBind[playerid] = 6, ShowBind2Dialog(playerid); case 7: ToBind[playerid] = 7, ShowBind2Dialog(playerid); case 8: ToBind[playerid] = 8, ShowBind2Dialog(playerid); case 9: ToBind[playerid] = 9, ShowBind2Dialog(playerid); case 10: ToBind[playerid] = 10, ShowBind2Dialog(playerid); case 11: ToBind[playerid] = 11, ShowBind2Dialog(playerid); case 12: ToBind[playerid] = 12, ShowBind2Dialog(playerid); case 13: ToBind[playerid] = 13, ShowBind2Dialog(playerid); case 14: ToBind[playerid] = 14, ShowBind2Dialog(playerid); case 15: ToBind[playerid] = 15, ShowBind2Dialog(playerid); case 16: ToBind[playerid] = 16, ShowBind2Dialog(playerid); case 17: ToBind[playerid] = 17, ShowBind2Dialog(playerid); case 18: ToBind[playerid] = 18, ShowBind2Dialog(playerid); case 19: ToBind[playerid] = 19, ShowBind2Dialog(playerid); case 20: ToBind[playerid] = 20, ShowBind2Dialog(playerid); case 21: ToBind[playerid] = 21, ShowBind2Dialog(playerid); case 22: ToBind[playerid] = 22, ShowBind2Dialog(playerid); case 23: ToBind[playerid] = 23, ShowBind2Dialog(playerid); } } case DIALOG_BIND2: { if( !response ) return 1; if(strlen(inputtext) == 0) ShowBind2Dialog(playerid); else { format(PlayersBind[playerid][ToBind[playerid]], 128, "%s", inputtext); } } } return 1; } ShowBindDialog(playerid) return ShowPlayerDialog( playerid, DIALOG_BIND, DIALOG_STYLE_LIST, "What key would you like to Bind", "KEY_ACTION\nKEY_CROUCH\nKEY_FIRE\nKEY_SPRINT\nKEY_SECONDARY_ATTACK\nKEY_JUMP\nKEY_LOOK_RIGHT\nKEY_HANDBRAKE\nKEY_LOOK_LEFT\nKEY_SUBMISSION\nKEY_LOOK_BEHIND\nKEY_WALK\nKEY_ANALOG_UP\nKEY_ANALOG_DOWN\nKEY_ANALOG_LEFT\nKEY_ANALOG_RIGHT\nKEY_YES\nKEY_NO\nKEY_CTRL_BACK\nKEY_UP\nKEY_DOWN\nKEY_LEFT\nKEY_RIGHT", "Choose", "Cancel" ); ShowBind2Dialog(playerid) return ShowPlayerDialog( playerid, DIALOG_BIND2, DIALOG_STYLE_INPUT, "Bind", "What would you like to bind?\n you can bind something to say or a command", "Bind", "Cancel" );