NPC nie może wypuścic czaru 2148 2

O temacie

Autor starcd78

Zaczęty 4.12.2014 roku

Wyświetleń 2148

Odpowiedzi 2

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ

starcd78

NPC nie może wypuścic czaru
2014-12-04, 23:25(Ostatnia zmiana: 2014-12-04, 23:31)
Sorry, że znowu ja, ale to mi nie daje spokoju, mam zrobiony nowy czar bojowy, wszystko jest okej tylko, że npc nie chce/nie może rzucić moją kulą ognia  :hmmm:  :/  tu WSZYSTKIE skrypty dot. spella :
plik constants jakby co numer spella to 91



////////////////////////////////////////////////////////////////////////////////
//
// Spells: ID-Konstanten
//

// Paladin-Runen
const int SPL_PalLight = 0;
const int SPL_PalLightHeal = 1;
const int SPL_PalHolyBolt = 2;
const int SPL_PalMediumHeal = 3;
const int SPL_PalRepelEvil = 4;
const int SPL_PalFullHeal = 5;
const int SPL_PalDestroyEvil = 6;

// Teleport-Runen
const int SPL_PalTeleportSecret = 7;
const int SPL_TeleportSeaport = 8;
const int SPL_TeleportMonastery = 9;
const int SPL_TeleportFarm = 10;
const int SPL_TeleportXardas = 11;
const int SPL_TeleportPassNW = 12;
const int SPL_TeleportPassOW = 13;
const int SPL_TeleportOC = 14;
const int SPL_TeleportOWDemonTower = 15;
const int SPL_TeleportTaverne = 16;
const int SPL_Teleport_3 = 17;

// Kreis 1
const int SPL_Light = 18;
const int SPL_Firebolt = 19;

// Kreis 2
const int SPL_Icebolt = 20;

// Kreis 1
const int SPL_LightHeal = 21; // SPL_Heal Instant!
const int SPL_SummonGoblinSkeleton = 22;

// Kreis 2
const int SPL_InstantFireball = 23;

// Kreis 1
const int SPL_Zap = 24; // ###UNCONSCIOUS###

// Kreis 2
const int SPL_SummonWolf = 25;
const int SPL_WindFist = 26; // ###UNCONSCIOUS###
const int SPL_Sleep = 27;

// Kreis 3
const int SPL_MediumHeal = 28;
const int SPL_LightningFlash = 29;
const int SPL_ChargeFireball = 30;
const int SPL_SummonSkeleton = 31;
const int SPL_Fear = 32;
const int SPL_IceCube = 33;

// Kreis 4
const int SPL_ChargeZap = 34;
const int SPL_SummonGolem = 35;
const int SPL_DestroyUndead = 36;
const int SPL_Pyrokinesis = 37;

// Kreis 5
const int SPL_Firestorm = 38;
const int SPL_IceWave = 39;
const int SPL_SummonDemon = 40;
const int SPL_FullHeal = 41;

// Kreis 6
const int SPL_Firerain = 42;
const int SPL_BreathOfDeath = 43;
const int SPL_MassDeath = 44;
const int SPL_ArmyOfDarkness = 45;
const int SPL_Shrink = 46;

// Scrolls
const int SPL_TrfSheep = 47;
const int SPL_TrfScavenger = 48;
const int SPL_TrfGiantRat = 49;
const int SPL_TrfGiantBug = 50;
const int SPL_TrfWolf = 51;
const int SPL_TrfWaran = 52;
const int SPL_TrfSnapper = 53;
const int SPL_TrfWarg = 54;
const int SPL_TrfFireWaran = 55;
const int SPL_TrfLurker = 56;
const int SPL_TrfShadowbeast = 57;
const int SPL_TrfDragonSnapper = 58;
const int SPL_Charm = 59; // MAX_SPELL (Gothic)

// Kreis 5
const int SPL_MasterOfDisaster = 60;

// ???
const int SPL_Deathbolt = 61;
const int SPL_Deathball = 62;
const int SPL_ConcussionBolt = 63;
const int SPL_Reserved_64 = 64; // SPL_E
const int SPL_Reserved_65     = 65; // SPL_F
const int SPL_Reserved_66         = 66; // SPL_G
const int SPL_Reserved_67         = 67; // SPL_H
const int SPL_Reserved_68 = 68; // MAX_SPELL (Gothic2)
const int SPL_Reserved_69 = 69;

// Magick (Wasser)
const int SPL_Thunderstorm = 70;
const int SPL_Whirlwind = 71;
const int SPL_WaterFist = 72;
const int SPL_IceLance = 73;
const int SPL_Inflate = 74;
const int SPL_Geyser = 75;
const int SPL_Waterwall = 76;
const int SPL_Reserved_77 = 77;
const int SPL_Reserved_78 = 78;
const int SPL_Reserved_79 = 79;

// Magick (Maya)
const int SPL_Plague = 80;
const int SPL_Swarm = 81;
const int SPL_GreenTentacle = 82;
const int SPL_Earthquake = 83;
const int SPL_SummonGuardian = 84;
const int SPL_Energyball = 85;
const int SPL_SuckEnergy = 86;
const int SPL_Skull = 87;
const int SPL_SummonZombie = 88;
const int SPL_SummonMud = 89;

// ...
const int SPL_GreenFlame = 90;
const int SPL_ChargeWhite = 91;           ///RUNA O KTÓREJ MOWA!
const int SPL_Reserved_92 = 92;
const int SPL_Reserved_93 = 93;
const int SPL_Reserved_94 = 94;
const int SPL_Reserved_95 = 95;
const int SPL_Reserved_96 = 96;
const int SPL_Reserved_97 = 97;
const int SPL_TeleportBrothel         = 98;
const int SPL_Reserved_99 = 99;

const int MAX_SPELL = 100;   // 59 (Gothic), 68 (Gothic2), 100 (G2Addon)


////////////////////////////////////////////////////////////////////////////////
//
// Spells: Fx-/Spell-Klassennamen (Array)
//

const string spellFxInstanceNames[MAX_SPELL] =
{
// Paladin-Runen
"PalLight", // 0 SPL_PalLight
"PalHeal",  // 1 SPL_PalLightHeal
"PalHolyBolt",  // 2 SPL_PalHolyBolt
"PalHeal",  // 3 SPL_PalMediumHeal
"PalRepelEvil", // 4 SPL_PalRepelEvil
"PalHeal",  // 5 SPL_PalFullHeal
"PalDestroyEvil",  // 6 SPL_PalDestroyEvil

// Teleport-Runen
"Teleport",  // 7 SPL_PalTeleportSecret
"Teleport",  // 8 SPL_TeleportSeaport
"Teleport",  // 9 SPL_TeleportMonastery
"Teleport",  // 10 SPL_TeleportFarm
"Teleport",  // 11 SPL_TeleportXardas
"Teleport",  // 12 SPL_TeleportPassNW
"Teleport",  // 13 SPL_TeleportPassOW
"Teleport",  // 14 SPL_TeleportOC
"Teleport",  // 15 SPL_TeleportOWDemonTower
"Teleport",  // 16 SPL_TeleportTaverne
"Teleport",  // 17 SPL_Teleport_3

// Kreis 1
"Light", // 18 SPL_Light
"Firebolt", // 19 SPL_Firebolt

// Kreis 2
"Icebolt", // 20 SPL_Icebolt

// Kreis 1
"Heal",  // 21 SPL_LightHeal
"SummonGoblinSkeleton", // 22 SPL_SummonGoblinSkeleton

// Kreis 2
"InstantFireball",  // 23 SPL_InstantFireball

// Kreis 1
"Zap", // 24 SPL_Zap

// Kreis 2
"SummonWolf",  // 25 SPL_SummonWolf
"WindFist",  // 26 SPL_WindFist
"Sleep",  // 27 SPL_Sleep

// Kreis 3
"Heal",  // 28 SPL_MediumHeal
"LightningFlash", // 29 SPL_LightningFlash
"ChargeFireball",  // 30 SPL_ChargeFireball
"SummonSkeleton",  // 31 SPL_SummonSkeleton
"Fear",  // 32 SPL_Fear
"Icecube",  // 33 SPL_IceCube

// Kreis 4
"ChargeZap",  // 34 SPL_ChargeZap
"SummonGolem",  // 53 SPL_SummonGolem
"DestroyUndead",  // 36 SPL_DestroyUndead
"Pyrokinesis",  // 37 SPL_Pyrokinesis

// Kreis 5
"Firestorm", // 38 SPL_Firestorm
"Icewave",  // 39 SPL_IceWave
"SummonDemon",  // 40 SPL_SummonDemon
"Heal",  // 41 SPL_FullHeal

// Kreis 6
"Firerain",  // 42 SPL_Firerain
"BreathOfDeath",  // 43 SPL_BreathOfDeath
"MassDeath",  // 44 SPL_MassDeath
"ArmyOfDarkness", // 45 SPL_ArmyOfDarkness
"Shrink",  // 46 SPL_Shrink

// Scrolls
"Transform",  // 47 SPL_TrfSheep
"Transform",  // 48 SPL_TrfScavenger
"Transform",  // 49 SPL_TrfGiantRat
"Transform",  // 50 SPL_TrfGiantBug
"Transform",  // 51 SPL_TrfWolf
"Transform",  // 52 SPL_TrfWaran
"Transform",  // 53 SPL_TrfSnapper
"Transform",  // 54 SPL_TrfWarg
"Transform",  // 55 SPL_TrfFireWaran
"Transform",  // 56 SPL_TrfLurker
"Transform",  // 57 SPL_TrfShadowbeast
"Transform",  // 58 SPL_TrfDragonSnapper
"Charm", // 59 SPL_Charm

// Kreis 5
"MasterOfDisaster", // 60 SPL_MasterOfDisaster

// ???
"Deathbolt",  // 61 SPL_Deathbolt
"Deathball", // 62 SPL_Deathball
"Concussionbolt", // 63 SPL_Concussionbolt
"Light",  // 64 SPL_Reserved_64
"Light",  // 65 SPL_Reserved_65
"Light",  // 66 SPL_Reserved_66
"Light", // 67 SPL_Reserved_67
"Light", // 68 SPL_Reserved_68
"Light", // 69 SPL_Reserved_69

// Magick (Wasser)
    "Thunderstorm", // 70 SPL_Thunderstorm
"Whirlwind", // 71 SPL_Whirlwind
"Waterfist", // 72 SPL_WaterFist
"IceLance", // 73 SPL_IceLance
"Sleep", // 74 SPL_Inflate
"Geyser", // 75 SPL_Geyser
"Firerain", // 76 SPL_Waterwall
"Light", // 77 SPL_Reserved_77
"Light", // 78 SPL_Reserved_78
"Light", // 79 SPL_Reserved_79

// Magick (Maya)
"Fear", // 80 SPL_Plague
"Swarm", // 81 SPL_Swarm
"Greententacle", // 82 SPL_GreenTentacle
"Firerain", // 83 SPL_Earthquake
"SummonGuardian", // 84 SPL_SummonGuardian
"Energyball", // 85 SPL_Energyball
"SuckEnergy", // 86 SPL_SuckEnergy
"Skull", // 87 SPL_Skull
"SummonZombie", // 88 SPL_SummonZombie
"SummonMud", // 89 SPL_SummonMud

// ...
"GreenFlame", // 90 SPL_GreenFlame
"ChargeWhite", // 91 SPL_ChargeWhite
"Light", // 92 SPL_Reserved_92
"Light", // 93 SPL_Reserved_93
"Light", // 94 SPL_Reserved_94
"Light", // 95 SPL_Reserved_95
"Light", // 96 SPL_Reserved_96
"Light", // 97 SPL_Reserved_97
"Teleport", // 98 SPL_TeleportBrothel
"Teleport" // 99 SPL_Reserved_99
};


////////////////////////////////////////////////////////////////////////////////
//
// Spells: Animationskürzel (Array)
//

const string spellFxAniLetters[MAX_SPELL] =
{
// Paladin-Runen
"SLE", // 0 SPL_PalLight
"HEA",  // 1 SPL_PalLightHeal
"FBT",  // 2 SPL_PalHolyBolt
"HEA",  // 3 SPL_PalMediumHeal
"FBT", // 4 SPL_PalRepelEvil
"HEA",  // 5 SPL_PalFullHeal
"FIB",  // 6 SPL_PalDestroyEvil

// Teleport-Runen
"HEA",  // 7 SPL_PalTeleportSecret
"HEA",  // 8 SPL_TeleportSeaport
"HEA",  // 9 SPL_TeleportMonastery
"HEA",  // 10 SPL_TeleportFarm
"HEA",  // 11 SPL_TeleportXardas
"HEA",  // 12 SPL_TeleportPassNW
"HEA",  // 13 SPL_TeleportPassOW
"HEA",  // 14 SPL_TeleportOC
"HEA",  // 15 SPL_TeleportOWDemonTower
"HEA",  // 16 SPL_TeleportTaverne
"HEA",  // 17 SPL_Teleport_3

// Kreis 1
"SLE", // 18 SPL_Light
"FBT", // 19 SPL_Firebolt

// Kreis 2
"FBT", // 20 SPL_Icebolt

// Kreis 1
"HEA",  // 21 SPL_LightHeal
"SUM",  // 22 SPL_SummonGoblinSkeleton

// Kreis 2
"FBT",  // 23 SPL_InstantFireball

// Kreis 1
"FBT", // 24 SPL_Zap

// Kreis 2
"SUM",  // 25 SPL_SummonWolf
"WND",  // 26 SPL_WindFist
"SLE",  // 27 SPL_Sleep

// Kreis 3
"HEA",  // 28 SPL_MediumHeal
"WND",  // 29 SPL_LightningFlash
"FIB",  // 30 SPL_ChargeFireball
"SUM",  // 31 SPL_SummonSkeleton
"FEA",  // 32 SPL_Fear
"FRZ",  // 33 SPL_IceCube
"FIB",  // 34 SPL_ChargeZap

// Kreis 4
"SUM",  // 35 SPL_SummonGolem
"FIB",  // 36 SPL_DestroyUndead
"FIB",  // 37 SPL_Pyrokinesis

// Kreis 5
"FIB",  // 38 SPL_Firestorm
"FEA",  // 39 SPL_IceWave
"SUM",  // 40 SPL_SummonDemon
"HEA",  // 41 SPL_FullHeal

// Kreis 6
"FEA",  // 42 SPL_Firerain
"FIB",  // 43 SPL_BreathOfDeath
"MSD",  // 44 SPL_MassDeath
"SUM",  // 45 SPL_ArmyOfDarkness
"SLE",  // 46 SPL_Shrink

// Scrolls
"TRF",  // 47 SPL_TrfSheep
"TRF",  // 48 SPL_TrfScavenger
"TRF",  // 49 SPL_TrfGiantRat
"TRF",  // 50 SPL_TrfGiantBug
"TRF",  // 51 SPL_TrfWolf
"TRF",  // 52 SPL_TrfWaran
"TRF",  // 53 SPL_TrfSnapper
"TRF",  // 54 SPL_TrfWarg
"TRF",  // 55 SPL_TrfFireWaran
"TRF",  // 56 SPL_TrfLurker
"TRF",  // 57 SPL_TrfShadowbeast
"TRF",  // 58 SPL_TrfDragonSnapper
"FIB", // 59 SPL_Charm

// Kreis 5
"FIB",  // 60 SPL_MasterOfDisaster

// ???
"FBT",  // 61 SPL_Deathbolt
"FBT",  // 62 SPL_Deathball
"FBT",  // 63 SPL_Concussionbolt
"XXX",  // 64 SPL_Reserved_64
"XXX",  // 65 SPL_Reserved_65
"XXX",  // 66 SPL_Reserved_66
"XXX", // 67 SPL_Reserved_67
  "XXX", // 68 SPL_Reserved_68
"XXX", // 69 SPL_Reserved_69

// Magick (Wasser)
"STM",  // 70 SPL_Thunderstorm
"WHI",  // 71 SPL_Whirlwind
"WND",  // 72 SPL_WaterFist
"FBT",  // 73 SPL_IceLance
"SLE",  // 74 SPL_Inflate
"WND",  // 75 SPL_Geyser
"FEA",  // 76 SPL_Waterwall
"XXX", // 77 SPL_Reserved_77
"XXX", // 78 SPL_Reserved_78
"XXX", // 79 SPL_Reserved_79

// Magick (Maya)
"FBT",  // 80 SPL_Plague
"FBT",  // 81 SPL_Swarm
"FRZ",  // 82 SPL_GreenTentacle
"FEA",  // 83 SPL_Earthquake
"SUM",  // 84 SPL_SummonGuardian
"WND",  // 85 SPL_Energyball
"WND",  // 86 SPL_SuckEnergy
"WND", // 87 SPL_Skull
"SUM", // 88 SPL_SummonZombie
"SUM", // 89 SPL_SummonMud

// ...
"FBT",  // 90 SPL_GreenFlame
"FIB",  // 91 SPL_ChargeWhite      ///RUNA O KTOREJ MOWA!
"XXX",  // 92 SPL_Reserved_92
"XXX",  // 93 SPL_Reserved_93
"XXX",  // 94 SPL_Reserved_94
"XXX",  // 95 SPL_Reserved_95
"XXX",  // 96 SPL_Reserved_96
"XXX", // 97 SPL_Reserved_97
"HEA", // 98 SPL_Reserved_98
"XXX" // 99 SPL_Reserved_99
};


// *******
// Talente
// *******

const int NPC_TALENT_UNKNOWN = 0;

// Skilled Talents
const int NPC_TALENT_1H = 1;
const int NPC_TALENT_2H = 2;
const int NPC_TALENT_BOW = 3;
const int NPC_TALENT_CROSSBOW = 4;

const int NPC_TALENT_PICKLOCK = 5; //wird jetzt per DEX geregelt
//const int NPC_TALENT_PICKPOCKET = 6; //altes Pickpocket aus Gothic 1 - NICHT benutzen! Bleibt als Relikt im Code

// Magiekreis
const int NPC_TALENT_MAGE = 7;

// Special-Talents
const int NPC_TALENT_SNEAK = 8;
const int NPC_TALENT_REGENERATE = 9; //??? was ist davon drin?
const int NPC_TALENT_FIREMASTER = 10; //??? was ist davon drin?
const int NPC_TALENT_ACROBAT = 11; //--> Anis ändern!

// NEW Talents //werden komplett auf Scriptebene umgesetzt - Programm braucht sie nur für Ausgabe im Characterscreen
const int NPC_TALENT_PICKPOCKET = 12;
const int NPC_TALENT_SMITH = 13;
const int NPC_TALENT_RUNES = 14;
const int NPC_TALENT_ALCHEMY = 15;
const int NPC_TALENT_TAKEANIMALTROPHY = 16;

const int NPC_TALENT_FOREIGNLANGUAGE = 17;
const int NPC_TALENT_WISPDETECTOR = 18;
const int NPC_TALENT_C = 19;
const int NPC_TALENT_D = 20;
const int NPC_TALENT_E = 21;

const int NPC_TALENT_MAX = 22; //ehem. 12


// *************
// Runen-Talente
// *************

var int PLAYER_TALENT_RUNES[MAX_SPELL]; //Die SPL_ Konstanten werden hierfür als Kennung verwendet

// *************
// ForeignLanguage-TalentStufen
// *************

const int LANGUAGE_1 = 0;
const int LANGUAGE_2 = 1;
const int LANGUAGE_3 = 2;

const int MAX_LANGUAGE = 3;

var int PLAYER_TALENT_FOREIGNLANGUAGE[MAX_LANGUAGE];

// *************
// WispDetector-Talente
// *************

const int WISPSKILL_NF = 0;
const int WISPSKILL_FF = 1;
const int WISPSKILL_NONE = 2;
const int WISPSKILL_RUNE = 3;
const int WISPSKILL_MAGIC    = 4;
const int WISPSKILL_FOOD = 5;
const int WISPSKILL_POTIONS    = 6;

const int MAX_WISPSKILL = 7;

var int PLAYER_TALENT_WISPDETECTOR [MAX_WISPSKILL];

VAR int WispSearching;
const int WispSearch_Follow = 1;
const int WispSearch_ALL = 2;
const int WispSearch_POTIONS = 3;
const int WispSearch_MAGIC = 4;
const int WispSearch_FOOD = 5;
const int WispSearch_NF = 6;
const int WispSearch_FF = 7;
const int WispSearch_NONE = 8;
const int WispSearch_RUNE = 9;

// ****************
// Alchemie-Talente
// ****************

const int POTION_Health_01   = 0;
const int POTION_Health_02  = 1;
const int POTION_Health_03  = 2;
const int POTION_Mana_01  = 3;
const int POTION_Mana_02  = 4;
const int POTION_Mana_03 = 5;
const int POTION_Speed  = 6;
const int POTION_Perm_STR  = 7;
const int POTION_Perm_DEX  = 8;
const int POTION_Perm_Mana  = 9;
const int POTION_Perm_Health = 10;
const int POTION_MegaDrink = 11;
const int CHARGE_Innoseye = 12;
const int POTION_Mana_04 = 13;
const int POTION_Health_04 = 14;

const int MAX_POTION = 15;

var int PLAYER_TALENT_ALCHEMY[MAX_POTION];


// ***************
// Schmied-Talente
// ***************

const int WEAPON_Common = 0;

const int WEAPON_1H_Special_01 = 1;
const int WEAPON_2H_Special_01 = 2;
const int WEAPON_1H_Special_02 = 3;
const int WEAPON_2H_Special_02 = 4;
const int WEAPON_1H_Special_03 = 5;
const int WEAPON_2H_Special_03 = 6;
const int WEAPON_1H_Special_04 = 7;
const int WEAPON_2H_Special_04 = 8;

const int WEAPON_1H_Harad_01 = 9;
const int WEAPON_1H_Harad_02 = 10;
const int WEAPON_1H_Harad_03 = 11;
const int WEAPON_1H_Harad_04 = 12;

const int MAX_WEAPONS = 13;

var int PLAYER_TALENT_SMITH[MAX_WEAPONS];


// ********************
// AnimalTrophy-Talente
// ********************

const int TROPHY_Teeth = 0;
const int TROPHY_Claws = 1;
const int TROPHY_Fur = 2;
const int TROPHY_Heart = 3;
const int TROPHY_ShadowHorn = 4;
const int TROPHY_FireTongue = 5;
const int TROPHY_BFWing = 6;
const int TROPHY_BFSting = 7;
const int TROPHY_Mandibles = 8;
const int TROPHY_CrawlerPlate = 9;
const int TROPHY_DrgSnapperHorn = 10;
const int TROPHY_DragonScale = 11;
const int TROPHY_DragonBlood = 12;
const int TROPHY_ReptileSkin = 13;

const int MAX_TROPHIES = 14;

var int PLAYER_TALENT_TAKEANIMALTROPHY[MAX_TROPHIES];


// ****************************************
// Font-Konstanten der Engine (ausgelagert)
// ****************************************

const string TEXT_FONT_20 = "Font_old_20_white.tga";
const string TEXT_FONT_10 = "Font_old_10_white.tga";
const string TEXT_FONT_DEFAULT = "Font_old_10_white.tga";
const string TEXT_FONT_Inventory = "Font_old_10_white.tga";


// ****************************************
// wie lange bklleibt ein TExt (OU) stehen,
// wenn kein wav da ist (msec/character)
// ****************************************

const float VIEW_TIME_PER_CHAR = 550;

// ****************************************
// LevelZen-Abfrage im B_Kapitelwechsel
// ****************************************

const int NEWWORLD_ZEN = 1;
const int OLDWORLD_ZEN = 2;
const int DRAGONISLAND_ZEN = 3;
const int ADDONWORLD_ZEN = 4;


// ****************************************
// Kamera für Inventory-Items
// ****************************************

const int INVCAM_ENTF_RING_STANDARD = 400;
const int INVCAM_ENTF_AMULETTE_STANDARD = 150;
const int INVCAM_ENTF_MISC_STANDARD = 200;
const int INVCAM_ENTF_MISC2_STANDARD = 250;
const int INVCAM_ENTF_MISC3_STANDARD = 500;
const int INVCAM_ENTF_MISC4_STANDARD = 650;
const int INVCAM_ENTF_MISC5_STANDARD = 850;
const int INVCAM_X_RING_STANDARD = 25;
const int INVCAM_Z_RING_STANDARD = 45;

/*
const int INVCAM_ENTF_MISC_STANDARD = 150;
const int INVCAM_X_MISC_STANDARD = 0;
const int INVCAM_Y_MISC_STANDARD = 0;
const int INVCAM_Z_MISC_STANDARD = 0;
*/




























PFXINSTMAGIC

PROTOTYPE MFX_CHARGEWHITE (C_PARTICLEFX)
{
     ppsvalue = 50;
     ppsscalekeys_s = "1";
     ppsislooping = 1;
     ppsissmooth = 1;
     ppsfps = 2;
     shptype_s = "POINT";
     shpfor_s = "object";
     shpoffsetvec_s = "0 0 0";
     shpdistribtype_s = "RAND";
     shpisvolume = 1;
     shpdim_s = "30";
     shpscalekeys_s = "1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 2;
     dirmode_s = "RAND";
     dirfor_s = "world";
     dirmodetargetfor_s = "OBJECT";
     dirmodetargetpos_s = "0 0 0";
     dirangleheadvar = 180;
     dirangleelevvar = 180;
     velavg = 9.99999975e-006;
     lsppartavg = 500;
     flygravity_s = "0 0 0";
     visname_s = "MFX_WHITEBALL.TGA";
     visorientation_s = "VELO";
     vistexisquadpoly = 1;
     vistexanifps = 18;
     vistexaniislooping = 1;
     vistexcolorstart_s = "200 200 255";
     vistexcolorend_s = "200 200 255";
     vissizestart_s = "15 15";
     vissizeendscale = 5;
     visalphafunc_s = "ADD";
     visalphastart = 255;
     //useemittersfor = 1;
};

INSTANCE MFX_CHARGEWHITE_CAST   (MFX_CHARGEWHITE)
{
vissizestart_s = "10 10";
visalphastart = 180;
};

INSTANCE MFX_CHARGEWHITE_CAST_L2   (MFX_CHARGEWHITE)
{
vissizestart_s = "15 15";
visalphastart = 210;
};

INSTANCE MFX_CHARGEWHITE_CAST_L3   (MFX_CHARGEWHITE)
{
vissizestart_s = "20 20";
visalphastart = 230;
};

INSTANCE MFX_CHARGEWHITE_CAST_L4   (MFX_CHARGEWHITE)
{
vissizestart_s = "25 25";
visalphastart = 255;
};

INSTANCE MFX_CHARGEWHITE_CAST_L5   (MFX_CHARGEWHITE)
{
vissizestart_s = "30 30";
visalphastart = 255;
};


INSTANCE MFX_CHARGEWHITE_INVEST (C_PARTICLEFX)
{
     ppsvalue = 20;
     ppsscalekeys_s = "5";
     ppsislooping = 1;
     ppsissmooth = 1;
     ppsfps = 2;
     shptype_s = "SPHERE";
     shpfor_s = "object";
     shpoffsetvec_s = "0 0 0";
     shpdistribtype_s = "RAND";
     shpdim_s = "100";
     shpscalekeys_s = "1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 2;
     dirmode_s = "TARGET";
     dirfor_s = "OBJECT";
     dirmodetargetfor_s = "OBJECT";
     dirmodetargetpos_s = "0 0 0";
     dirangleheadvar = 180;
     dirangleelevvar = 180;
     velavg = 0.0500000007;
     velvar = 0.0299999993;
     lsppartavg = 2000;
     flygravity_s = "0 0 0";
     visname_s = "MFX_WHITEBALL.TGA";
     visorientation_s = "VELO";
     vistexisquadpoly = 1;
     vistexanifps = 18;
     vistexaniislooping = 2;
     vistexcolorstart_s = "255 200 200";
     vistexcolorend_s = "200 150 0";
     vissizestart_s = "50 50";
     vissizeendscale = 0.00100000005;
     visalphafunc_s = "ADD";
     visalphastart = 255;
};



INSTANCE MFX_CHARGEWHITE_INVESTBLAST (C_PARTICLEFX)
{
     ppsvalue = 10;
     ppsscalekeys_s = "2";
     ppsissmooth = 1;
     ppsfps = 2;
     shptype_s = "POINT";
     shpfor_s = "object";
     shpoffsetvec_s = "0 0 0";
     shpdistribtype_s = "RAND";
     shpdim_s = "100";
     shpscalekeys_s = "1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 2;
     dirmode_s = "RAND";
     dirfor_s = "OBJECT";
     dirmodetargetfor_s = "OBJECT";
     dirmodetargetpos_s = "0 0 0";
     dirangleheadvar = 180;
     dirangleelevvar = 180;
     velavg = 9.99999975e-005;
     lsppartavg = 1000;
     flygravity_s = "0 0 0";
     visname_s = "MFX_WHITEBALL2.TGA";
     visorientation_s = "VELO";
     vistexisquadpoly = 1;
     vistexanifps = 18;
     vistexaniislooping = 1;
     vistexcolorstart_s = "255 200 200";
     vistexcolorend_s = "200 150 0";
     vissizestart_s = "10 10";
     vissizeendscale = 6;
     visalphafunc_s = "ADD";
     visalphastart = 255;
};

INSTANCE MFX_CHARGEWHITE_COLLIDE (C_PARTICLEFX)
{
     ppsvalue = 40;
     ppsscalekeys_s = "1";
     ppsfps = 10;
     //ppscreateem_s = "MFX_CHARGEWHITE_COLLIDE_WALLGLOW";
     shptype_s = "SPHERE";
     shpfor_s = "object";
     shpoffsetvec_s = "0 0 0";
     shpdistribtype_s = "RAND";
     shpisvolume = 1;
     shpdim_s = "8";
     shpscalekeys_s = "1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 2;
     dirmode_s = "TARGET";
     dirfor_s = "object";
     dirmodetargetfor_s = "OBJECT";
     dirmodetargetpos_s = "0 0 0";
     dirangleheadvar = 180;
     dirangleelevvar = 180;
     velavg = 0.0799999982;
     velvar = 0.0199999996;
     lsppartavg = 600;
     lsppartvar = 200;
     flygravity_s = "0 0.0001 0";
     flycolldet_b = 1;
     visname_s = "MFX_WHITEBALL.TGA";
     visorientation_s = "NONE";
     vistexisquadpoly = 1;
     vistexanifps = 18;
     vistexaniislooping = 1;
     vistexcolorstart_s = "255 220 220";
     vistexcolorend_s = "255 220 220";
     vissizestart_s = "20 20";
     vissizeendscale = 4;
     visalphafunc_s = "ADD";
     visalphastart = 255;
};


VISUALFXINST

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

INSTANCE spellFX_CHARGEWHITE(CFx_Base_Proto)
{

      visname_S = "MFX_CHARGEWHITE_CAST";

      emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
      emtrjtargetnode = "BIP01 FIRE";
      emtrjloopmode_s = "NONE";
      emtrjeasefunc_s = "LINEAR";
      emActionCollStat_S = "COLLIDE CREATEONCE CREATEQUAD";
      emActionCollDyn_S = "COLLIDE CREATEONCE";
emFXCollStat_S     = "spellFX_CHARGEWHITE_COLLIDE";
emFXCollDyn_S      = "spellFX_CHARGEWHITE_COLLIDEDYNFX";
emFXCollDynPerc_S      = "vob_magicburn";
emFXCollStatAlign_S = "COLLISIONNORMAL";
emFXCreatedOwnTrj = 0;
emTrjTargetRange = 20;
emTrjTargetElev = 0;
emTrjDynUpdateDelay = 30.000;

lightPresetname    = "FIRESMALL";

};

INSTANCE spellFX_CHARGEWHITE_KEY_OPEN (C_ParticleFXEmitKey)
{
lightrange = 0.01;
};


INSTANCE spellFX_CHARGEWHITE_KEY_INIT (C_ParticleFXEmitKey)
{
//visname_S = "MFX_CHARGEWHITE_INIT";
lightrange = 0.01;
};

INSTANCE spellFX_CHARGEWHITE_KEY_INVEST_1 (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_CHARGEWHITE_InVEST_BLAST1";
visname_s = "MFX_CHARGEWHITE_CAST_L2";
lightrange = 150;
sfxid = "MFX_CHARGEWHITE_invest1";
sfxisambient = 1;
} ;
INSTANCE spellFX_CHARGEWHITE_KEY_INVEST_2 (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_CHARGEWHITE_InVEST_BLAST2";
visname_s = "MFX_CHARGEWHITE_CAST_L3";
sfxid = "MFX_CHARGEWHITE_invest2";
sfxisambient = 1;
};
INSTANCE spellFX_CHARGEWHITE_KEY_INVEST_3 (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_CHARGEWHITE_InVEST_BLAST3";
visname_s = "MFX_CHARGEWHITE_CAST_L4";
sfxid = "MFX_CHARGEWHITE_invest3";
sfxisambient = 1;
};
INSTANCE spellFX_CHARGEWHITE_KEY_INVEST_4 (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_CHARGEWHITE_InVEST_BLAST4";
visname_s = "MFX_CHARGEWHITE_CAST_L5";
sfxid = "MFX_CHARGEWHITE_invest4";
sfxisambient = 1;
};
INSTANCE spellFX_CHARGEWHITE_KEY_CAST (C_ParticleFXEmitKey)
{
lightrange = 100;
//pfx_ppsIsLoopingChg = 1;
emtrjmode_s = "TARGET";
      emtrjeasevel = 1400.;
sfxid = "MFX_CHARGEWHITE_Cast";
sfxisambient = 1;
emCheckCollision = 1;
};
INSTANCE spellFX_CHARGEWHITE_KEY_COLLIDE (C_ParticleFXEmitKey)
{
      pfx_flygravity_s = "0 0.0002 0";
      emtrjeasevel = 0.000001;
};

instance spellFX_CHARGEWHITE_InVEST_BLAST1 (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_INVESTBLAST";
visAlpha = 1;
emtrjmode_s = "FIXED";
sfxid = "MFX_CHARGEWHITE_invest1";
sfxisambient = 1;
visAlpha = 0.3;
};

instance spellFX_CHARGEWHITE_InVEST_BLAST2 (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_INVESTBLAST";
visAlpha = 1;
emtrjmode_s = "FIXED";
sfxid = "MFX_CHARGEWHITE_invest2";
sfxisambient = 1;
visAlpha = 0.5;
};

instance spellFX_CHARGEWHITE_InVEST_BLAST3 (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_INVESTBLAST";
visAlpha = 1;
emtrjmode_s = "FIXED";
sfxid = "MFX_CHARGEWHITE_invest3";
sfxisambient = 1;
visAlpha = 0.8;
};

instance spellFX_CHARGEWHITE_InVEST_BLAST4 (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_INVESTBLAST";
visAlpha = 1;
emtrjmode_s = "FIXED";
sfxid = "MFX_CHARGEWHITE_invest4";
sfxisambient = 1;
visAlpha = 1;
};

// KOLLISION MIT STATISCHER WELT:  KEINE PERCEPTION

instance spellFX_CHARGEWHITE_COLLIDE (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_Collide";
visAlpha = 1;
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightPresetname    = "FIRESMALL";
};

INSTANCE spellFX_CHARGEWHITE_COLLIDE_KEY_INVEST_1 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide"; sfxid = "MFX_CHARGEWHITE_Collide1"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDE_KEY_INVEST_2 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide"; sfxid = "MFX_CHARGEWHITE_Collide2"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDE_KEY_INVEST_3 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide"; sfxid = "MFX_CHARGEWHITE_Collide3"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDE_KEY_INVEST_4 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide"; sfxid = "MFX_CHARGEWHITE_Collide4"; };

instance spellFX_CHARGEWHITE_COLLIDEDYNFX (CFx_Base_Proto)
{
visname_S = "MFX_CHARGEWHITE_Collide1";
visAlpha = 1;
emTrjOriginNode = "BIP01";
emtrjmode_s = "FIXED";
lightPresetname    = "FIRESMALL";
};

INSTANCE spellFX_CHARGEWHITE_COLLIDEDYNFX_KEY_INVEST_1 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide1"; sfxid = "MFX_CHARGEWHITE_Collide1"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDEDYNFX_KEY_INVEST_2 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide2"; sfxid = "MFX_CHARGEWHITE_Collide2"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDEDYNFX_KEY_INVEST_3 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide3"; sfxid = "MFX_CHARGEWHITE_Collide3"; };
INSTANCE spellFX_CHARGEWHITE_COLLIDEDYNFX_KEY_INVEST_4 (C_ParticleFXEmitKey)  { visname_S = "MFX_CHARGEWHITE_Collide4"; sfxid = "MFX_CHARGEWHITE_Collide4"; };


AI/Magic/Spells

// ******************
// SPL_ChargeWhite
// ******************

const int SPL_Cost_ChargeWhite = 100; //4*25
const int STEP_ChargeWhite = 40;
const int SPL_Damage_ChargeWhite = 50;

INSTANCE Spell_ChargeWhite (C_Spell_Proto)
{
time_per_mana = 25;
damage_per_level = SPL_Damage_ChargeWhite;
damageType = DAM_MAGIC;
canTurnDuringInvest     = TRUE;
};

func int Spell_Logic_ChargeWhite (var int manaInvested)
{
if (self.attribute[ATR_MANA]<STEP_ChargeWhite)
{
return SPL_DONTINVEST;
};

if (manaInvested <= STEP_ChargeWhite*1)
{
self.aivar[AIV_SpellLevel] = 1; //Start mit Level 1
return SPL_STATUS_CANINVEST_NO_MANADEC;
}
else if (manaInvested > (STEP_ChargeWhite*1))
&& (self.aivar[AIV_SpellLevel] <= 1)
{
self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_ChargeWhite);

if (self.attribute[ATR_MANA]<0)
{
    self.attribute[ATR_MANA]=0;
};

self.aivar[AIV_SpellLevel] = 2;
return SPL_NEXTLEVEL; //Lev2 erreicht
}
else if (manaInvested > (STEP_ChargeWhite*2))
&& (self.aivar[AIV_SpellLevel] <= 2)
{
self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_ChargeWhite);

if (self.attribute[ATR_MANA]<0)
{
    self.attribute[ATR_MANA]=0;
};
self.aivar[AIV_SpellLevel] = 3;
return SPL_NEXTLEVEL; //Lev3 erreicht
}
else if (manaInvested > (STEP_ChargeWhite*3))
&& (self.aivar[AIV_SpellLevel] <= 3)
{
self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_ChargeWhite);

if (self.attribute[ATR_MANA]<0)
{
    self.attribute[ATR_MANA]=0;
};
self.aivar[AIV_SpellLevel] = 4;
return SPL_NEXTLEVEL; //Lev4 erreicht
}
else if (manaInvested > (STEP_ChargeWhite*3))
&& (self.aivar[AIV_SpellLevel] == 4)
{
return SPL_DONTINVEST;
};

return SPL_STATUS_CANINVEST_NO_MANADEC;
};

func void Spell_Cast_ChargeWhite(var int spellLevel)
{
self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_ChargeWhite);

if (self.attribute[ATR_MANA]<0)
{
self.attribute[ATR_MANA]=0;
};

self.aivar[AIV_SelectSpell] += 1;
};

no i runa :

INSTANCE ItRu_ChargeWhite (C_Item)
{
name = NAME_Rune;

mainflag = ITEM_KAT_RUNE;
flags = 0;

value = Value_Ru_ChargeFireball;

visual = "ItRu_ChargeWhite.3DS";
material = MAT_STONE;

mag_circle = 2;

spell = SPL_ChargeWhite;

wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER_BLUE";

description = NAME_SPL_ChargeWhite;


TEXT [0] = NAME_Mag_Circle;
COUNT [0] = mag_circle;

TEXT [1] = NAME_MinManakosten;
COUNT [1] = 125;

TEXT [2] = NAME_ManakostenMax;
COUNT [2] = 100;

TEXT [3] = NAME_Addon_Damage_Min;
count [3] =       50;

TEXT [4] = NAME_Damage_Max;
COUNT [4] = (SPL_Damage_ChargeWhite*4);

TEXT [5] = NAME_Value;
COUNT [5] = value;
};



Mam też oczywiście plik text.d ale myślę, że to jest nie ważne w tym przypadku  :lol2:
 
Keep calm and kill all ~~ Gorn


Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
A linijka odpowiadająca za czar w Spell_ProcessMana_Release.d lub Spell_ProcessMana.d jest?
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ
  if (activeSpell == SPL_ChargeWhite         )   {   return   Spell_Logic_ChargeWhite      (manaInvested);   };
Ma się rozumieć
 
Keep calm and kill all ~~ Gorn



0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry