Show Posts

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.


Messages - TheViewer

Pages: 1 2 [3] 4 5
31
Help / Environment Zones Crashing Server
« on: December 18, 2018, 09:43:38 PM »
Having Server_EnvironmentZones enabled causes me to crash as soon as I finish loading my server and am about to spawn. I believe I followed the installation instructions correctly, as I downloaded BlocklandLoader.dll (v0.1.3) and modified my Blockland exe by patching the import table using StudPE. Then I downloaded SelectiveGhosting.dll and put it in Blockland/modules. According to the console SelectiveGhosting is being loaded successfully.

I've tried disabling all nondefault add-ons besides Environment Zones and New Duplicator. Disabling Environment Zones stops the crashing. Attached is a console log attached where a trace was run before loading leading up to the crash.

32
Help / Re: Completely Invisible Item
« on: June 25, 2018, 01:24:11 PM »
Issue resolved but I'm really baffled by the cause. Apparently commenting out certain image state variable in the Bullpup fixes the colorshift? I was editing this copy, so it did have some extra image states compared to the original. Fiddling around with it, I suspect it has something to do with too much image state data messing with the colorshift somehow.
Code: [Select]
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.

33
Help / Re: Completely Invisible Item
« on: June 25, 2018, 11:37:25 AM »
Checked and it seems correct:
Code: [Select]
datablock ItemData(BullpupItem)
{
...
   doColorShift = true;
   colorShiftColor = "0.3 0.3 0.35 1.000";
...
}

datablock ShapeBaseImageData(BullpupImage)
{
...
   doColorShift = true;
   colorShiftColor = BullpupItem.colorShiftColor;
...
}

34
Help / Completely Invisible Item
« on: June 24, 2018, 10:54:34 PM »

Started up a server with a few add-ons plus Tier Tactical. The Tier Tactical Bullpup gun as seen in the picture looked fine on the brick, but when I equipped it it looked completely invisible, with the sky showing through. Also when I walked over the item and picked it up from the brick, the item on the brick also became invisible after respawning. The item looks fine when it is dropped. Did flushtexturecache(); and resetlighting(); in the console, but it didn't help. It only seems to affect the Bullpup, as the other items were fine.

35
Add-Ons / Re: Cyclops, Minotaur and Big Knight Bots
« on: June 17, 2018, 04:43:42 PM »
Very cool! One minor issue though: killing these bots in a minigame and then getting close to their bodies causes them to attack as if they were still alive. I encountered the same thing with your earlier wraith bots.

36
I still don't exactly understand why the state system was acting the way it was, but I have found that using setImageLoaded to trigger the desired state changes somehow fixed the problem. Here is my revised code:
Code: [Select]
// 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";
Code: [Select]
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);
}
}

37
I have a weapon with multiple ammo modes controlled by pref, one with infinite ammo ($Pref::Server::TTAmmo = 2) and one with DOOM style ammo ($Pref::Server::TTAmmo = 3), where you can keep shooting until your reserve is empty.

My problem occurs when starting in TTAmmo 3 with no reserve ammo left. The weapon cycles between "Empty", "LoadCheckA", and "LoadCheckB" in an infinite loop for as long as there is no ammo, which is working as intended. But if I change the pref to TTAmmo 2 while the weapon is in that loop, "LoadCheckB" is meant to go to "Ready" since ammo is no longer necessary. It does this, but it also plays the pistol roostering animation (stateSequence = "Fire") and pistolClickSound when it's not supposed to, as it goes straight to "Ready" and not to any states with those animations.

I've done debugging loops to just print out the image's state every 9 ms or so, and it goes from Empty -> LoadCheckA -> LoadCheckB -> Ready
I think it has something to do with the "Empty" transitions, because changing stateTransitionOnAmmo in "Empty" to a state with a different sound/animation such as "Activate" will play that state's sound/animation instead. But that makes no sense, since the image should never be in the "Empty" state with image ammo equal to 1 in the first place.

All states of the weapon:
Code: [Select]
// 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";

Here are the relevant state functions:
Code: [Select]
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);
}
}

38
Add-Ons / Re: King of Ghosts: Endless Zombies Edition
« on: June 08, 2018, 10:02:01 PM »
Added color picture so people can actually see what the ghosts look like. There's a video in the linked thread if you want to see them in action.

41
Add-Ons / King of Ghosts: Endless Zombies Edition
« on: June 06, 2018, 02:38:18 PM »
Based on this request: https://forum.blockland.us/index.php?topic=319052.0

Ghost enemies that now work as custom zombies under EZM, as seen on Bushido's server. Comes with a few changes:
  • File name changed from Script_GhostBots to Script_GhostZombies to distinguish from the version for the dungeon gamemode. Obviously don't enable both at the same time
  • Slayer pref: Disable Ghost Crouching. Ghosts look kinda goofy when they crouch, so you can disable it if you prefer. Has no effect if using Custom Ghost AI.
  • Slayer pref: Custom Ghost AI. Overrides the EZM AI, seems to make zombies more aggressive. Using this AI ghosts will not be affected by most EZM prefs such as "Always Find Player", they will not crouch, and will growl a lot more.
  • Ghost minigun animation now resets properly
  • Ghosts that can't jump good will no longer randomly jump. Except aircraft bombs.

Cool promo pic:


Colorized version:


Download:
https://leopard.hosting/dl/ozmct/Script_GhostZombies.zip

42
Modification Help / Re: Redefining datablocks from another add-on
« on: June 03, 2018, 05:56:31 PM »
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.

43
Modification Help / Re: Redefining datablocks from another add-on
« on: June 03, 2018, 03:30:02 PM »
my suggestion is you create a clone of the weapon instead of overwriting it in general. you should generally do that
But 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.

44
Modification Help / Re: Redefining datablocks from another add-on
« on: June 02, 2018, 04:23:21 PM »
That makes sense. The main reason I don't want to force the add-on is that I'm editing a gamemode and I don't want to constrain the server host's choice in weapon packs.

45
Modification Help / Redefining datablocks from another add-on
« on: June 02, 2018, 12:44:41 PM »
Say I have an add-on that uses datablocks from another pack, but I want my add-on to be standalone and not force the pack as a required add-on. If I define datablocks that are identical to and named the same as those from the other pack, and duplicate the necessary files into my zip, will this work? Or will it cause loading issues with players/something else that I don't know about? Would I be better off adding a conditional to only redefine using the files in the zip if the other pack doesn't exist?

Pages: 1 2 [3] 4 5