After multiple tests, it seems the script for no mind-control effect doesnt allow the mod to work correctly. This might be on my end, but I wanted to confirm with someone else. I have used the normal version of the flute dozens of times without issue. Then when I use the script for no mind-control effect, the mod seems to function normal, the flute is available for purchase, the flue animation plays fine, but the animals DO NOT come to Geralt.
Wow I look like an idiot. I had previously asked if anyone knew how to remove the axii effect above head from animals and I guess I read the "no axii effect" as not above head. Lol.
KNG you are a mad genius sir. Your mods are so out there that they are brilliant. Bet you wish you had thought of the 'looking after Geralts testacles' mod now.
hi, i remove some part of the code and it seems to work. Copy and paste the below code into KNGcharmingflute.ws
Mods\modKNGCharmingFlute\content\scripts\local
class CKNGCharmingFluteItem extends W3UsableItem {
private var mCKNGCharmingFlute : CKNGCharmingFlute;
default itemType = UI_None;
event OnUsed(usedBy : CEntity) {
if(usedBy == thePlayer) {
mCKNGCharmingFlute = new CKNGCharmingFlute in theGame;
mCKNGCharmingFlute.Start();
} } }
statemachine class CKNGCharmingFlute extends W3UsableItem {
var startAnimation: name; var stopAnimation : name; var loopAnimation : name;
var drunkStartAnimation: name; var drunkStopAnimation: name; var drunkLoopAnimation: name; var possibleItemSlots: array<name>; var entity : CEntity; var entityTemplate : CEntityTemplate; var damage : W3DamageAction; default itemType = UI_None;
It doesn't look like there is a way to uninstall this mod? I mean, I removed the files, but the item is still preset in merchant's inventory, although it cannot be used and has different translation. Maybe its an in-game item?
74 comments
https://www31.zippyshare.com/v/NuRti8f8/file.html
and replace it with the script in: \mods\modKNGCharmingFlute\content\scripts\local\
to have a flute without the mind-control effect.
This might be on my end, but I wanted to confirm with someone else. I have used the normal version of the flute dozens of times without issue. Then when I use the script for no mind-control effect, the mod seems to function normal, the flute is available for purchase, the flue animation plays fine, but the animals DO NOT come to Geralt.
Any idea?
Thanks
>complains animals do not go to Geralt
I had previously asked if anyone knew how to remove the axii effect above head from animals and I guess I read the "no axii effect" as not above head. Lol.
Now this makes sense.
My bad.
Your mods are so out there that they are brilliant. Bet you wish you had thought of the 'looking after Geralts testacles' mod now.
Mods\modKNGCharmingFlute\content\scripts\local
class CKNGCharmingFluteItem extends W3UsableItem {
private var mCKNGCharmingFlute : CKNGCharmingFlute;
default itemType = UI_None;
event OnUsed(usedBy : CEntity) {
if(usedBy == thePlayer) {
mCKNGCharmingFlute = new CKNGCharmingFlute in theGame;
mCKNGCharmingFlute.Start();
}
}
}
statemachine class CKNGCharmingFlute extends W3UsableItem {
var startAnimation: name;
var stopAnimation : name;
var loopAnimation : name;
var drunkStartAnimation: name;
var drunkStopAnimation: name;
var drunkLoopAnimation: name;
var possibleItemSlots: array<name>;
var entity : CEntity;
var entityTemplate : CEntityTemplate;
var damage : W3DamageAction;
default itemType = UI_None;
event OnSpawned(spawnData : SEntitySpawnData) {
this.Init();
}
function Start() {
StartFluting();
}
function StartFluting() {
entityTemplate = (CEntityTemplate)LoadResource("dlc\dlckngcharmingflute\data\w2ent\kng_charmingflute.w2ent", true);
entity = (CKNGCharmingFlute)theGame.CreateEntity(entityTemplate, thePlayer.GetWorldPosition(), thePlayer.GetWorldRotation());
}
function Init(){
startAnimation = 'man_work_standing_playing_flute_start';
stopAnimation = 'man_work_standing_playing_flute_stop';
loopAnimation = 'man_work_standing_playing_flute_loop_01';
drunkLoopAnimation = 'drunk_man_work_standing_playing_flute_loop_01';
possibleItemSlots.Clear();
possibleItemSlots.Resize(4);
possibleItemSlots.PushBack('r_weapon');
possibleItemSlots.PushBack('l_weapon');
possibleItemSlots.PushBack('r_hand');
possibleItemSlots.PushBack('l_hand');
thePlayer.AddBuffImmunity_AllCritical( 'W3SmartObject', true );
thePlayer.AddBuffImmunity_AllNegative( 'W3SmartObject', true );
BlockPlayerActions();
this.PushState('StartUse');
}
function BlockPlayerActions() {
thePlayer.BlockAction( EIAB_Jump, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Fists, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Movement, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Signs, 'consoleCommand' );
thePlayer.BlockAction( EIAB_DrawWeapon, 'consoleCommand' );
thePlayer.BlockAction( EIAB_CallHorse, 'consoleCommand' );
thePlayer.BlockAction( EIAB_FastTravel, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Roll, 'consoleCommand' );
thePlayer.BlockAction( EIAB_InteractionAction, 'consoleCommand' );
thePlayer.BlockAction( EIAB_ThrowBomb, 'consoleCommand' );
thePlayer.BlockAction( EIAB_RunAndSprint, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Dive, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Interactions, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Dodge, 'consoleCommand' );
thePlayer.BlockAction( EIAB_SwordAttack, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Sprint, 'consoleCommand' );
thePlayer.BlockAction( EIAB_OpenMeditation, 'consoleCommand' );
thePlayer.BlockAction( EIAB_LightAttacks, 'consoleCommand' );
thePlayer.BlockAction( EIAB_HeavyAttacks, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Climb, 'consoleCommand' );
thePlayer.BlockAction( EIAB_Slide, 'consoleCommand' );
thePlayer.BlockAction( EIAB_MountVehicle, 'consoleCommand' );
thePlayer.BlockAction( EIAB_InteractionContainers, 'consoleCommand' );
}
function UnblockPlayerActions() {
thePlayer.UnblockAction( EIAB_Jump, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Fists, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Movement, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Signs, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_DrawWeapon, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_CallHorse, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_FastTravel, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Roll, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_InteractionAction, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_ThrowBomb, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_RunAndSprint, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Dive, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Interactions, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Dodge, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_SwordAttack, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Sprint, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_OpenMeditation, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_LightAttacks, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_HeavyAttacks, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Climb, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_Slide, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_MountVehicle, 'consoleCommand' );
thePlayer.UnblockAction( EIAB_InteractionContainers, 'consoleCommand' );
}
function StopFluting(){
thePlayer.RemoveBuffImmunity_AllCritical( 'W3SmartObject' );
thePlayer.RemoveBuffImmunity_AllNegative( 'W3SmartObject' );
UnblockPlayerActions();
DestroyNotWantedItems();
entity.DestroyAfter(0.1f);
}
function DestroyNotWantedItems() {
var itemID : SItemUniqueId;
var inv : CInventoryComponent;
var i : int;
inv = thePlayer.GetInventory();
if(inv) {
for (i=0; i < possibleItemSlots.Size(); i+=1) {
itemID = inv.GetItemFromSlot(possibleItemSlots[i]);
if(inv.IsIdValid(itemID)) {
inv.UnmountItem(itemID, true);
}
}
}
}
timer function AbortTimer(deltaTime : float, id : int) {
if(theInput.IsActionJustPressed('Use')) {
GotoState('StopUse');
}
}
}
state StartUse in CKNGCharmingFlute {
event OnEnterState(prevStateName : name) {
PlayStartAnimation();
}
entry function PlayStartAnimation() {
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT', parent.startAnimation);
parent.PushState('LoopUse');
}
}
state LoopUse in CKNGCharmingFlute {
event OnEnterState(prevStateName : name) {
parent.AddTimer('ScanForTargets',0.5,true,,,true);
parent.AddTimer('AbortTimer',0,true);
PlayLoopAnimation();
}
entry function PlayLoopAnimation() {
while(parent.IsInState('LoopUse')) {
if(thePlayer.HasBuff(EET_Drunkenness)) {
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT','kng_flute');
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT', parent.drunkLoopAnimation);
} else {
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT','kng_flute');
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT', parent.loopAnimation);
}
}
parent.PushState('StopUse');
}
}
state StopUse in CKNGCharmingFlute {
event OnEnterState(prevStateName : name) {
parent.RemoveTimer('AbortTimer');
parent.RemoveTimer('ScanForTargets');
PlayStopAnimation();
}
entry function PlayStopAnimation() {
thePlayer.ActionPlaySlotAnimation('PLAYER_SLOT', parent.stopAnimation);
parent.PushState('Null');
}
}
state Null in CKNGCharmingFlute {
event OnEnterState(prevStateName : name) {
StopAll();
}
entry function StopAll(){
parent.StopFluting();
}
}
I'am one of the user that playing your mods .
your mods are very intelligent .
I really excited to see your more mods .
and i have one questions that could you make a mod for Geralt that can use the Ciri's spells ?
like a blink and others ( not sure about the spell name sorry ) .