Advertisement
Guest User

do_change_race edited ms0134

a guest
Jan 11th, 2015
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. ACMD(do_change_race)
  2. {
  3.     char arg1[256], arg2[256];
  4.     two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
  5.     // init
  6.     bool bIsSetSkillGroup = false;
  7.     DWORD dwRace = MAIN_RACE_MAX_NUM;
  8.     DWORD dwSkillGroup = 0;
  9.     // check arg1
  10.     if (!*arg1)
  11.     {
  12.         goto USAGE;
  13.         return;
  14.     }
  15.     // check&analyze arg2
  16.     if (*arg2)
  17.     {
  18.         str_to_number(dwSkillGroup, arg2);
  19.         dwSkillGroup = MINMAX(0, dwSkillGroup, 2);
  20.         bIsSetSkillGroup = true;
  21.     }
  22.     // analyze arg1
  23.     str_to_number(dwRace, arg1);
  24.     if (dwRace >= MAIN_RACE_MAX_NUM)
  25.     {
  26.         goto USAGE;
  27.         return;
  28.     }
  29.     // skip if same race
  30.     if (dwRace==ch->GetRaceNum())
  31.         return;
  32.     // process change race
  33.     ch->ChatPacket(CHAT_TYPE_INFO, "Old Race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
  34.     ch->SetRace(dwRace);
  35.     ch->ClearSkill();
  36.     // ch->ClearSubSkill();
  37.     if (bIsSetSkillGroup)
  38.     {
  39.         ch->SetSkillGroup(dwSkillGroup);
  40.     }
  41.     // quick mesh change workaround begin
  42.     ch->SetPolymorph(101);
  43.     ch->SetPolymorph(0);
  44.     // quick mesh change workaround end
  45.     ch->ChatPacket(CHAT_TYPE_INFO, "New Race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
  46.     return;
  47.     // usage
  48. USAGE:
  49.     ch->ChatPacket(CHAT_TYPE_INFO, "Usage: /change_race <race_id> <&skill_group>");
  50.     // race list
  51.     ch->ChatPacket(CHAT_TYPE_INFO, "RACE-LIST");
  52.     ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior M = %d", MAIN_RACE_WARRIOR_M);
  53.     ch->ChatPacket(CHAT_TYPE_INFO, "\tNinja F = %d", MAIN_RACE_ASSASSIN_W);
  54.     ch->ChatPacket(CHAT_TYPE_INFO, "\tSura M = %d", MAIN_RACE_SURA_M);
  55.     ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman F = %d", MAIN_RACE_SHAMAN_W);
  56.     ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior W = %d", MAIN_RACE_WARRIOR_W);
  57.     ch->ChatPacket(CHAT_TYPE_INFO, "\tAssassin M = %d", MAIN_RACE_ASSASSIN_M);
  58.     ch->ChatPacket(CHAT_TYPE_INFO, "\tSura W = %d", MAIN_RACE_SURA_W);
  59.     ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman M = %d", MAIN_RACE_SHAMAN_M);
  60. #ifdef ENABLE_WOLFMAN_CHARACTER
  61.     ch->ChatPacket(CHAT_TYPE_INFO, "\tWolfman M = %d", MAIN_RACE_WOLFMAN_M);
  62. #endif
  63.     ch->ChatPacket(CHAT_TYPE_INFO, "\tRACE_MAX_NUM = %d", MAIN_RACE_MAX_NUM);
  64.     // group list
  65.     ch->ChatPacket(CHAT_TYPE_INFO, "GROUP-LIST");
  66.     ch->ChatPacket(CHAT_TYPE_INFO, "\tNone = 0");
  67.     ch->ChatPacket(CHAT_TYPE_INFO, "\tFirst = 1");
  68.     ch->ChatPacket(CHAT_TYPE_INFO, "\tSecond = 2");
  69.     return;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement