31
Help / Re: Environment Zones Crashing Server
« on: December 18, 2018, 10:45:04 PM »
Also I am running the Steam version of Blockland on Windows 10 64-bit, if that helps.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
stateName[0] = "Activate";
stateTimeoutValue[0] = 0.05;
stateTransitionOnTimeout[0] = "LoadCheckA";
stateSound[0] = weaponSwitchSound;
stateName[1] = "Ready";
stateTransitionOnNoAmmo[1] = "Reload";
stateTransitionOnTriggerDown[1] = "FireCheckA";
stateAllowImageChange[1] = true;
stateName[2] = "Fire";
stateTransitionOnTimeout[2] = "BurstCheck1";
stateTimeoutValue[2] = 0.08;
stateFire[2] = true;
stateAllowImageChange[2] = false;
stateScript[2] = "onFire";
stateEjectShell[2] = true;
stateEmitter[2] = gunFlashEmitter;
stateEmitterTime[2] = 0.05;
stateEmitterNode[2] = "muzzleNode";
stateWaitForTimeout[2] = true;
stateSound[2] = bullpupFire1Sound;
stateName[3] = "Delay";
stateTransitionOnTimeout[3] = "FireLoadCheckA";
stateTimeoutValue[3] = 0.06;
stateEmitter[3] = gunSmokeEmitter;
stateEmitterTime[3] = 0.03;
stateEmitterNode[3] = "muzzleNode";
stateName[4] = "LoadCheckA";
stateScript[4] = "TT_onLoadCheck";
stateTimeoutValue[4] = 0.01;
stateTransitionOnTimeout[4] = "LoadCheckB";
stateName[5] = "LoadCheckB";
stateTransitionOnAmmo[5] = "Ready";
stateTransitionOnNoAmmo[5] = "Empty";
stateName[6] = "Reload";
stateTimeoutValue[6] = 1.6;
stateScript[6] = "onReloadStart";
stateTransitionOnTimeout[6] = "Wait";
stateWaitForTimeout[6] = true;
stateName[7] = "Wait";
stateTimeoutValue[7] = 0.8;
stateScript[7] = "onReloadWait";
stateTransitionOnTimeout[7] = "Reloaded";
stateName[8] = "FireLoadCheckA";
stateScript[8] = "TT_onLoadCheck";
stateTimeoutValue[8] = 0.01;
stateTransitionOnTimeout[8] = "FireLoadCheckB";
stateName[9] = "FireLoadCheckB";
stateTransitionOnAmmo[9] = "Smoke";
stateTransitionOnNoAmmo[9] = "ReloadSmoke";
stateName[10] = "Smoke";
stateEmitter[10] = gunSmokeEmitter;
stateEmitterTime[10] = 0.3;
stateEmitterNode[10] = "muzzleNode";
stateTimeoutValue[10] = 0.2;
stateTransitionOnTimeout[10] = "Ready";
stateTransitionOnTriggerDown[10] = "Fire";
stateName[11] = "ReloadSmoke";
stateEmitter[11] = gunSmokeEmitter;
stateEmitterTime[11] = 0.3;
stateEmitterNode[11] = "muzzleNode";
stateTimeoutValue[11] = 0.2;
stateTransitionOnTimeout[11] = "Empty";
stateName[12] = "Reloaded";
stateTimeoutValue[12] = 0.01;
stateScript[12] = "onReloaded";
stateTransitionOnTimeout[12] = "Ready";
stateName[13] = "Fire1";
stateTransitionOnTimeout[13] = "BurstCheck2";
stateTimeoutValue[13] = 0.08;
stateAllowImageChange[13] = false;
stateScript[13] = "onFire";
stateEjectShell[13] = true;
stateEmitter[13] = gunFlashEmitter;
stateEmitterTime[13] = 0.05;
stateEmitterNode[13] = "muzzleNode";
stateWaitForTimeout[13] = true;
stateSound[13] = bullpupFire1Sound;
stateTransitionOnNoAmmo[13] = "NoFire1";
stateName[14] = "Fire2";
stateTransitionOnTimeout[14] = "Delay";
stateTimeoutValue[14] = 0.08;
stateAllowImageChange[14] = false;
stateScript[14] = "onFire";
stateEjectShell[14] = true;
stateEmitter[14] = gunFlashEmitter;
stateEmitterTime[14] = 0.05;
stateEmitterNode[14] = "muzzleNode";
stateWaitForTimeout[14] = true;
stateSound[14] = bullpupFire1Sound;
stateTransitionOnNoAmmo[14] = "NoFire2";
stateName[15] = "Empty";
stateTransitionOnNotLoaded[15] = "Reload";
stateTransitionOnLoaded[15] = "LoadCheckA";
stateName[16] = "FireCheckA";
stateScript[16] = "TT_onFireCheck";
stateTransitionOnTimeout[16] = "FireCheckB";
stateName[17] = "FireCheckB";
stateTransitionOnNotLoaded[17] = "Fire";
stateTransitionOnLoaded[17] = "Empty";
stateName[18] = "NoFire1";
stateTransitionOnTimeout[18] = "NoFire2";
stateTimeoutValue[18] = 0.08;
stateAllowImageChange[18] = false;
stateWaitForTimeout[18] = true;
stateSound[18] = block_ChangeBrick_Sound;
stateName[19] = "NoFire2";
stateTransitionOnTimeout[19] = "Delay";
stateTimeoutValue[19] = 0.08;
stateAllowImageChange[19] = false;
stateWaitForTimeout[19] = true;
stateSound[19] = block_ChangeBrick_Sound;
stateName[20] = "BurstCheck1";
stateScript[20] = "onBurstCheck";
stateTransitionOnTimeout[20] = "Fire1";
stateTimeoutValue[20] = 0.01;
stateName[21] = "BurstCheck2";
stateScript[21] = "onBurstCheck";
stateTransitionOnTimeout[21] = "Fire2";
stateTimeoutValue[21] = 0.01;
Commenting out both stateTimeoutValue[20] and stateTimeoutValue[21] fixes the issue, commenting out only 1 causes the image to look invisible, leaving both uncommented causes the image to look as if there were no colorshift applied.
datablock ItemData(BullpupItem)
{
...
doColorShift = true;
colorShiftColor = "0.3 0.3 0.35 1.000";
...
}
datablock ShapeBaseImageData(BullpupImage)
{
...
doColorShift = true;
colorShiftColor = BullpupItem.colorShiftColor;
...
}
// Initial start up state
stateName[0] = "Activate";
stateTimeoutValue[0] = 0.15;
stateSequence[0] = "Activate";
stateTransitionOnTimeout[0] = "LoadCheckA";
stateSound[0] = weaponSwitchSound;
stateName[1] = "Ready";
stateTransitionOnNoAmmo[1] = "ReloadStart";
stateTransitionOnTriggerDown[1] = "FireCheckA";
stateAllowImageChange[1] = true;
stateScript[1] = "onReady";
stateSequence[1] = "ready";
stateName[2] = "FireCheckA";
stateScript[2] = "onFireCheck";
stateTimeoutValue[2] = 0.01;
stateTransitionOnTimeout[2] = "FireCheckB";
stateName[3] = "FireCheckB";
stateTransitionOnNotLoaded[3] = "Fire";
stateTransitionOnLoaded[3] = "Empty";
stateName[4] = "Fire";
stateTransitionOnTimeout[4] = "Smoke";
stateTimeoutValue[4] = 0.05;
stateFire[4] = true;
stateAllowImageChange[4] = false;
stateEjectShell[4] = true;
stateScript[4] = "onFire";
stateSequence[4] = "Fire";
stateWaitForTimeout[4] = true;
stateEmitter[4] = gunFlashEmitter;
stateEmitterTime[4] = 0.05;
stateEmitterNode[4] = "muzzleNode";
stateSound[4] = PistolfireSound;
stateName[5] = "Smoke";
stateEmitter[5] = gunSmokeEmitter;
stateEmitterTime[5] = 0.2;
stateEmitterNode[5] = "muzzleNode";
stateTransitionOnTriggerUp[5] = "Wait";
stateName[6] = "Wait";
stateTimeoutValue[6] = 0.001;
stateScript[6] = "onBounce";
stateTransitionOnTimeout[6] = "LoadCheckA";
stateSound[6] = pistolClickSound;
//Torque switches states instantly if there is an ammo/noammo state, regardless of stateWaitForTimeout
stateName[7] = "LoadCheckA";
stateScript[7] = "onLoadCheck";
stateTimeoutValue[7] = 0.01;
stateTransitionOnTimeout[7] = "LoadCheckB";
stateName[8] = "LoadCheckB";
stateTransitionOnAmmo[8] = "Ready";
stateTransitionOnNoAmmo[8] = "Empty";
stateName[9] = "ReloadWait";
stateTimeoutValue[9] = 0.3;
stateScript[9] = "onReloadWait";
stateTransitionOnTimeout[9] = "ReloadStart";
stateWaitForTimeout[9] = true;
stateName[10] = "ReloadStart";
stateTimeoutValue[10] = 0.3;
stateScript[10] = "onReloadStart";
stateTransitionOnTimeout[10] = "Reloaded";
stateWaitForTimeout[10] = true;
stateName[11] = "Reloaded";
stateTimeoutValue[11] = 0.4;
stateScript[11] = "onReloaded";
stateTransitionOnTimeout[11] = "Ready";
stateSequence[11] = "Fire";
stateSound[11] = pistolClickSound;
stateName[12] = "Empty";
stateTransitionOnNotLoaded[12] = "ReloadWait";
stateTransitionOnLoaded[12] = "LoadCheckA";
function PistolImage::onLoadCheck(%this,%obj,%slot)
{
TT_displayAmmo(%this, %obj, 4);
if(($Pref::Server::TTAmmo != 2 && $Pref::Server::TTAmmo != 3 && %obj.toolAmmo[%obj.currTool] <= 0 && %this.item.maxAmmo > 0
|| $Pref::Server::TTAmmo == 3 && %obj.client.quantity[%this.item.TTammoType] <= 0) && %obj.getState() !$= "Dead")
{
%obj.setImageAmmo(%slot,0);
}
else
{
%obj.setImageAmmo(%slot,1);
}
if(%obj.client.quantity[%this.item.TTammoType] <= 0 && $Pref::Server::TTAmmo != 1)
{
%obj.setImageLoaded(%slot, 1);
}
else
{
%obj.setImageLoaded(%slot, 0);
}
}
// Initial start up state
stateName[0] = "Activate";
stateTimeoutValue[0] = 0.15;
stateSequence[0] = "Activate";
stateTransitionOnTimeout[0] = "LoadCheckA";
stateSound[0] = weaponSwitchSound;
stateName[1] = "Ready";
stateTransitionOnNoAmmo[1] = "AmmoCheck";
stateTransitionOnTriggerDown[1] = "FireCheckA";
stateAllowImageChange[1] = true;
stateScript[1] = "onReady";
stateSequence[1] = "ready";
stateName[2] = "FireCheckA";
stateScript[2] = "onFireCheck";
stateTimeoutValue[2] = 0.01;
stateTransitionOnTimeout[2] = "FireCheckB";
stateName[3] = "FireCheckB";
stateTransitionOnAmmo[3] = "Fire";
stateTransitionOnNoAmmo[3] = "Empty";
stateName[4] = "Fire";
stateTransitionOnTimeout[4] = "Smoke";
stateTimeoutValue[4] = 0.05;
stateFire[4] = true;
stateAllowImageChange[4] = false;
stateEjectShell[4] = true;
stateScript[4] = "onFire";
stateSequence[4] = "Fire";
stateWaitForTimeout[4] = true;
stateEmitter[4] = gunFlashEmitter;
stateEmitterTime[4] = 0.05;
stateEmitterNode[4] = "muzzleNode";
stateSound[4] = PistolfireSound;
stateName[5] = "Smoke";
stateEmitter[5] = gunSmokeEmitter;
stateEmitterTime[5] = 0.2;
stateEmitterNode[5] = "muzzleNode";
stateTransitionOnTriggerUp[5] = "Wait";
stateName[6] = "Wait";
stateTimeoutValue[6] = 0.001;
stateScript[6] = "onBounce";
stateTransitionOnTimeout[6] = "LoadCheckA";
stateSound[6] = pistolClickSound;
//Torque switches states instantly if there is an ammo/noammo state, regardless of stateWaitForTimeout
stateName[7] = "LoadCheckA";
stateScript[7] = "onLoadCheck";
stateTimeoutValue[7] = 0.01;
stateTransitionOnTimeout[7] = "LoadCheckB";
stateName[8] = "LoadCheckB";
stateTransitionOnAmmo[8] = "Ready";
stateTransitionOnNoAmmo[8] = "Empty";
stateName[9] = "ReloadWait";
stateTimeoutValue[9] = 0.3;
stateScript[9] = "onReloadWait";
stateTransitionOnTimeout[9] = "ReloadStart";
stateWaitForTimeout[9] = true;
stateName[10] = "ReloadStart";
stateTimeoutValue[10] = 0.3;
stateScript[10] = "onReloadStart";
stateTransitionOnTimeout[10] = "Reloaded";
stateWaitForTimeout[10] = true;
stateName[11] = "Reloaded";
stateTimeoutValue[11] = 0.4;
stateScript[11] = "onReloaded";
stateTransitionOnTimeout[11] = "Ready";
stateSequence[11] = "Fire";
stateSound[11] = pistolClickSound;
stateName[12] = "Empty";
stateScript[12] = "onEmpty";
stateTransitionOnAmmo[12] = "ReloadWait";
stateTimeoutValue[12] = 0.01;
stateTransitionOnTimeout[12] = "LoadCheckA";
stateName[13] = "AmmoCheck";
stateScript[13] = "onAmmoCheck";
stateTransitionOnAmmo[13] = "Ready";
stateTimeoutValue[13] = 0.01;
stateTransitionOnTimeout[13] = "ReloadStart";
function PistolImage::onEmpty(%this, %obj, %slot)
{
// do nothing for now
}
function PistolImage::onLoadCheck(%this,%obj,%slot)
{
if(($Pref::Server::TTAmmo != 2 && $Pref::Server::TTAmmo != 3 && %obj.toolAmmo[%obj.currTool] <= 0 && %this.item.maxAmmo > 0
|| $Pref::Server::TTAmmo == 3 && %obj.client.quantity[%this.item.TTammoType] <= 0) && %obj.getState() !$= "Dead")
{
%obj.setImageAmmo(%slot,0);
}
else
{
%obj.setImageAmmo(%slot,1);
}
}
Now if Zeblote releases an update that changes field names or adds new fields that are required for the add-on to work, your add-on forcing the old version of the datablock could break your add-on and more than likely break Zeblote’s duplicator.I see your point. But I wanted to avoid using forcerequiredaddon for an entire weapons pack (namely Quake Type weapons) and all the datablocks that would consume when I only need datablocks from a select few weapons. It seems at this point my best bet is just to create renamed versions of the datablocks I want but copy over their fields and assets. Or to make a conditional declaration of the original datablocks only if the other pack is not enabled.
my suggestion is you create a clone of the weapon instead of overwriting it in general. you should generally do thatBut if I make no changes to the datablocks, overwriting should be okay right? I don't need the weapons specifically so much as their particle effects.