Hela
Calculador épico de fichas de PJ
- Registrado
- 11/7/20
- Mensajes
- 2,019
Bueno está hablado con MiniKanyas por eso lo he posteado aquí.
en el spells.2da
En el feat.2da
en el cls_feat_monk.2da hay que sustituir en la row 24 el FeatIndex 204 la row que definimos en el feat.2da
Luego falta el redefinir la dote como me has comentado pero eso ya es problema tuyo
en el spells.2da
| Row No. | 1335 (en el mío que no es el que está ahora) |
| Label | RafagaDeGolpes |
| Name | 1938 |
| iconResRef | **** |
| School | V |
| Range | P |
| VS | **** |
| MetaMagic | **** |
| TargetType | 0x01 |
| impactScript | ife_flurry |
| Bard | **** |
| Cleric | **** |
| Druid | **** |
| Paladin | **** |
| Ranger | **** |
| Wiz_Sorc | **** |
| Innate | 1 |
| ConjTime | 0 |
| ConjAnim | head |
| ConjHeadVisual | **** |
| ConjHandVisual | **** |
| ConjGrndVisual | **** |
| ConjSoundVFX | **** |
| ConjSoundMale | **** |
| ConjSoundFemale | **** |
| CastAnim | self |
| CastTime | 0 |
| CastHeadVisual | **** |
| CastHandVisual | **** |
| CastGrndVisual | **** |
| CastSound | **** |
| Proj | 0 |
| ProjModel | **** |
| ProjType | **** |
| ProjSpwnPoint | **** |
| ProjSound | **** |
| ProjOrientation | **** |
| InmunityType | **** |
| itemImmunity | 0 |
| SubRadSpell1 | **** |
| SubRadSpell2 | **** |
| SubRadSpell3 | **** |
| SubRadSpell4 | **** |
| SubRadSpell5 | **** |
| Category | 10 |
| Master | **** |
| UserType | 2 |
| SpellDesc | 6026 |
| UseConcentration | 0 |
| SpontaneouslyCast | 0 |
| AltMessage | 6026 |
| HostileSetting | 0 |
| FeatID | 1462 (en mi caso, el que toque en el del servidor) |
| Counter1 | **** |
| Counter2 | **** |
| HasProjectile | 0 |
En el feat.2da
| Row No | 1462 (en mi caso, el que toque en el servidor) |
| Label | FlurryofBlows |
| Feat | 1938 |
| Description | 6026 |
| icon | ife_flurry |
| MinAttackBonus | **** |
| MinStr | **** |
| MinDex | **** |
| MinInt | **** |
| MinWis | **** |
| MinCon | **** |
| MinCha | **** |
| MinSpellLvl | **** |
| Prereqfeat1 | **** |
| Prereqfeat2 | **** |
| GainMultiple | 0 |
| EffectStack | 0 |
| AllClassesCanUse | 0 |
| Category | 22 |
| MaxCR | **** |
| SpellID | 1335 (en mi caso, en el servidor el que toque) |
| Successor | **** |
| CRValue | **** |
| UsesPerDay | **** |
| MasterFeat | **** |
| TargetSelf | 1 |
| OrReqFeat0 | **** |
| OrReqFeat1 | **** |
| OrReqFeat2 | **** |
| OrReqFeat3 | **** |
| OrReqFeat4 | **** |
| ReqSkill | **** |
| ReqSkillMinRanks | **** |
| ReqSkill2 | **** |
| ReqSkillMinRanks2 | **** |
| Constants | FEAT_FLURRY_OF_BLOWS |
| ToolCategories | 6 |
| HostileFeat | **** |
| MinLevel | **** |
| MinLevelClass | **** |
| MaxLevel | **** |
| MinFortSave | **** |
| PreReqEpic | 0 |
| ReqAction | 0 |
en el cls_feat_monk.2da hay que sustituir en la row 24 el FeatIndex 204 la row que definimos en el feat.2da
Luego falta el redefinir la dote como me has comentado pero eso ya es problema tuyo
C:
// La spellid en mi 2da cambiar por el correcto del servidor.
const int FLURRY_OF_BLOWS_ID = 1335;
int isActiveFlurry();
int checkWeaponFlurry();
int checkValidWeaponFlurry(object oWeapon);
int isActiveFlurry() {
int iSpell = FLURRY_OF_BLOWS_ID;
int active = TRUE;
effect eSearch = GetFirstEffect(OBJECT_SELF);
while(GetIsEffectValid(eSearch)) {
if(GetEffectSpellId(eSearch) != iSpell) {
eSearch = GetNextEffect(OBJECT_SELF);
} else {
active = FALSE;
break;
}
}
return active;
}
int checkWeaponFlurry() {
object oLWeap = GetItemInSlot(INVENTORY_SLOT_LEFTHAND);
object oRWeap = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND);
int response = TRUE;
// EL RESPONSE DEL PRIMER IF ES REDUNDANTE PERO PARA QUE QUEDE IGUAL EL CODIGO :P
if(response == TRUE && GetIsObjectValid(oLWeap)) response = checkValidWeaponFlurry(oLWeap);
if(response == TRUE && GetIsObjectValid(oRWeap)) response = checkValidWeaponFlurry(oRWeap);
return response;
}
int checkValidWeaponFlurry(object oWeapon) {
if(GetBaseItemType(oWeapon) == BASE_ITEM_KAMA) return TRUE;
if(Get2DAString("baseitems","IsMonkWeapon",GetBaseItemType(oWeapon)) == "1") return TRUE;
return FALSE;
}
void main()
{
int iLevel = GetLevelByClass(CLASS_TYPE_MONK);
int iPenal = 2;
int active = isActiveFlurry();
if(!checkWeaponFlurry()) {
FloatingTextStringOnCreature("*No se puede utilizar la Ráfaga de golpes con el arma equipada*",OBJECT_SELF,FALSE);
return;
}
if(active == TRUE) {
FloatingTextStringOnCreature("*Ráfaga de golpes activada*",OBJECT_SELF,FALSE);
if(iLevel >= 5) iPenal--;
if(iLevel >= 9) iPenal--;
effect eff = EffectModifyAttacks(1);
eff = SupernaturalEffect(eff);
if(iPenal > 0) eff = EffectLinkEffects(eff,EffectAttackDecrease(iPenal));
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eff,OBJECT_SELF);
} else {
FloatingTextStringOnCreature("*Ráfaga de golpes desactivada*",OBJECT_SELF,FALSE);
effect eff = GetFirstEffect(OBJECT_SELF);
while(GetIsEffectValid(eff)) {
int iId = GetEffectSpellId(eff);
if(iId == FLURRY_OF_BLOWS_ID) RemoveEffect(OBJECT_SELF,eff);
eff = GetNextEffect(OBJECT_SELF);
}
}
}
Última edición:

