skin.inc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include <YSI_Coding\y_hooks>
  2. #define CHARACTER_SKIN_SELECT (1)
  3. static PlayerSkin[MAX_PLAYERS];
  4. hook OnPlayerConnect(playerid)
  5. {
  6. PlayerSkin[playerid] = 2;
  7. }
  8. CMD:skin(playerid, params[])
  9. {
  10. if(IsPlayerInAnyVehicle(playerid)) return SendErrorMessage(playerid, "You need to get out of the vehicle first.");
  11. if(IsPlayerDoingAnimation(playerid)) return SendErrorMessage(playerid, "You need to stop the animation first.");
  12. if(isnull(params))
  13. {
  14. new List:skins = list_new();
  15. for(new i = 20001; i <= Models_CountSkins(); i++)
  16. {
  17. AddModelMenuItem(skins, i);
  18. }
  19. for(new i = 1; i <= 311; i++)
  20. {
  21. if(i == 74) continue;
  22. AddModelMenuItem(skins, i);
  23. }
  24. ShowModelSelectionMenu(playerid, "Skins", CHARACTER_SKIN_SELECT, skins);
  25. }
  26. else
  27. {
  28. Player_SetSkin(playerid, strval(params), true);
  29. }
  30. return 1;
  31. }
  32. public OnModelSelectionResponse(playerid, extraid, index, modelid, response)
  33. {
  34. if(extraid == CHARACTER_SKIN_SELECT)
  35. {
  36. if(response == MODEL_RESPONSE_SELECT)
  37. {
  38. Player_SetSkin(playerid, modelid, true);
  39. }
  40. }
  41. return 1;
  42. }
  43. stock Player_GetSkin(playerid)
  44. {
  45. return PlayerSkin[playerid];
  46. }
  47. stock Player_SetSkin(playerid, modelid, bool:save)
  48. {
  49. if(SetPlayerSkin(playerid, modelid))
  50. {
  51. PlayerSkin[playerid] = modelid;
  52. if(save)
  53. {
  54. new query[62];
  55. mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE characters SET skin = %d WHERE id = %d", modelid, Character_GetSQLID(playerid));
  56. mysql_tquery(MySQL_GetHandle(), query);
  57. }
  58. }
  59. }