What's new

-Łatwy [7.6 XML] Tworzenie r??d?ek.

Matt

Banned
Joined
May 9, 2013
Messages
595
Reaction score
46
Autor: Marcelllo



Tworzenie r??d?ek w silnikach wersji 7.6 XML (YurOTS)

Kr?tki wst?p:
Marzy?e? kiedy? o w?asnej r??d?ce? Od teraz nie musisz ju? prosi? innych, wystarczy, ?e ogarniasz troch? kopiuj/wklej, rozumiesz co jest napisane i wiesz jak skompilowa? silnik.

Potrzebne nam rzeczy:
  • ?r?d?a silnika
  • Kompilator
  • No?yczki i klej
  • Troch? cierpliwo?ci
  • Szczypta rozumu i ch?ci


Przydatne informacje:


SLOT_HEAD - he?my,
SLOT_NECKLACE - naszyjniki,
SLOT_BACKPACK - plecaki,
SLOT_ARMOR - zbroje,
SLOT_RIGHT - prawa r?ka,
SLOT_LEFT - lewa r?ka,
SLOT_LEGS - nogawice,
SLOT_FEET - buty,
SLOT_RING - pier?cienie,
SLOT_AMMO - miejsce na amunicj?,

ATTACK_NONE
ATTACK_ENERGY
ATTACK_BURST
ATTACK_FIRE
ATTACK_PHYSICAL
ATTACK_POISON
ATTACK_PARALYZE -- w YurOTS nie dzia?a
ATTACK_DRUNKNESS -- w YurOTS nie dzia?a

NM_ANI_BOLT
NM_ANI_ARROW
NM_ANI_FIRE
NM_ANI_ENERGY
NM_ANI_POISONARROW
NM_ANI_BURSTARROW
NM_ANI_THROWINGSTAR
NM_ANI_THROWINGKNIFE
NM_ANI_SMALLSTONE
NM_ANI_SUDDENDEATH
NM_ANI_LARGEROCK
NM_ANI_SNOWBALL
NM_ANI_SPEAR
NM_ANI_POWERBOLT
NM_ANI_FLYPOISONFIELD

NM_ME_DRAW_BLOOD
NM_ME_LOOSE_ENERGY
NM_ME_PUFF
NM_ME_BLOCKHIT
NM_ME_EXPLOSION_AREA
NM_ME_EXPLOSION_DAMAGE
NM_ME_FIRE_AREA
NM_ME_YELLOW_RINGS
NM_ME_POISEN_RINGS
NM_ME_HIT_AREA
NM_ME_ENERGY_AREA
NM_ME_ENERGY_DAMAGE
NM_ME_MAGIC_ENERGIE
NM_ME_MAGIC_BLOOD
NM_ME_MAGIC_POISEN
NM_ME_HITBY_FIRE
NM_ME_POISEN
NM_ME_MORT_AREA
NM_ME_SOUND_GREEN
NM_ME_SOUND_RED
NM_ME_SOUND_YELLOW
NM_ME_SOUND_PURPLE
NM_ME_SOUND_BLUE
NM_ME_SOUND_WHITE

player->vocation == VOCATION_DRUID
player->vocation == VOCATION_SORCERER
player->vocation == VOCATION_KNIGHT
player->vocation == VOCATION_PALADIN

Gdy chcemy doda? 2 profesje robimy to w spos?b:
(player->vocation == VOCATION_SORCERER || player->vocation == VOCATION_DRUID)

Gdy chcemy doda? 3 profesje robimy to w spos?b:
(player->vocation == VOCATION_SORCERER || player->vocation == VOCATION_DRUID || player->vocation == VOCATION_PALADIN)


A wi?c do dzie?a:
W const76.h szukamy:
PHP:
ITEM_WAND_OF_DRAGONBREATH = 2191,
Pod tym dodajemy to:
PHP:
ITEM_ROZDZKA_1 = XXXX,
XXXX - ID r??d?ki.

Nast?pnie w game.cpp szukamy:
PHP:
else if (wandid == ITEM_TEMPEST_ROD && player->vocation == VOCATION_DRUID &&
player->mana >= g_config.MANA_TEMPEST && player->getLevel() >= 33)
{
dist = g_config.RANGE_TEMPEST;
if (abs(player->pos.x - attackedCreature->pos.x) > dist ||
abs(player->pos.y - attackedCreature->pos.y) > dist)
return;
 
runeAreaSpell.attackType = ATTACK_ENERGY;
runeAreaSpell.animationEffect = NM_ANI_ENERGY;
runeAreaSpell.hitEffect = NM_ME_ENERGY_DAMAGE;
runeAreaSpell.areaEffect = NM_ME_ENERGY_AREA;
runeAreaSpell.animationColor = 0x49;
 
runeAreaSpell.minDamage = 60;
runeAreaSpell.maxDamage = 70;
mana = g_config.MANA_TEMPEST;
}
Pod tym dodajemy to:
PHP:
else if (wandid == ITEM_ROZDZKA_1 && PROFESJA &&
player->mana >= g_config.MANA_ROZDZKA_1 && player->getLevel() >= 10)
{
dist = g_config.RANGE_ROZDZKA_1;
if (abs(player->pos.x - attackedCreature->pos.x) > dist ||
abs(player->pos.y - attackedCreature->pos.y) > dist)
return;
 
runeAreaSpell.attackType = AAAAAA;
runeAreaSpell.animationEffect = ANIMACJA;
runeAreaSpell.hitEffect = HITAREA;
runeAreaSpell.areaEffect = HITAREA;
runeAreaSpell.animationColor = 0x47;
 
runeAreaSpell.minDamage = (player->level*3)+(player->maglevel*2) - 30;
runeAreaSpell.maxDamage = (player->level*4)+(player->maglevel*4) - 60;
mana = g_config.MANA_ROZDZKA_1;
}
AAAAAA - rodzaj ataku - patrz w przydatne informacje
ANIMACJA - Animacje, patrz w przydatne informacje
HITAREA - patrz w przydatne informacje
PROFESJA - skopiuj z wa?ne informacje!

W luascript.h pod:
PHP:
int MANA_INFERNO;
dodajemy:
PHP:
int MANA_ROZDZKA_1;
A pod:
PHP:
int RANGE_INFERNO;
Dodajemy:
PHP:
int RANGE_ROZDZKA_1;
Zostaje nam doda? w luascript.cpp pod:
PHP:
MANA_INFERNO = atoi(getGlobalStringField("wandmana", 5, "13").c_str());
Doda? *:
PHP:
MANA_ROZDZKA_1 = atoi(getGlobalStringField("wandmana", 6, "20").c_str());
I jeszcze pod:
PHP:
RANGE_TEMPEST = atoi(getGlobalStringField("rodrange", 5, "3").c_str());
Dodajemy *:
PHP:
RANGE_ROZDZKA_1 = atoi(getGlobalStringField("wandrange", 6, "2").c_str());

* - przy kolejnych r??d?kach nale?y zamieni? liczb? 6 na kolejn? (tj. 7, 8, 9 itd...)
Oraz we wszystkich fragmentach ROZDZKA_1 na inne (te? proponuj? kolejne)

I na sam koniec w player.cpp pod:
PHP:
case ITEM_WAND_OF_DRAGONBREATH:
dodajemy:
PHP:
case ITEM_ROZDZKA_1:

config.lua:
Dodajemy r??d?k? w taki spos?b do obecnych:
PHP:
-- shooting range of wand of {vortex, dragonbreath, plague, cosmic energy, inferno, nazwa r??d?ki}
wandrange = {"4", "3", "2", "1", "3", "[COLOR="#000080"]2[/COLOR]"}
-- mana consumed by wand of {vortex, dragonbreath, plague, cosmic energy, inferno, nazwa r??d?ki}
wandmana = {"2", "3", "5", "8", "13", "[COLOR="#0000CD"]1[/COLOR]"}

2 - zasi?g na ile SQM ma uderza? r??d?ka
1 - ile many ma pobiera? r??d?ka


Po zmianach nale?y skompilowa? projekt! W wolnym czasie poradnik zostanie uzupe?niony o nowe fragmenty.
 

Matt

Banned
Joined
May 9, 2013
Messages
595
Reaction score
46
Odp: [7.6 XML] Tworzenie r??d?ek.

My?l?, ?e tutorial mo?na by przenie?? z propozycji do odpowiedniego dzia?u (;
 

Fardos

Senior User
Joined
Mar 21, 2009
Messages
868
Reaction score
34
Odp: [7.6 XML] Tworzenie r??d?ek.

Dobry tutorial ale raczej to nic takiego kiedy otsy 7.6 upadaja :)
 
Top