MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides  
Homepage Register FAQ Members Mark Forums Read Advertise Marketplace FPSowned


Go Back   MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides > Programming > Programming section > C and C++
Reload this Page Understanding Custom Commands
C and C++ Discussions about C and C++

Reply
 
LinkBack Thread Tools
Understanding Custom Commands
(#1)
Old
Osaid1 is Offline
Banned
Rep Power: 0
Reputation: 45
Osaid1 is on a distinguished road
 
Posts: 51
Join Date: Apr 2008
Understanding Custom Commands - 09-03-2008

Custom Commands are quite tricky to understand, and also difficult to make if you do not know what your doing. We're going to be using a command "#rezz" Author: Dark Alex.
First, just take a look through his script, study it.

Code:
//---------------------
// Name: Playercommands
// Author: Darkalex
//---------------------

#include "StdAfx.h"
#include "Setup.h"

static string rezzcmd = "#rezz"; //Revive Player-command
bool rezzon = true; //Will be switchable later ingame via GMCommand

void EventPlayerCommands(Player * pPlayer, uint32 Type, uint32 Lang, const char * Message, const char * Misc)
{
 //#rezz-Command - Start
  if(Message == rezzcmd)
   {
      if(rezzon)
if( rezzon ) { //You can add parameters where reviing is enabled here. e.g. for allowing it only on kalimdor and in Zone 123: (pPlayer->GetMapId() == 1 || pPlayer->GetZoneId() == 123)
        if (pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE)>=7500)  //Will cost 75 Silver (check if enough money)
        {
pPlayer->SetUInt32Value(PLAYER_FIELD_COINAGE,(pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE) - 7500)); //Here 75 Silver is removed
                 sEventMgr.AddEvent(pPlayer, &Player::RemoteRevive, EVENT_PLAYER_REST, 1, 1,0);
        } else pPlayer->BroadcastMessage("You don't have 75 silver in your backpack.");
         } else
            pPlayer->BroadcastMessage("You can't revive here!");
      else
         pPlayer->BroadcastMessage("You can't revive here!.");
   }
  //#rezz-Command end.
}


void SetupPlayerCommands(ScriptMgr * mgr)
{
   mgr->register_hook(SERVER_HOOK_EVENT_ON_CHAT, (void *) EventPlayerCommands);
}
Now, the first bit is pretty much the starting bit, mostly all scripts start with "StdAfx.h" and "Setup.h" (Dont forget to put these in!"

#include "StdAfx.h"
#include "Setup.h"

static string rezzcmd = "#rezz";
bool rezzon = true;


Now You see "#rezz"?? Thats what you type into game. Yes! Sure the scripting is difficult but easy for the players!
Dont need to mess around with true and false there, but say if you wanted to make a command that will enable you to use a command whilst in combat you can type something like Bypasscombat = false will make it so you cant use the command in combat, but placing false with true will make it so you can use it.

void EventPlayerCommands(Player * pPlayer, uint32 Type, uint32 Lang, const char * Message, const char * Misc)

Now this part is everything you need to include for your script (Cant really explain it) But if you didnt want to explain anything You could write void EventPlayerCommands() the () is where you can place thing's like uint32 pPlayer etc.

if(Message == rezzcmd)
{
if(rezzon)
if( rezzon ) {
if (pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE)>=7500
{
Player->SetUInt32Value(PLAYER_FIELD_COINAGE,(pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE) - 7500));
sEventMgr.AddEvent(pPlayer, &Player::RemoteRevive, EVENT_PLAYER_REST, 1, 1,0);
} else pPlayer->BroadcastMessage("You don't have 75 silver in your backpack.");


Your probably thinking wow... I don't understand a word of this.. But it's actually quite simple.
Just ignore this part:

if(Message == rezzcmd)
{
if(rezzon)
if( rezzon ) {


You may add parameters if you wish, but if your a begginer just keep it simple!

if (pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE)>=7500
{
Player->SetUInt32Value(PLAYER_FIELD_COINAGE,(pPlayer->GetUInt32Value(PLAYER_FIELD_COINAGE) - 7500));

Now what this part does is tells the system to take 75 silver from your backpack, and throw it into mid-air! Well it just pays for your rezzing cost.

sEventMgr.AddEvent(pPlayer, &Player::RemoteRevive, EVENT_PLAYER_REST, 1, 1,0);
} else pPlayer->BroadcastMessage("You don't have 75 silver in your backpack.");


Oh NO! You don't have 75 silver in your backpack! Now you can't use your command.. That's pretty much what all that garbage does if you didnt have this it would take 75 silver regardless of you having enough money and the command would work!

} else
pPlayer->BroadcastMessage("You can't revive here!");
else
pPlayer->BroadcastMessage("You can't revive here!.");
}
}


This should be pretty simple to understand "You can't revive here!"

And the ending of the script..

void SetupPlayerCommands(ScriptMgr * mgr)
{
mgr->register_hook(SERVER_HOOK_EVENT_ON_CHAT, (void *) EventPlayerCommands);
}


Now.. Where it has PlayerCommands in the script change that to what ever you like! the SERVER_HOOK_EVENT_ON_CHAT will find the "#rezz" command and when you type this in game it will say.. hey that player just said #rezz to me.. I know what to do.. Ill rezz him at no cost to myself but charge him 75 silver !! MWahaaaaa
Now thats all! Post any questions/feedback you have!


Credits to descending.

Quote:
Originally Posted by descending
Feel free to post it anywhere but remember to give credits

Last edited by Osaid1; 09-05-2008 at 04:49 AM..
Reply With Quote

Donate to remove ads.
(#2)
Old
runiker's Avatar
runiker is Offline
Contributor
Rep Power: 2
Reputation: 92
runiker will become famous soon enough
 
Posts: 437
Join Date: Nov 2007
09-04-2008

sweet u get 1 rep cookie today!


Reply With Quote
(#3)
Old
Moffeman's Avatar
Moffeman is Offline
Contributor
Rep Power: 3
Reputation: 219
Moffeman has a spectacular aura aboutMoffeman has a spectacular aura aboutMoffeman has a spectacular aura about
 
Posts: 723
Join Date: Sep 2007
Location: Sweden
09-05-2008

zoore from me x2


http://www.mmowned.com/forums/image.php?type=sigpic&userid=116413&dateline=1228154949
Reply With Quote
(#4)
Old
*~Descending~* is Offline
Sergeant
Rep Power: 1
Reputation: 18
*~Descending~* is on a distinguished road
 
Posts: 69
Join Date: Sep 2008
09-06-2008

Thank you for posting this and giving correct credits
Reply With Quote
(#5)
Old
Osaid1 is Offline
Banned
Rep Power: 0
Reputation: 45
Osaid1 is on a distinguished road
 
Posts: 51
Join Date: Apr 2008
09-06-2008

Quote:
Originally Posted by *~Descending~* View Post
Thank you for posting this and giving correct credits
my pleasure ^^
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On



Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vBulletin Skin developed by: vBStyles.com


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366