- Авг
- 19
- 3
Пользователь
ку
там где ваш stock AddItem меняйте его на мой:
там где ваш stock AddItem меняйте его на мой:
additem:
stock AddItem(playerid, itemid, amount = 1, color = 0, id = 0, enchant = 0, mending = 100, ending = 0, const numberData[] = "", bool:message = true)
{
if(GetInvSet(playerid) >= PI[playerid][pInvCell])
return SCM(playerid, COLOR_RED, !"[Ошибка] {FFFFFF}У вас не хватает места в инвентаре!");
for(new i; i < PI[playerid][pInvCell]; i++)
{
if(Inventory[playerid][0][i] != itemid) continue;
if(ItemsInfo[itemid][itemStack] > Inventory[playerid][1][i])
{
if(amount < ItemsInfo[itemid][itemStack])
{
if(amount+Inventory[playerid][1][i] < ItemsInfo[itemid][itemStack])
{
Inventory[playerid][1][i] += amount;
amount = 0;
}
else
{
amount = Inventory[playerid][1][i]+amount-ItemsInfo[itemid][itemStack];
Inventory[playerid][1][i] = ItemsInfo[itemid][itemStack];
}
}
else
{
amount -= ItemsInfo[itemid][itemStack]-Inventory[playerid][1][i];
Inventory[playerid][1][i] = ItemsInfo[itemid][itemStack];
}
if (shopopen{playerid} || InventoryOpen{playerid} || Int_GetPlayerData(playerid, "OtherInventOpen"))
InventSlotUpdate(playerid, GetInvID(playerid, i, 1), i);
}
if(amount <= 0)
return SaveInventory(playerid);
}
for(new i; i < PI[playerid][pInvCell]; i++)
{
if(Inventory[playerid][0][i]) continue;
Inventory[playerid][0][i] = itemid;
if(itemid == 7034)
sscanf(numberData, "P<|>s[10]s[10]s[10]", InventoryNumber[playerid][0][i], InventoryNumber[playerid][1][i], InventoryNumber[playerid][2][i]);
Inventory[playerid][1][i] = (ItemsInfo[itemid][itemStack] > amount ? amount : ItemsInfo[itemid][itemStack]);
Inventory[playerid][2][i] = color;
Inventory[playerid][3][i] = id;
Inventory[playerid][4][i] = enchant;
Inventory[playerid][5][i] = mending;
Inventory[playerid][6][i] = ending;
if(ItemsInfo[itemid][itemStack] > amount)
{
Inventory[playerid][1][i] = amount;
amount = 0;
if(shopopen{playerid} || InventoryOpen{playerid} || Int_GetPlayerData(playerid, "OtherInventOpen"))
InventSlotUpdate(playerid, GetInvID(playerid, i, 1), i);
return SaveInventory(playerid);
}
else
{
Inventory[playerid][1][i] = ItemsInfo[itemid][itemStack];
amount -= ItemsInfo[itemid][itemStack];
if(shopopen{playerid} || InventoryOpen{playerid} || Int_GetPlayerData(playerid, "OtherInventOpen"))
InventSlotUpdate(playerid, GetInvID(playerid, i, 1), i);
}
if (message == true)
{
if(GetPlayerLauncher(playerid) == 1)
{
inventoryClientMessage(playerid, \
.colour = COLOR_WHITE, \
.message = ":u1f7e8: Вам был добавлен предмет ", \
.inv_slot = i, \
.amount = amount);
}
else
{
format(global_str, 144, ":u1f7e8: Вам был добавлен предмет '%s'", ItemsInfo[itemid][itemName]);
if(amount > 1) format(global_str, 144, "%s (%d шт.)", global_str, amount);
SendClientMessage(playerid, COLOR_WHITE, global_str);
}
//цеф-additem
if(GetPlayerLauncher(playerid))
{
ExecuteEventf(playerid, "window.executeEvent('event.damageInformer.initializeDamageInfo', '[{\"type\":\"outgoing\",\"id\":%d,\"name\":\"%s\",\"nameColor\":\"#FFFFFF\",\"valueColor\":\"#FFFFFF\",\"imageType\":1,\"imageId\":%d,\"showTime\":5000,\"tag\":\"+%d\",\"tagTextColor\":\"#000000\",\"tagBackgroundColor\":\"#32CD32\"}]');", itemid, ItemsInfo[itemid][itemName], itemid, amount);
}
}
if(amount <= 0)
return SaveInventory(playerid);
}
return true;
}
так же inventoryClientMessage
inventoryclientmessage:
stock inventoryClientMessage(playerid, colour, const message[], message_type = 0, inv_slot = INVALID_DATA_ID, item_id = 0, amount = 1, const addination_string[] = "")
{
new BitStream:bs = BS_New(), argument_count, message_text_count = 1, inventory_types[20] = {INVALID_DATA_ID, ...}, inventory_slot_data[20] = {0, ...};
if(strlen(addination_string)) message_text_count++;
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, 210,
PR_UINT32, colour,
PR_UINT8, message_type,
PR_UINT8, ++message_text_count,
PR_UINT8, INV_MSG_TYPE_TEXT,
PR_UINT16, strlen(message),
PR_STRING, message);
if(inv_slot != INVALID_DATA_ID && item_id == 0) item_id = Inventory[playerid][0][inv_slot];
inventory_types[0] = INV_MSG_TYPE_ITEM_COUNT_SERVER;
inventory_slot_data[0] = ItemsInfo[item_id][itemStack];
argument_count++;
if(inv_slot != INVALID_DATA_ID)
{
if(IsAAks(item_id) || IsASkinInv(item_id))
{
if(IsAAks(item_id))
{
inventory_slot_data[1] = Inventory[playerid][2][inv_slot];
if(inventory_slot_data[1]) inventory_types[1] = INV_MSG_TYPE_COLOUR, argument_count++;
inventory_slot_data[2] = Inventory[playerid][4][inv_slot];
if(inventory_slot_data[2]) inventory_types[2] = INV_MSG_TYPE_ENCHANT, argument_count++;
inventory_slot_data[6] = Inventory[playerid][6][inv_slot];
if(inventory_slot_data[6] > Global_Time) inventory_types[6] = INV_MSG_TYPE_UNIX_TIME, argument_count++;
}
argument_count++;
inventory_types[3] = INV_MSG_TYPE_MENDING;
inventory_slot_data[3] = Inventory[playerid][5][inv_slot];
}
}
BS_WriteValue(bs,
PR_UINT8, INV_MSG_TYPE_ITEM_ID,
PR_UINT16, item_id,
PR_UINT16, ++argument_count,
PR_UINT32, amount);
for(new i; i < sizeof(inventory_types); i++)
{
if(inventory_types[i] == INVALID_DATA_ID) continue;
BS_WriteValue(bs,
PR_UINT8, inventory_types[i],
PR_UINT32, inventory_slot_data[i]);
}
if(message_text_count > 2)
{
BS_WriteValue(bs,
PR_UINT8, INV_MSG_TYPE_TEXT,
PR_UINT16, strlen(addination_string),
PR_STRING, addination_string);
}
PR_SendPacket(bs, playerid);
BS_Delete(bs);
return true;
}
есть какие то ошибки? писать в лс(тг)- @roon1332