Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Ce script à été coder par Sam (Chneubeul sur Gta Online)
- // Merci de reporter vos bugs bien détaillés et vos propositions pour solutionner le moindre problème
- // Merci d'utiliser ce script, à bientot. Sam !
- // Version 1.0
- #include <a_samp>
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // Courtesy of DracoBlue
- #define key_action 0
- #define key_crouch 1
- #define key_fire 1
- #define key_sprint 2
- #define key_secondary_attack 3
- #define key_jump 4
- #define key_look_right 5
- #define key_handbrake 6
- #define key_look_left 7
- #define key_submission 8
- #define key_walk 9
- #define key_analog_up 10
- #define key_analog_down 11
- #define key_analog_left 12
- #define key_analog_right 13
- #define key_yes 14
- #define key_no 15
- #define key_ctrl_back 16
- new bool:KeyListed[MAX_PLAYERS];
- new bool:KeyInfo[MAX_PLAYERS][18];
- new TouchDown[MAX_PLAYERS];
- new KeyValue[18] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,65536,131072,262144};
- new PlayerText:KeyList[MAX_PLAYERS];
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys != 0)
- {
- new key = oldkeys - newkeys;
- if(key > 0) { TouchDown[playerid]--; }
- else if(key < 0) { TouchDown[playerid]++; }
- for(new i; i < 18; i++)
- {
- if(key < 0) { key *= -1; }
- if(KeyValue[i] == key)
- {
- if(KeyInfo[playerid][i] == false)
- {
- KeyInfo[playerid][i] = true;
- }
- else if(KeyInfo[playerid][i] == true)
- {
- KeyInfo[playerid][i] = false;
- }
- }
- }
- }
- if(!newkeys && oldkeys != 0) { TouchDown[playerid] = 0; }
- if(TouchDown[playerid] <=2)
- {
- for(new i=0; i<18; i++)
- {
- if(KeyValue[i] != newkeys && oldkeys != 0 && newkeys != 0)
- {
- ResolveNewMultipleKeys(playerid, newkeys, oldkeys);
- }
- else if(oldkeys != KeyValue[i] && newkeys != 0 && oldkeys != 0)
- {
- ResolveOldMultipleKeys(playerid, newkeys, oldkeys);
- }
- else
- {
- if(newkeys & KeyValue[i])
- {
- KeyInfo[playerid][i] = true;
- }
- if(oldkeys & KeyValue[i])
- {
- KeyInfo[playerid][i] = false;
- }
- }
- }
- }
- if(KeyListed[playerid]) { ActuKeyList(playerid); }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(keylist,7,cmdtext);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- KeyListed[playerid] = false;
- KeyList[playerid] = CreatePlayerTextDraw( playerid, 250.00, 170.000000, " ");
- PlayerTextDrawAlignment(playerid, KeyList[playerid], 2);
- PlayerTextDrawBackgroundColor( playerid, KeyList[playerid], 255);
- PlayerTextDrawFont( playerid, KeyList[playerid], 1);
- PlayerTextDrawLetterSize( playerid, KeyList[playerid], 0.4000, 1.2);
- PlayerTextDrawColor( playerid, KeyList[playerid], -1);
- PlayerTextDrawSetOutline( playerid, KeyList[playerid], 0);
- PlayerTextDrawSetProportional( playerid, KeyList[playerid], 1);
- PlayerTextDrawSetShadow( playerid, KeyList[playerid], 1);
- PlayerTextDrawSetSelectable( playerid, KeyList[playerid], 0);
- PlayerTextDrawUseBox( playerid, KeyList[playerid], 1);
- PlayerTextDrawBoxColor( playerid, KeyList[playerid], 0x000000);
- PlayerTextDrawTextSize( playerid, KeyList[playerid], 200.000000, 180.000000);
- return 1;
- }
- ResolveNewMultipleKeys(playerid, newkeys, oldkeys)
- {
- new keys = newkeys - oldkeys;
- for(new i; i < 18; i++)
- {
- if(keys == KeyValue[i]) { KeyInfo[playerid][i] = true; }
- if(keys == oldkeys) { KeyInfo[playerid][i] = true; }
- }
- return 1;
- }
- ResolveOldMultipleKeys(playerid, newkeys, oldkeys)
- {
- new keys = oldkeys - newkeys;
- for(new i; i < 18; i++)
- {
- if(keys == KeyValue[i]) { KeyInfo[playerid][i] = false; }
- if(keys == oldkeys) { KeyInfo[playerid][i] = false; }
- }
- return 1;
- }
- ActuKeyList(playerid)
- {
- new string[1024];
- format(string, 1024, "key_action : %d,~n~key_crouch : %d,~n~key_fire : %d,~n~key_sprint : %d,~n~key_secondary_attack : %d,~n~ \
- key_jump : %d,~n~key_look_right : %d,~n~key_handbrake : %d,~n~key_look_left : %d,~n~key_submission : %d,~n~ \
- key_walk : %d,~n~key_analog_up : %d,~n~key_analog_down : %d,~n~key_analog_left : %d,~n~ \
- key_analog_right : %d,~n~key_yes : %d,~n~key_no : %d,~n~key_ctrl_back : %d,~n~",
- (KeyInfo[playerid][0])? true : false,
- (KeyInfo[playerid][1])?true : false,
- (KeyInfo[playerid][2])? true : false,
- (KeyInfo[playerid][3])? true : false,
- (KeyInfo[playerid][4])? true : false,
- (KeyInfo[playerid][5])? true : false,
- (KeyInfo[playerid][6])? true : false,
- (KeyInfo[playerid][7])? true : false,
- (KeyInfo[playerid][8])? true : false,
- (KeyInfo[playerid][9])? true : false,
- (KeyInfo[playerid][10])? true : false,
- (KeyInfo[playerid][11])? true : false,
- (KeyInfo[playerid][12])? true : false,
- (KeyInfo[playerid][13])? true : false,
- (KeyInfo[playerid][14])? true : false,
- (KeyInfo[playerid][15])? true : false,
- (KeyInfo[playerid][16])? true : false,
- (KeyInfo[playerid][17])? true : false);
- PlayerTextDrawSetString(playerid, KeyList[playerid], string);
- PlayerTextDrawShow(playerid, KeyList[playerid]);
- return 1;
- }
- dcmd_keylist(playerid, params[])
- {
- #pragma unused params
- new string[1024];
- if(!KeyListed[playerid])
- {
- format(string, 1024, "key_action : %d,~n~key_crouch : %d,~n~key_fire : %d,~n~key_sprint : %d,~n~key_secondary_attack : %d,~n~ \
- key_jump : %d,~n~key_look_right : %d,~n~key_handbrake : %d,~n~key_look_left : %d,~n~key_submission : %d,~n~ \
- key_look_behind : %d,~n~key_walk : %d,~n~key_analog_up : %d,~n~key_analog_down : %d,~n~key_analog_left : %d,~n~ \
- key_analog_right : %d,~n~key_yes : %d,~n~key_no : %d,~n~key_ctrl_back : %d",
- (KeyInfo[playerid][key_action])? true : false,
- (KeyInfo[playerid][key_crouch])?true : false,
- (KeyInfo[playerid][key_fire])? true : false,
- (KeyInfo[playerid][key_sprint])? true : false,
- (KeyInfo[playerid][key_secondary_attack])? true : false,
- (KeyInfo[playerid][key_jump])? true : false,
- (KeyInfo[playerid][key_look_right])? true : false,
- (KeyInfo[playerid][key_handbrake])? true : false,
- (KeyInfo[playerid][key_look_left])? true : false,
- (KeyInfo[playerid][key_submission])? true : false,
- (KeyInfo[playerid][key_walk])? true : false,
- (KeyInfo[playerid][key_analog_up])? true : false,
- (KeyInfo[playerid][key_analog_down])? true : false,
- (KeyInfo[playerid][key_analog_left])? true : false,
- (KeyInfo[playerid][key_analog_right])? true : false,
- (KeyInfo[playerid][key_yes])? true : false,
- (KeyInfo[playerid][key_no])? true : false,
- (KeyInfo[playerid][key_ctrl_back])? true : false);
- PlayerTextDrawSetString(playerid, KeyList[playerid], string);
- PlayerTextDrawShow(playerid, KeyList[playerid]);
- KeyListed[playerid] = true;
- }
- else
- {
- PlayerTextDrawHide(playerid, KeyList[playerid]);
- KeyListed[playerid] = false;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement