Выдаем дроп игрокам в конце матча, а также делаем уведомление в чате.
Выполнять код дропа можно в любой момент до конца матча.
Полную информацию о неиспользуемых полях entity_updates и iteminfo можно посмотреть здесь github
Credits: leaked csgo source code
Выполнять код дропа можно в любой момент до конца матча.
Полную информацию о неиспользуемых полях entity_updates и iteminfo можно посмотреть здесь github
C-подобный:
Protobuf pb = view_as<Protobuf>(StartMessageAll("SendPlayerItemDrops", USERMSG_RELIABLE));
// Можно добавлять сразу несколько оружий в одно сообщение
Protobuf entity_updates = pb.AddMessage("entity_updates");
int itemId[2];
// Уникальный номер оружия, который не должен совпадать с другими
itemId[0] = 444;
itemId[1] = 444;
entity_updates.SetInt("accountid", GetSteamAccountID(client)); // AccountID игрока
entity_updates.SetInt64("itemid", itemId);
entity_updates.SetInt("defindex", CS_WeaponIDToItemDefIndex(CSWeapon_AWP)); // Defindex оружия
entity_updates.SetInt("paintindex", 344); // Skin ID оружия (344 - Dragon Lore)
entity_updates.SetInt("rarity", 6); // Редкость оружия. Влияет на задержку выпадения.
// ==================================================
entity_updates = pb.AddMessage("entity_updates");
itemId[0] = 555;
itemId[1] = 555;
entity_updates.SetInt("accountid", GetSteamAccountID(client));
entity_updates.SetInt64("itemid", itemId);
entity_updates.SetInt("defindex", CS_WeaponIDToItemDefIndex(CSWeapon_AWP));
entity_updates.SetInt("paintindex", 446); // 446 - Medusa
entity_updates.SetInt("rarity", 6);
// ==================================================
entity_updates = pb.AddMessage("entity_updates");
itemId[0] = 666;
itemId[1] = 666;
entity_updates.SetInt("accountid", GetSteamAccountID(client));
entity_updates.SetInt64("itemid", itemId);
entity_updates.SetInt("defindex", CS_WeaponIDToItemDefIndex(CSWeapon_M4A1));
entity_updates.SetInt("paintindex", 309); // 309 - Howl
entity_updates.SetInt("rarity", 6);
EndMessage();
C-подобный:
Protobuf pb = view_as<Protobuf>(StartMessageAll("SendPlayerItemFound", USERMSG_RELIABLE));
Protobuf iteminfo = pb.ReadMessage("iteminfo");
iteminfo.SetInt("defindex", CS_WeaponIDToItemDefIndex(CSWeapon_KNIFE_M9_BAYONET)); // Defindex оружия
iteminfo.SetInt("paintindex", 12); // Skin ID оружия (12 - Crimson Web)
iteminfo.SetInt("rarity", 6); // Редкость оружия. Определяет цвет текста (6 - красный)
iteminfo.SetInt("quality", 12); // Качество оружия (12 - сувенирный)
// Как игрок получил оружее
// 2 - за выполнение контракта
// 3 - при обмене
// 5 - из кейса
// 6 - в подарок
iteminfo.SetInt("inventory", 5);
pb.SetInt("entindex", client); // Игрок, получивший оружие
EndMessage();