Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. int ServerGameLogic::Cmd_GiveItem(obj_ServerPlayer* plr, const char* cmd, bool toeveryone, bool topremium)
  2. {
  3. char buf[128];
  4. int itemid;
  5. int count = 1;
  6. if(2 > sscanf(cmd, "%s %d %d", buf, &itemid, &count))
  7. return 2;
  8.  
  9. if(g_pWeaponArmory->getConfig(itemid) == NULL)
  10. {
  11. r3dOutToLog("Cmd_GiveItem: no item %d\n", itemid);
  12. return 3;
  13. }
  14. bool logGiveItem=true;
  15. #ifdef DISABLE_GI_ACCESS_ON_PTE_MAP
  16. if(ginfo_.channel==6) // don't care about PTE maps, as nothing there is saved
  17. logGiveItem=false;
  18. #endif
  19. #ifdef DISABLE_GI_ACCESS_ON_PTE_STRONGHOLD_MAP
  20. if(ginfo_.channel==6 && ginfo_.mapId==GBGameInfo::MAPID_WZ_Cliffside) // don't care about PTE maps, as nothing there is saved
  21. logGiveItem=false;
  22. #endif
  23. #ifdef DISABLE_GI_ACCESS_FOR_CALI_SERVER
  24. if(gServerLogic.ginfo_.mapId==GBGameInfo::MAPID_WZ_California)
  25. logGiveItem=false;
  26. #endif
  27. if(logGiveItem)
  28. LogCheat(plr->peerId_, PKT_S2C_CheatWarning_s::CHEAT_AdminGiveItem, 0, "Admin Spawn Item", "%d (%s) spawned %d with quantity %d on server %s\n", plr->profile_.CustomerID, plr->userName, itemid, count, ginfo_.name);
  29. char* itemname="";
  30. const BaseItemConfig* getitem = g_pWeaponArmory->getConfig(itemid);
  31. if(getitem)
  32. itemname = getitem->m_StoreName;
  33. if(toeveryone)
  34. {
  35. //give item to all players.
  36. for(int i=0; i<curPlayers_; i++)
  37. {
  38. obj_ServerPlayer* player = plrList_[i];
  39. if(player->loadout_->Alive == 0) // do not give item to death players !
  40. continue;
  41. if(player->profile_.ProfileData.PremiumAcc < 0 && topremium ) // only give item if user is premium !
  42. continue;
  43. char msg[512]="";
  44. sprintf(msg,"Player: %s Rewarded with: %s ",player->loadout_->Gamertag, itemname);
  45. PKT_C2C_ChatMessage_s n;
  46. n.userFlag = 0;
  47. n.msgChannel = 1;
  48. r3dscpy(n.msg, msg);
  49. r3dscpy(n.gamertag, "[GiveItem]");
  50. gServerLogic.p2pBroadcastToAll(&n, sizeof(n), true);
  51. wiInventoryItem wi;
  52. wi.itemID = itemid;
  53. wi.quantity = count;
  54. player->BackpackAddItem(wi);
  55. }
  56. }
  57. else
  58. {
  59. wiInventoryItem wi;
  60. wi.itemID = itemid;
  61. wi.quantity = count;
  62. plr->BackpackAddItem(wi);
  63. }
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement