• 01-04.05.2026 - DOUBLE EXP / SKILL EVENT!

Kod na Magic Bolta.

Status
Zamknięty.

Koderek

User
Zarejestrowany
Dołączył
Grudzień 7, 2009
Posty
44
Liczba reakcji
3
Witam ! Mam dla was kod na Magic Bolta. Wali on jak Golden Bolt czyli na 9 sqm :) Testowa?em kod na Silniku YourOts_094f i dzia?a w 100%. My?l? , ?e kod si? wam przyda do waszych OTS :P

const76.h

Pod
Kod:

ITEM_BURST_ARROW = 2546,

Dodaj
Kod:

ITEM_MAGIC_BOLT = 3964,

game.cpp

Pod
Kod:

#ifdef SD_BURST_ARROW
if (player->isUsingBurstArrows())
burstArrow(player, attackedCreature->pos);
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT
if (player->isUsingMagicBolt())
magicBolt(player, attackedCreature->pos);
#endif //MAGIC_BOLT
Nast?pnie pod
Kod:

#ifdef SD_BURST_ARROW
class MagicEffectAreaNoExhaustionClass: public MagicEffectAreaClass {
public:
bool causeExhaustion(bool hasTarget) const { return false; }
};

void Game::burstArrow(Creature* c, const Position& pos)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::burstArrow()");
std::vector<unsigned char> col;
MagicEffectAreaNoExhaustionClass runeAreaSpell;

runeAreaSpell.attackType = ATTACK_PHYSICAL;
runeAreaSpell.animationEffect = NM_ANI_BURSTARROW;
runeAreaSpell.hitEffect = NM_ME_EXPLOSION_DAMAGE;
runeAreaSpell.areaEffect = NM_ME_EXPLOSION_AREA;
runeAreaSpell.animationColor = 198; //DAMAGE_FIRE;
runeAreaSpell.drawblood = true;
runeAreaSpell.offensive = true;

/* Area of Spell */
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);
col.clear();
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);
col.clear();
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);

/* hard no ? */
runeAreaSpell.direction = 1;
runeAreaSpell.minDamage = int(((c->level*g_config.BURST_DMG_LVL)+(c->maglevel*g_config.BURST_DMG_MLVL))*g_config.BURST_DMG_LO);
runeAreaSpell.maxDamage = int(((c->level*g_config.BURST_DMG_LVL)+(c->maglevel*g_config.BURST_DMG_MLVL))*g_config.BURST_DMG_HI);
creatureThrowRune(c, pos, runeAreaSpell);
}
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT

void Game::magicBolt(Creature* c, const Position& pos)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::magicbolt()");
std::vector<unsigned char> col;
MagicEffectAreaNoExhaustionClass runeAreaSpell;

runeAreaSpell.attackType = ATTACK_PHYSICAL;
runeAreaSpell.animationEffect = NM_ANI_BOLT;
runeAreaSpell.hitEffect = NM_ME_EXPLOSION_DAMAGE;
runeAreaSpell.areaEffect = NM_ME_EXPLOSION_AREA;
runeAreaSpell.animationColor = 198; //DAMAGE_FIRE;
runeAreaSpell.drawblood = true;
runeAreaSpell.offensive = true;

/* Area of Spell */
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);
col.clear();
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);
col.clear();
col.push_back(1);
col.push_back(1);
col.push_back(1);
runeAreaSpell.areaVec.push_back(col);

/* hard no ? */
runeAreaSpell.direction = 1;
runeAreaSpell.minDamage = int(((c->level*g_config.MBOLT_DMG_LVL)+(c->maglevel*g_config.MBOLT_DMG_MLVL))*g_config.MBOLT_DMG_LO);
runeAreaSpell.maxDamage = int(((c->level*g_config.MBOLT_DMG_LVL)+(c->maglevel*g_config.MBOLT_DMG_MLVL))*g_config.MBOLT_DMG_HI);
creatureThrowRune(c, pos, runeAreaSpell);
}
#endif //MAGIC_BOLT

Game.h

Pod
Kod:

#ifdef SD_BURST_ARROW
void burstArrow(Creature* c, const Position& pos);
static double BURST_DMG_LVL, BURST_DMG_MLVL, BURST_DMG_LO, BURST_DMG_HI;
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT
void magicBolt(Creature* c, const Position& pos);
static double MBOLT_DMG_LVL, MBOLT_DMG_MLVL, MBOLT_DMG_LO, MBOLT_DMG_HI;
#endif //MAGIC_BOLT

luascript.cpp

Pod
Kod:

#ifdef SD_BURST_ARROW
BURST_DMG_LVL = atof(getGlobalStringField("burstarrowdmg", 1, "2.0").c_str());
BURST_DMG_MLVL = atof(getGlobalStringField("burstarrowdmg", 2, "3.0").c_str());
BURST_DMG_LO = atof(getGlobalStringField("burstarrowdmg", 3, "0.24").c_str());
BURST_DMG_HI = atof(getGlobalStringField("burstarrowdmg", 4, "0.55").c_str());
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT
MBOLT_DMG_LVL = atof(getGlobalStringField("mboltdmg", 1, "2.0").c_str());
MBOLT_DMG_MLVL = atof(getGlobalStringField("mboltdmg", 2, "3.0").c_str());
MBOLT_DMG_LO = atof(getGlobalStringField("mboltdmg", 3, "0.24").c_str());
MBOLT_DMG_HI = atof(getGlobalStringField("mboltdmg", 4, "0.55").c_str());
#endif //MAGIC_BOLT

luascript.h

Pod
Kod:

#ifdef SD_BURST_ARROW
double BURST_DMG_LVL;
double BURST_DMG_MLVL;
double BURST_DMG_LO;
double BURST_DMG_HI;
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT
double MBOLT_DMG_LVL;
double MBOLT_DMG_MLVL;
double MBOLT_DMG_LO;
double MBOLT_DMG_HI;
#endif //MAGIC_BOLT

Player.cpp

Pod
Kod:

#ifdef SD_BURST_ARROW
bool Player::isUsingBurstArrows() const
{
return ((items[SLOT_LEFT] && items[SLOT_LEFT]->getID() == ITEM_BOW) ||
(items[SLOT_RIGHT] && items[SLOT_RIGHT]->getID() == ITEM_BOW)) &&
(items[SLOT_AMMO] && items[SLOT_AMMO]->getID() == ITEM_BURST_ARROW);
}
#endif //SD_BURST_ARROW
Dodaj
Kod:

#ifdef MAGIC_BOLT
bool Player::isUsingMagicBolt() const
{
return (items[SLOT_LEFT] && items[SLOT_LEFT]->getID() == ITEM_MAGIC_BOLT) ||
(items[SLOT_RIGHT] && items[SLOT_RIGHT]->getID() == ITEM_MAGIC_BOLT);
}
#endif //MAGIC_BOLT

player.h

Pod
Kod:
#ifdef SD_BURST_ARROW
bool isUsingBurstArrows() const;
#endif //SD_BURST_ARROW

Dodaj
Kod:

#ifdef MAGIC_BOLT
bool isUsingMagicBolt() const;
#endif //MAGIC_BOLT


W Parametrach dodaj

REBUILD ALL

Do config.lua dodaj

Kod:

--USTAWIENIE MAGIC BOLT
-- default is from (1*lvl+5*mlvl)*0.24 to (1*lvl+5*mlvl)*0.55
mboltdmg = {"1.0", "4.0", "0.24", "0.55"}

Pozdrawiam was. Przepraszam ale AUTORA tego kodu nie znam :(
 
Odp: Kod na Magic Bolta.

W Parametrach dodaj
Cytat:
-DMAGIC_BOLT

Czyli gdzie doda? :confused:
 
Odp: Kod na Magic Bolta.

Mozesz dodac pod burts arrow demage :p
 
Odp: Kod na Magic Bolta.

Mo?e jakis ss jak to wygl?da?:|
 
Odp: Kod na Magic Bolta.

@UP
Do parametr?w kompilatora(linkers chyba)
 
Odp: Kod na Magic Bolta.

Klikasz ctrl+p, wchodzisz w zak?adk? ,,Parametry", i dopisujesz do tabelki o nazwie ,,Kompilator C++"
 
Odp: Kod na Magic Bolta.

Hmm Kod dobry :) Ja Wam do przerobie, ?e wali jak czar exori max erex.
Pozdrawiam
 
Odp: Kod na Magic Bolta.

Do parametr?w si? wchodzi alt + p i wybierasz zak?adk?.
Pozdrawiam.
Sun Sei.;d
 
Status
Zamknięty.
Back
Do góry