Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- service.h
- #define __FH_GIVE_SKILL__
- cmd.cpp
- #if defined(__FH_GIVE_SKILL__)
- ACMD(do_give_skill);
- #endif
- #if defined(__FH_GIVE_SKILL__)
- { "give_skill", do_give_skill, 0, POS_DEAD, GM_PLAYER },
- #endif
- @cmd_general.cpp
- ACMD(functia_ta)
- {
- //CODU TAU CE AI TU ACOLO GEN INLOCUESTI CU ASTA
- #if defined(__FH_GIVE_SKILL__)
- char arg1[256];
- one_argument(argument, arg1, sizeof(arg1));
- if (!*arg1)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "Syntax Error");
- return;
- }
- // if (ch->GetSkillGroup() != 0 && ch->GetLevel() < 5) //dacare nu are level 5 return
- if (ch->GetSkillGroup() != 0 //nu necesita level.
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("YOU_CAN_NOT_DO_THAT"));
- return;
- }
- int iValue = 0;
- str_to_number(iValue, arg1);
- ch->SetSkillGroup(iValue);
- ch->ClearSkill();
- extern void do_give_skill(LPCHARACTER ch, const char* argument, int cmd, int subcmd);
- do_give_skill(ch, NULL, 0, 0);
- #else
- .....
- int iValue= 0;
- str to number(iValue, argl);
- if (iValue) {
- ch->SetSkillGroup(iValue);
- ch->Clearskill();
- for(int i =-0;-i <SKIlL MAX NuM; i++)
- {
- if (true == ch->CanUseskill(i))
- {
- ch->SetSkillLevel(i, 40);
- }
- }
- }
- ch->UpdatePacket();
- ch->ComputePoints();
- ch->SkillLevelPacket();
- #endif
- }
- #if defined(__FH_GIVE_SKILL__)
- ACMD(do_give_skill)
- {
- ch->SetHorseLevel(30);
- ch->SetSkillLevel(SKILL_HORSE, 30);
- ch->SetSkillLevel(SKILL_COMBO, 2);
- for (int i = 0; i < SKILL_MAX_NUM; i++)
- { /*
- SKILL_MASTER = 20
- SKILL_GRAND_MASTER = 30
- SKILL_PERFECT_MASTER = 40
- */
- if (true == ch->CanUseSkillForM1(i))
- {
- ch->SetSkillLevel(i, 20); // SKILL_MASTER
- }
- else
- {
- switch (i)
- {
- case SKILL_HORSE_WILDATTACK:
- case SKILL_HORSE_CHARGE:
- case SKILL_HORSE_ESCAPE:
- case SKILL_HORSE_WILDATTACK_RANGE:
- ch->SetSkillLevel(i, 20); // SKILL_MASTER
- break;
- case SKILL_LEADERSHIP:
- case SKILL_CREATE:
- case SKILL_MINING:
- case SKILL_POLYMORPH:
- case SKILL_HORSE_SUMMON:
- case 132:
- case SKILL_ROLE_PROFICIENCY:
- case SKILL_INSIGHT:
- ch->SetSkillLevel(i, 40); // SKILL_PERFECT_MASTER
- break;
- }
- }
- }
- ch->UpdatePacket();
- ch->ComputePoints();
- ch->SkillLevelPacket();
- }
- #endif
- char_skill.h
- #if defined(__FH_GIVE_SKILL__)
- public:
- bool CanUseSkillForM1(DWORD dwSkillVnum) const;
- #endif
- char_skill.cpp
- cauta
- bool CHARACTER::CanUseSkill(DWORD dwSkillVnum) const
- pune deasupra lui
- #if defined(__FH_GIVE_SKILL__)
- bool CHARACTER::CanUseSkillForM1(DWORD dwSkillVnum) const
- {
- if (0 == dwSkillVnum) return false;
- if (0 < GetSkillGroup())
- {
- const int SKILL_COUNT = 7;
- static const DWORD SkillList[JOB_MAX_NUM][SKILL_GROUP_MAX_NUM][SKILL_COUNT] =
- {
- { { 1, 2, 3, 4, 5, 6, 176 }, { 16, 17, 18, 19, 20, 21, 176 } },
- { { 31, 32, 33, 34, 35, 36, 177 }, { 46, 47, 48, 49, 50, 51, 178 } },
- { { 61, 62, 63, 64, 65, 66, 179 }, { 76, 77, 78, 79, 80, 81, 180 } },
- { { 91, 92, 93, 94, 95, 96, 181 }, { 106, 107, 108, 109, 110, 111, 182 } },
- { { 170, 171, 172, 173, 174, 175, 183 }, { 0, 0, 0, 0, 0, 0, 0 } },
- };
- const DWORD* pSkill = SkillList[GetJob()][GetSkillGroup() - 1];
- for (int i = 0; i < SKILL_COUNT; ++i)
- {
- if (pSkill[i] == dwSkillVnum) return true;
- }
- }
- switch (dwSkillVnum)
- {
- case SKILL_LANGUAGE1:
- case SKILL_LANGUAGE2:
- case SKILL_LANGUAGE3:
- return true;
- }
- return false;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment