Likes: 0
Results 1 to 1 of 1
-
31-07-18, 01:32 AM #1
[Antifarm] PvP Kill, Token Reward Script With Cooldown! Prevent players from kill farming!
Register to remove this adMade by Sinistah I take no credits except sharing.
Code:// Made by Sinistah @Ac-Web / Taco @ Lordcraft / TheEpicLazyTaco @BitBucket :) It would be nice if you did not remove this when you repost this years from now. #include "Chat.h" class PvPRewards : PlayerScript { public: PvPRewards() : PlayerScript("PvPRewards") {} // ~ Setting Variables "Not Ideal But it will have to do." ~ // The item you want to give players. uint32 itemID = 45978; // Ammount of items to give. uint32 ammount = 1; // Time in seconds 60 = 1 Minute uint32 cooldown = 60; // This is the message that is sent when a player does recieve a reward. std::string rewardMessage = "|cffff0000[System]|r You recieved a reward and are now on a cooldown."; // Thhis is the message that is sent when a player is on cooldown. std::string cooldownMessage = "|cffff0000[System]|r You are still on a cooldown and can not recieve a reward."; //IMPORTANT! Unless you know what your doing I do not recommend editing anything below this comment. // This is the map that is going to store all of our player's cooldowns during game play. std::unordered_map <uint32, uint32> cooldownList; // Returns our cooldown from the map if it has one. uint32 GetPlayerCD(std::unordered_map<uint32, uint32> m, uint32 key) { //This gets our player's cooldown from the map and returns it to us in a uint32 form. auto itr = m.find(key); if (itr != m.end()) return itr->second; //This is mainly to make the compiler happy about not all paths returning a value but also serves return NULL; } //Updates/Inserts our players unique identifier and their cooldown. void UpdatePlayerCD(std::unordered_map<uint32, uint32>& m, uint32 key, uint32 newValue) { //If it finds a value update it with new value auto itr = m.find(key); if (itr != m.end()) { m[key] = newValue; } //If that character is not in the map add it. else m.insert(std::make_pair(key, newValue)); } //This is where we add our item and send a mssg to our player and then we update the map. void AddReward(Player * killer, uint32 itemId, uint32 ammount, uint32 cooldown) { //Add the item to the player. killer->AddItem(itemId, ammount); //Send Message. ChatHandler(killer->GetSession()).PSendSysMessage(rewardMessage.c_str()); //Inset Data into map. UpdatePlayerCD(cooldownList, killer->GetGUID().GetCounter(), killer->GetTotalPlayedTime() + cooldown); } //This is called when a player kills another player. void OnPVPKill(Player* killer, Player* /*killed*/) { //Variable to store the saved cooldown value we get from our map. uint32 mapCD; //If the map is empty. if (cooldownList.empty()) mapCD = NULL; //Get the cd from the map and stores it in mapCD. else mapCD = GetPlayerCD(cooldownList, killer->GetGUID().GetCounter()); //If mapCD has no value. if (mapCD == NULL) { AddReward(killer, itemID, ammount, cooldown); } //If mapCD has a value. else { // If player's played time is higher then the cooldown time. if (killer->GetTotalPlayedTime() >= mapCD) { // Add items, Send Message, and Update Map. ~ See Function For More Info ~ AddReward(killer, itemID, ammount, cooldown); } else { // If you are still on cooldown send cooldownMessage. ChatHandler(killer->GetSession()).PSendSysMessage(cooldownMessage.c_str()); } } } }; void AddSC_PvPRewards() { new PvPRewards(); }
› See More: [Antifarm] PvP Kill, Token Reward Script With Cooldown! Prevent players from kill farming!Last edited by Wise; 31-07-18 at 02:11 PM.
Related Threads - Scroll Down after related threads if you are only interested to view replies for above post/thread
Visitors found this page by searching for:
Nobody landed on this page from a search engine, yet!
SEO Blog