Xterminator1, do reply your inbox.
GM Bless, hmm, maybe we need a gm packet for that?
Printable View
Xterminator1, do reply your inbox.
GM Bless, hmm, maybe we need a gm packet for that?
I tried looking for skill 4111002 (Shadow Partner) in that Skills.cpp and I couldn't find it.
So what do I add to/modify if I just want SP?
You take one of the other skills that are in the skills.cpp file as an example and build around SP.
use the original release thread to see how to plug in SP after looking at how the skills are coded in skills.cpp.
Goody, someone that actually gives hints and encourages coding!
I'd rep you if I could :]
FyRiS, for your info, he's the thread starter of that thread. lmfao.
Anyway, Still getting craps with hyper body.
thankes
I've got the following in Skills.cpp/.h for Shadow Partner.
The icon shows up and a rock gets used up, but the skill doesn't seem to work (shadow doesn't show up behind player & only two stars are thrown with Lucky Seven)Code:Skills.cpp
else if(strcmp(name, "end4111002") == 0) Skills::end4111002(player);
else if(skillid == end4111002){
timer->stop(player, "endend4111002");
endend4111002(player);
}
else if(skillid == 4111002){
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4111002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, (char)0, 0, 0, 0x4, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4111002", skills[skillid][level].time*1000);
}
void Skills::end4111002(Player* player){
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, (char)0, 0, 0, 0x4, 0, 0, 0, 0);
}
Skills.h
static void end4111002(Player* player);
I've bolded some errors in it. Fixing it may or may not fix SP, I'm not sure.Code:Skills.cpp
else if(strcmp(name, "end4111002") == 0) Skills::end4111002(player);
else if(skillid == end4111002){
timer->stop(player, "endend4111002");
endend4111002(player); //get rid of the first end
}
else if(skillid == 4111002){
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4111002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, (char)0, 0, 0, 0x4, 0, 0, 0, vals, 0); // move the (char) over to the 0x4
timer->setSkillTimer(player, "end4111002", skills[skillid][level].time*1000);
}
void Skills::end4111002(Player* player){
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, (char)0, 0, 0, 0x4, 0, 0, 0, 0); //move the (char) over to the 0x4
}
Skills.h
static void end4111002(Player* player);
If it doesn't work, replace your code with the following in the relevant sections:
Code:else if(strcmp(name, "end4111002") == 0) Skills::end4111002(player);
Code:else if(skillid == 4111002){
timer->stop(player, "end4111002");
end4111002(player);
}
Code:else if(skillid == 4111002){
vals.push_back(skills[skillid][level].x);
vals.push_back(skills[skillid][level].y);
timer->stop(player, "end4111002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0, 0, (char)0x4, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4111002", skills[skillid][level].time*1000);
}
Code:void Skills::end4111002(Player* player){
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0, 0, 0x4, 0, 0, 0, 0, 0);
}
Code:static void end4111002(Player* player);
It's okay, I figured it out myself :P
Now to try other skills ..
s4itox, help me with this part.
I got no idea but the timer screw itself up.
Top code
Bottom codeCode:SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*310, 0, (char)0x20, 0, 0, 0, 0, 0, 0, vals, 0);
Code:SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 2, 0, (char)0x20, 0, 0, 0, 0, 0, 0);
All Boosters
Skills.cpp
Code:else if(strcmp(name, "end1101004") == 0) Skills::end1101004(player); //Sword Booster - Fighter
else if(strcmp(name, "end1101005") == 0) Skills::end1101005(player); //Axe Booster - Fighter
else if(strcmp(name, "end1201004") == 0) Skills::end1201004(player); //Sword Booster - Page
else if(strcmp(name, "end1201005") == 0) Skills::end1201005(player); //BW Booster - Page
else if(strcmp(name, "end1301004") == 0) Skills::end1301004(player); //Spear Booster - Spearman
else if(strcmp(name, "end1301005") == 0) Skills::end1301005(player); //Pole Arm Booster - Spearman
else if(strcmp(name, "end2111005") == 0) Skills::end2111005(player); //Spell Booster - Fire & Poison Mage
else if(strcmp(name, "end2211005") == 0) Skills::end2211005(player); //Spell Booster - Ice & Lightning Mage
else if(strcmp(name, "end3101002") == 0) Skills::end3101002(player); //Bow Booster - Hunter
else if(strcmp(name, "end3201002") == 0) Skills::end3201002(player); //Crossbow Booster - Crossbowman
else if(strcmp(name, "end4201002") == 0) Skills::end4201002(player); //Dagger Booster - Bandit
else if(strcmp(name, "end4101003") == 0) Skills::end4101003(player); //Claw Booster - Assassin
Code:else if(skillid == 1101004){ //Sword Booster - Fighter
timer->stop(player, "end1101004");
end1101004(player);
}
else if(skillid == 1101005){ //Axe Booster - Fighter
timer->stop(player, "end1101005");
end1101005(player);
}
else if(skillid == 1201004){ //Sword Booster - Page
timer->stop(player, "end1201004");
end1201004(player);
}
else if(skillid == 1201005){ //BW Booster - Page
timer->stop(player, "end1201005");
end1201005(player);
}
else if(skillid == 1301004){ //Spear Booster - Spearman
timer->stop(player, "end1301004");
end1301004(player);
}
else if(skillid == 1301005){ //Pole Arm Booster - Spearman
timer->stop(player, "end1301005");
end1301005(player);
}
else if(skillid == 2111005){ //Spell Booster - Fire & Poison Mage
timer->stop(player, "end2111005");
end2111005(player);
}
else if(skillid == 2211005){ //Spell Booster - Ice & Lightning Mage
timer->stop(player, "end2211005");
end2211005(player);
}
else if(skillid == 3101002){ //Bow Booster - Hunter
timer->stop(player, "end3101002");
end3101002(player);
}
else if(skillid == 3201002){ //Crossbow Booster - Crossbowman
timer->stop(player, "end3201002");
end3201002(player);
}
else if(skillid == 4201002){ //Dagger Booster - Bandit
timer->stop(player, "end4201002");
end4201002(player);
}
else if(skillid == 4101003){ //Claw Booster - Assassin
timer->stop(player, "end4101003");
end4101003(player);
}
Code:else if(skillid == 1101004){ //Sword Booster - Fighter
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1101004");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1101004", skills[skillid][level].time*1000);
}
else if(skillid == 1101005){ //Axe Booster - Fighter
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1101005");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1101005", skills[skillid][level].time*1000);
}
else if(skillid == 1201004){ //Sword Booster - Page
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1201004");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1201004", skills[skillid][level].time*1000);
}
else if(skillid == 1201005){ //BW Booster - Page
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1201005");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1201005", skills[skillid][level].time*1000);
}
else if(skillid == 1301004){ //Spear Booster - Spearman
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1301004");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1301004", skills[skillid][level].time*1000);
}
else if(skillid == 1301005){ //Pole Arm Booster - Spearman
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end1301005");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end1301005", skills[skillid][level].time*1000);
}
else if(skillid == 2111005){ //Spell Booster - Fire & Poison Mage
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end2111005");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end2111005", skills[skillid][level].time*1000);
}
else if(skillid == 2211005){ //Spell Booster - Ice & Lightning Mage
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end2211005");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end2211005", skills[skillid][level].time*1000);
}
else if(skillid == 3101002){ //Bow Booster - Hunter
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end3101002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end3101002", skills[skillid][level].time*1000);
}
else if(skillid == 3201002){ //Crossbow Booster - Crossbowman
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end3201002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end3201002", skills[skillid][level].time*1000);
}
else if(skillid == 4201002){ //Dagger Booster - Bandit
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4201002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4201002", skills[skillid][level].time*1000);
}
else if(skillid == 4101003){ //Claw Booster - Assassin
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4101003");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0x8, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4101003", skills[skillid][level].time*1000);
}
Skills.hCode:void Skills::end1101004(Player* player){ //Sword Booster - Fighter
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end1101005(Player* player){ //Axe Booster - Fighter
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end1201004(Player* player){ //Sword Booster - Page
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end1201005(Player* player){ //BW Booster - Page
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end1301004(Player* player){ //Spear Booster - Spearman
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end1301005(Player* player){ //Pole Arm Booster - Spearman
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end2111005(Player* player){ //Spell Booster - Fire & Poison Mage
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end2211005(Player* player){ //Spell Booster - Ice & Lightning Mage
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end3101002(Player* player){ //Bow Booster - Hunter
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end3201002(Player* player){ //Crossbow Booster - Crossbowman
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end4201002(Player* player){ //Dagger Booster - Bandit
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end4101003(Player* player){ //Claw Booster - Assassin
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0x8, 0, 0, 0, 0, 0, 0, 0);
}
Bandit & Assassin HasteCode:static void end1101004(Player* player); //Sword Booster - Fighter
static void end1101005(Player* player); //Axe Booster - Fighter
static void end1201004(Player* player); // Sword Booster - Page
static void end1201005(Player* player); //BW Booster - Page
static void end1301004(Player* player); // Spear Booster - Spearman
static void end1301005(Player* player); //Pole Arm Booster - Spearman
static void end2111005(Player* player); //Spell Booster - Fire & Poison Mage
static void end2211005(Player* player); //Spell Booster - Ice & Lightning Wizard
static void end3101002(Player* player); //Bow Booster - Hunter
static void end3201002(Player* player); //Crossbow Booster - Crossbowman
static void end4201002(Player* player); //Dagger Booster - Bandit
static void end4101003(Player* player); //Claw Booster - Assassin
Skills.cpp
Code:else if(strcmp(name, "end4101004") == 0) Skills::end4101004(player); //Haste - Assassin
else if(strcmp(name, "end4201003") == 0) Skills::end4201003(player); //Haste - Bandit
Code:else if(skillid == 4101004){ //Haste - Assassin
timer->stop(player, "end4101004");
end4101004(player);
}
else if(skillid == 4201003){ //Haste - Bandit
timer->stop(player, "end4201003");
end4201003(player);
}
Code:else if(skillid == 4101004){ //Haste - Assassin
vals.push_back(skills[skillid][level].speed);
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4101004");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, (char)0x80, 0x1, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4101004", skills[skillid][level].time*1000);
}
else if(skillid == 4201003){ //Haste - Bandit
vals.push_back(skills[skillid][level].speed);
vals.push_back(skills[skillid][level].x);
timer->stop(player, "end4201003");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, (char)0x80, 0x1, 0, 0, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4201003", skills[skillid][level].time*1000);
}
Skills.hCode:void Skills::end4101004(Player* player){ //Haste - Assassin
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, (char)0x80, 0x1, 0, 0, 0, 0, 0, 0, 0);
}
void Skills::end4201003(Player* player){ //Haste - Bandit
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, (char)0x80, 0x1, 0, 0, 0, 0, 0, 0, 0);
}
4201003.xml & 4101004.xmlCode:static void end4101004(Player* player); //Haste - Assassin
static void end4201003(Player* player); //Haste - Bandit
Shadow PartnerCode:<?xml version="1.0" ?>
<Skill>
<Levels>
<Level>
<Time>10</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>1</X>
<Y>0</Y>
<Speed>2</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>20</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>2</X>
<Y>0</Y>
<Speed>4</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>30</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>3</X>
<Y>0</Y>
<Speed>6</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>40</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>4</X>
<Y>0</Y>
<Speed>8</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>50</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>5</X>
<Y>0</Y>
<Speed>10</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>60</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>6</X>
<Y>0</Y>
<Speed>12</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>70</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>7</X>
<Y>0</Y>
<Speed>14</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>80</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>8</X>
<Y>0</Y>
<Speed>16</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>90</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>9</X>
<Y>0</Y>
<Speed>18</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>100</Time>
<MP>15</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>10</X>
<Y>0</Y>
<Speed>20</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>110</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>11</X>
<Y>0</Y>
<Speed>22</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>120</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>12</X>
<Y>0</Y>
<Speed>24</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>130</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>13</X>
<Y>0</Y>
<Speed>26</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>140</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>14</X>
<Y>0</Y>
<Speed>28</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>150</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>15</X>
<Y>0</Y>
<Speed>30</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>160</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>16</X>
<Y>0</Y>
<Speed>32</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>170</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>17</X>
<Y>0</Y>
<Speed>34</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>180</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>18</X>
<Y>0</Y>
<Speed>36</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>190</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>19</X>
<Y>0</Y>
<Speed>38</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>200</Time>
<MP>30</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>20</X>
<Y>0</Y>
<Speed>40</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
<Level>
<Time>0</Time>
<MP>0</MP>
<HP>0</HP>
<Item>0</Item>
<ItemCount>0</ItemCount>
<X>0</X>
<Y>0</Y>
<Speed>0</Speed>
<WAtk>0</WAtk>
<WDef>0</WDef>
<MAtk>0</MAtk>
<MDef>0</MDef>
<Acc>0</Acc>
<Avo>0</Avo>
</Level>
</Levels>
</Skill>
Skills.cpp
Code:else if(strcmp(name, "end4111002") == 0) Skills::end4111002(player); //Shadow Partner - Hermit
Code:else if(skillid == 4111002){ //Shadow Partner - Hermit
timer->stop(player, "end4111002");
end4111002(player);
}
Code:else if(skillid == 4111002){ //Shadow Partner - Hermit
vals.push_back(skills[skillid][level].x);
vals.push_back(skills[skillid][level].y);
timer->stop(player, "end4111002");
SkillsPacket::useSkill(player, Maps::info[player->getMap()].Players , skillid, skills[skillid][level].time*1000, 0, 0, 0, (char)0x4, 0, 0, 0, 0, vals, 0);
timer->setSkillTimer(player, "end4111002", skills[skillid][level].time*1000);
}
Skills.hCode:void Skills::end4111002(Player* player){ //Shadow Partner - Hermit
SkillsPacket::endSkill(player, Maps::info[player->getMap()].Players, 0, 0, 0, 0x4, 0, 0, 0, 0, 0);
}
Code:static void end4111002(Player* player); //Shadow Partner - Hermit
FyRiS, I suggest you to GIVE credits OR DON'T RELEASE them.
It really suck when I see noobs doing these without giving credits to the original finder.
Fyris all thos are 100% working?
But do give the credits to s4itox for finding most of the packets and test it 1 by 1.