I might as well release mine since I got it working perfectly.
Skills.ccp
Mobs.ccpCode:else if(strcmp(name, "end2311003") == 0) Skills::end2311003(player); // Holy Symbol else if(strcmp(name, "end5101002") == 0) Skills::end5101002(player); // GM Holy Symbol else if(skillid == 2311003){ // Holy Symbol timer->stop(player, "end2311003"); end2311003(player); } else if(skillid == 5101002){ // GM Holy Symbol timer->stop(player, "end5101002"); end5101002(player); } else if(skillid == 2311003){ // Holy Symbol timer->stop(player, "end2311003"); vals.push_back(skills[skillid][level].x); SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0, 0, (char) 0x1, 0, 0, 0, 0, vals, 1); timer->setSkillTimer(player, "end2311003", skills[skillid][level].time*1000); player->setHS(true); } else if(skillid == 5101002){ // GM Holy Symbol vals.push_back(50); for (unsigned int x=0; x<Maps::info[player->getMap()].Players.size(); x++){ SkillsPacket::useSkill(Maps::info[player->getMap()].Players[x], Maps::info[player->getMap()].Players, skillid, 1800*1000, 0, 0, 0, (char) 0x1, 0, 0, 0, 0, vals, 1); Player *curplayer = Maps::info[player->getMap()].Players[x]; curplayer->setGHS(true); timer->setSkillTimer(Maps::info[player->getMap()].Players[x], "end5101002", 1800*1000); } } void Skills::end2311003(Player* player){ // Holy Symbol SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0, 0, (char)0x1, 0, 0, 0, 0, 1); player->setHS(false); } void Skills::end5101002(Player* player){ // GM Holy Symbol SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0, 0, (char)0x1, 0, 0, 0, 0, 1); player->setGHS(false); }
Skills.hCode:Find: Levels::giveEXP(player, mobinfo[mob->getMobID()].exp); Replace: float hsrate = 0; float exprate2 = 0; if (player->getHS() == true) { hsrate = Skills::skills[2311003][player->skills->getSkillLevel(2311003)].x; } else if (player->getGHS() == true) { hsrate = 50; } exprate2 = 1+(hsrate/100); Levels::giveEXP(player, mobinfo[mob->getMobID()].exp * exprate2); or for those of you who have the int EXPRATE at the top. float hsrate = 0; float exprate2 = 0; if (player->getHS() == true) { hsrate = Skills::skills[2311003][player->skills->getSkillLevel(2311003)].x; } else if (player->getGHS() == true) { hsrate = 50; } exprate2 = 1+(hsrate/100); Levels::giveEXP(player, mobinfo[mob->getMobID()].exp * EXPRATE * exprate2);
Player.hCode:static void end2311003(Player* player); // Holy Symbol static void end5101002(Player* player); // GM Holy Symbol
Code:Player () holysymbol=false; gholysymbol=false; Public: bool getHS() { return holysymbol; } void setHS(bool holysymbol) { this->holysymbol = holysymbol; } bool getGHS() { return gholysymbol; } void setGHS(bool gholysymbol) { this->gholysymbol = gholysymbol; } Private: bool gholysymbol; bool holysymbol;
Credits: Doyos and LeoDirk
Ja Ne~


![[Release]Holy Symbol - Rev 7 - Working Version (Normal + GM)](http://ragezone.com/hyper728.png)


