core.inc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #include <YSI_Coding\y_hooks>
  2. #define MAX_ITEMS 100
  3. #define MAX_ITEM_NAME 33
  4. #define TYPE_WEAPON 0
  5. #define TYPE_DRUG 1
  6. #define TYPE_FOOD 2
  7. static ItemOwnerSQLID[MAX_ITEMS];
  8. static ItemName[MAX_ITEMS][MAX_ITEM_NAME];
  9. static ItemType[MAX_ITEMS];
  10. static ItemSize[MAX_ITEMS];
  11. static Float:ItemWeight[MAX_ITEMS];
  12. new Iterator:Item<MAX_ITEMS>;
  13. hook OnMySQLConnected()
  14. {
  15. inline const OnPropertyFound()
  16. {
  17. for(new i; i < cache_num_rows(); i++)
  18. {
  19. if(Iter_Free(Item) == INVALID_ITERATOR_SLOT)
  20. {
  21. printf("The maximum amount of items has been reached. (%d)", Iter_Count(Item));
  22. break;
  23. }
  24. new itemid = INVALID_ITERATOR_SLOT;
  25. cache_get_value_name_int(i, "id", itemid);
  26. cache_get_value_name_int(i, "owner_id", ItemOwnerSQLID[itemid]);
  27. cache_get_value_name(i, "name", ItemName[itemid]);
  28. cache_get_value_name_int(i, "type", ItemType[itemid]);
  29. cache_get_value_name_int(i, "size", ItemSize[itemid]);
  30. cache_get_value_name_float(i, "weight", ItemWeight[itemid]);
  31. Iter_Add(Item, itemid);
  32. }
  33. }
  34. MySQL_TQueryInline(MySQL_GetHandle(), using inline OnPropertyFound, "SELECT * FROM items");
  35. }
  36. stock Inventory_GetItemOwnerSQLID(itemid)
  37. {
  38. return ItemOwnerSQLID[itemid];
  39. }
  40. stock Inventory_SetItemName(itemid, const name[])
  41. {
  42. format(ItemName[itemid], MAX_ITEM_NAME, name);
  43. new query[112];
  44. mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE items SET name = '%e' WHERE id = %d", name, itemid);
  45. mysql_tquery(MySQL_GetHandle(), query);
  46. }
  47. stock Inventory_GetItemName(itemid)
  48. {
  49. return ItemName[itemid];
  50. }
  51. stock Inventory_SetItemType(itemid, type)
  52. {
  53. ItemType[itemid] = type;
  54. new query[84];
  55. mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE items SET type = %d WHERE id = %d", type, itemid);
  56. mysql_tquery(MySQL_GetHandle(), query);
  57. }
  58. stock Inventory_GetItemType(itemid)
  59. {
  60. return ItemType[itemid];
  61. }
  62. stock Inventory_SetItemSize(itemid, size)
  63. {
  64. ItemSize[itemid] = size;
  65. new query[84];
  66. mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE items SET size = %d WHERE id = %d", size, itemid);
  67. mysql_tquery(MySQL_GetHandle(), query);
  68. }
  69. stock Inventory_GetItemSize(itemid)
  70. {
  71. return ItemSize[itemid];
  72. }
  73. stock Inventory_SetItemWeight(itemid, Float:weight)
  74. {
  75. ItemWeight[itemid] = weight;
  76. new query[84];
  77. mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE items SET weight = %f WHERE id = %d", weight, itemid);
  78. mysql_tquery(MySQL_GetHandle(), query);
  79. }
  80. stock Float:Inventory_GetItemWeight(itemid)
  81. {
  82. return ItemWeight[itemid];
  83. }
  84. stock bool:IsValidItem(itemid)
  85. {
  86. if(Iter_Contains(Item, itemid))
  87. {
  88. return true;
  89. }
  90. return false;
  91. }