#arma3_scripting
1 messages ยท Page 408 of 1
I don't think actions work on disabled things
fuccc
sleep maybe? like
this disableSimulation true;
sleep 4;
this disableSimulation false;
That would work yeah
oh boi
But the vehicle shouldn't move
can u set a velocity to a obj that has no simulation
as the simulation is what moves the object along it's velocity
So yes you can. But it won't move
foiled again
ears open
https://community.bistudio.com/wiki/createSimpleObject I don't know if they always have collision
They have no physx.. But I don't think you can drive through it.. But you could still try
oh I c,it woulnd thave phytx
My hope was that they maybe also have no collision.. But from reading the wiki it looks like they have
doesnt hurt to try I suppose
so why does it work for infantry tho? dont they have phyx?
createSimpleObject is just a GEOM muppet. It doesn't really has a namespace. Usually used for "outlands" where no one touches but sees it.
hmm would hard would it be to take a existing solid object and make it into a static object?
But don't use it in MP much
Use with caution as this technique is not very clean - should not be used for many objects and definitely not in MP games.```
^^ rip
What I can say about this notice
You don't need MP to try if it works
if it does work getting it to MP is not the problem
is on my results 47/50 objects were created normally, while 3 of them might just disappear or having wrong state (dirAndUp etc)
Thats what the notice about
alright ima try this out,if it fails ill just crie as usual
Just for the case if you are not going to use it for 1000+ objects, but 1-3 = fine.
prob gona be 1-4 object maybe,our mission maker just asked me to find a way XD
well head zeus operator
well
it makes the object a staitc object but
- cant add it zeus and
- cant walk through it
foiled again
this is harder then I thought
@edgy dune As been told this is just a GEOM muppet. Object doesn't have a namespace. It has only one state via "I do exist". It cant recieve setVariable, netiher EVH.
@edgy dune This results in that this object only collide with others. End.
I c
and vehicles
u know how in star wars hangers have sheilds? well someone iin my unit has a "shield object" a transperent blue object basicly. Wat id like to do is have that object be so that ppl and vics can go through ,basicly like a static object
No
Vehicles are physx. No work
we tried a lot already
Wait
@edgy dune Did you try disabling the collision of the shield object? Instead of vehicles and units?
I can cursorObject disableCollisionWith player and walk through houses, cars, placed objects
I don't see how this would not work
hmm
As I said we tried that already. And as I also said vehicles are physx and don't work
Bad workaround actually, it is better to just destroy the GEOM LOD of the object, which will make it passable
But I don't think we tried disabling the collision of the "shield" itself
Yeah. That was what I would do. Disable GEO with a animation. But as he is using a BI model that isn't an option
Just a create your own p3d - best solution for desired "transparency"
As disableCollisionWith has EL. If this object is not local to current PC, you'll have to send this to JIP.
To all of the players ofc
Oh I dont have access to the sheild obj,all I k is that
its just pretty much a thin vr block
Did you read what I wrote above?
Disable collision of the shield
instead of vehicles and units
oh yea thats wat I was responding to,I dont have access to it
attach the SHIELD to something
attaching a car to a car causes the car not to collide with cars
Ah.. Thought disableCollision can generally disable. But it can only disable between two objects
oh attaching
Yeah! AttachTo disables collision! That's awesome
lemme ty that
@edgy dune If your shield is created via mission.sqm, i'd rather do disableCollisionWith in init-line.
@still forum Bad idea to use attachTo
why?
If its a custom object, why not modify the object itself
Why is the only viable probably working way a bad idea?
Just disable the collision LOD?
How?
What command?
@still forum read my post about mission.sqm
We already know disableCollisionWith won't work
^
@still forum attachTo damages performance alot more than just JIP packet, believe me
For a static object that never moves?
Out of which you have at most a dozen in the mission
I highly doubt it's worse than something else
Whatever, as i told: If the object is accesible via mission.sqm - just make disableCollisionWith in init-line of the object
No strings attached ๐
Yes
But
No matter where you use the command
it acts the same way
Also using init line is cancer
Yes? Ofcause you can use something that doesn't work. But how does that change the situation that it doesn't work?
Object created via createVehicle on server machine will have no effect on all PCs, because it is EL
Thats why i stated mission.sqm
๐คฆ
@still forum I use it alot, haven't seen its not working
Otherwise it would be stated somewhere on Wiki that it doesn't work, ain't it?
Dude. We just tried. It doesn't work. And wiki also says it doesn't work.
In a Big yellow warning box with a big yellow exclamation mark
Object created via createVehicle on server machine will have no effect on all PCs, because it is EL That's wrong
createVehicle is global.
Command has to be executed where objects are local, and as long as they don't change locality, the effect of this command will be global.
oh shit it works
Where does it say its not working?
This command doesn't disable collision between PhysX objects.
I thought it was in the warning box.. apparently it's right above it
Maybe we should make the non physx hingy also a big yellow box?
@unborn ether YOu can't drive through a object with a vehicle, but you can run through it with a unit
@edgy dune woop woop
Why would you create a PhysX object with which you want to have no collision? ๐
Nice, problem solved ๐
done
Why would you disable collision of a vehicle towards unit? ๐
_this attachTo [box ];
mergedList=allUnits+vehicles;
{ _this disableCollisionWith _x;} forEach mergedList;
hint "done";
so wat have we learned today
1) arma 3 is not made for a star wars mod
๐
How to find a ton of wonky ass weird workarounds to make some wonky ass thing work that nobody thought about before
Just a usual Arma day
yiss
Though.. If a starwars mod made that shield
Why don't they just add a method to disable collision?
well about that
I have no idea why the head zeus of my unit asked me to find out how,I assuemd a sheidl
sheild*
I just needed a story to explain it easier
The thing is in the mod theres a acclamator,thats empty and not solid cuase well
lul
arma 3 cant handle a giant space cruiser
so wat he does is fill it,like how optre has buildable rooms like doom3
slaps @edgy dune with a rolled up newspaper to punish him for inventing stories
so image for somereason my superior wants to make sheilds or something
also in the update ofr the mod droideks wont have sheilds,so ima script a shield on them that lets bullets through but thats a later story
sorry ๐
but its easier to explain XD
Shield that lets bullets out but not in?
in
The thing is I just want the sheild to be there for cosmetic,but its solid, so I wana have it where things go through it,but thats a thing for a later time
result ^^
man scripting is fun ๐
I like making the arma 3 sub go 18000 kmph and 600km away from the map
btw I can confirm that going 600km away from the map does not crash the game
On x64 it will at some point, but that point is kinda far away
yeah 600km is not enough You need to go reeaaaaally far
It's the same on 32bit as on x64
I imagine the size of the map you need for that stuff
anyways time to sleep XD
yea we wanted to have
the star fighters come into ops at light speed
and pop right over the AO,same for star ship but well.....frames
Simulate it with pseudo-movement, like you just setVelocity it into nowhere with a resulting setPos
^^^
I thought about that
do it over water so it sorta looks like ur moving
pararrel axing? watever the word is
no wait I need to sleep now
spqr Senฤtus Populusque Rลmฤnus
How to add curator items with custom icons and options ๐
options? What do you mean by curator items? They are just normal items like in the editor
I want custom icons for them so they stand out
Wht kind of items?
I am doing a new ai script, I want it to create a object that has a custom icon in zeus. So when the group get's cached it can be edited and moved and uncached by the zeus
Ah you mean in 3D? I thought you were talking about the unit/object/vehicle/item/module list on the right side
yeah 3d
I'm quite sure that's in engine and not modifyable
per frame with draw 3d?
๐ค
Or just drawIcon3D. Don't need worldToScreen ofc ๐
Hmm
There was function for custom icons
There is the thing that online, player groups have arma units logo abouve them
I wonder if that's editable or an option
All things I so far wanted to edit on Zeus was in engine :/
ohh thanks
Whoa this is exactly what I needed
Also shouldn't kill performance as it addds to the array of curatoricons
But you can't move it as far as I see? You probably can by manually doing stuff in it's internals
How does that thing work internally?
private ["_curator","_icon","_iconID","_icons"];
_curator = _this param [0,objnull,[objnull]];
_icon = _this param [1,[],[[]]];
_show2D = _this param [2,true,[true]];
_show3D = _this param [3,true,[true]];
if (_show2D || _show3D) then {
_icons = _curator getvariable ["bis_fnc_addcuratoricon",[]];
_iconID = count _icons;
_icons set [count _icons,[_icon,_show2D,_show3D]];
_curator setvariable ["bis_fnc_addcuratoricon",_icons];
_iconID
} else {
-1
};
So rest of it
Is internal
Ohh
Are you sure? setting a variable doesn't sound that engine side.
Probably some func elsewhere
I just wonder if it might use the drawIcon3D way you already thought of using
Cant find in functions_f or curator_functions
Hi there,
how can i find out, what gear is put to different supply crates by default? config path to init expression?
spawn it and check what's in it ^^
Honestly the easiest way
you could ofcause scan it's config
problem is - generic BIS containers are the subject to resource leak, they leave garbage in logEntities and jip queue
Boxes too?
createVehicleLocal then
Maybe local garbage in logEntities but nothing in JIP
create some containers "IG_supplyCrate_F" createVehicle getPos player;, check entities (4 vests with SupplyXX container associated + 1 orphaned SupplyXX). Destroy crate - orphaned object doesn't go.
It's in vanilla reproducible everytime
yep, and
clearMagazineCargoGlobal _crate;
clearWeaponCargoGlobal _crate;
clearItemCargoGlobal _crate;
clearBackpackCargoGlobal _crate;
doesn't help. Orphaned SupplyXX stays orphaned, contributes to JIP queue, network traffic, messages like Server/Client object not found
Is that happens on dedicated server ?
๐ค
dedicated, hosted game, 3Deden
Are ther empty versions of the creates?
idk
messages like Server/Client object not found SERIOUSLY?
You might have just solved the biggest mistery in Arma server hosting history
So, how do I repro in local hosted MP?
reproduce what? Leak? obj not found?
Nice old talk about object not found? ๐
Leak,
spawn several crates around you
"IG_supplyCrate_F" createVehicle getPos player; get logEntities, destroy crates by any mean, e.g. deleteVehicle cursorTarget; recheck entities.
I actually solved this great mystery about Object Not Found once and for all. Simple thing - you cannot delete oprhan object link with deleteVehicle if the vehicle is not owned by you.
Why "several"?
So if object is created with server (OWNER: 2) and you deleteVehicle it, the link still exist for owner, while vehicle is null already.
So it's always left over somewhere?
Shit but true
And vehicles deleted on client are left on server?
Not like somewhere, the owner still have its namespace links, but fails to find it.
Same for any owner
But if the owner deletes it then it's truely gone for him?
If owner of the vehicle is client and server deletes it - client will also spam Object not Found
yes
It's better to deleteVehicle anything with server for example, previously making setOwner 2
You'll get rid of that spam
BUT, not everything works that way fine on engine, while cleaning garbage like bullet projectiles
Thats why you get something like Object Not Found (16: 423)
Where 16 is your clientOwner
I never heard about anyone having a reason for that spam
I've been struggling with this since Arma 2
Maybe that helps BI to fix it now?
Just found out it a year ago
private _box = "IG_supplyCrate_F" createVehicle getPos player;
diag_log text "====================";
logEntities;
deleteVehicle _box;
diag_log text "====================";
logEntities;
diag_log text "====================";
So, would this work executed as local host?
yep, SupplyXX leak will be there
I don't know, since i don't see the creator and the insigator of that deleteVehicle
There's only the local host.
I'd say you need atleast 2 machines
Local Host, mean client-server?
And SupplyXX are the container dummies of uniforms/vests/baclpacks, right?
Local Host means local host. No idea what a client-server is. That's an oxymoron.
yes, they pile up in entities, jip queue, parasite network
can u delete those entities? or iddentiyfy them?
you can list them with logEntities
I'm sure I could delete them too. But SQF probably can't
Dedmen can delete them lol.
if (local _object) then {
deleteVehicle _object;
} else {
if (isServer) then {
_object setOwner 2;
deleteVehicle _object;
} else {
// RE it to server to make it go away
};
};
I can delete everything :U
you can if you know netId, but there is no way to find them by entites, nearobject etc
Sorry no markup
You can edit messages ๐ and add markup
```sqf
```
for syntax highlighting.
Did anyone check what the roque object's position is after it "disappears" ?
So no? Damn that would be a fun project to investigate now
Still 5 hours at work. And then 5-6 days waiting till my HDD is undeaded
Well, whoever said this works, it doesn't, because I overwrite the previous log file with the new one - same frame.
I also see no Object Not Found (16: 423) in the RPT.
@commy2 As been told to get rid of it, deleteVehicle should be performed at the point where vehicle is local to command instgator
A bit of notice, any driver unit (MP) takes owner to himself once he enters the seat
I don't want to get rid of it my friend, I want to reproduce it. Provoke it.
Then createVehicle it on client and deleteVehicle it on server or vise versa. Repeatedly. Once you'll get it
"Repeatedly" - oh boy.
Well that doesn't happen all the time for some reason.
@little eagle , you want to reproduce supplyXX leak or obj not found?
Yes.
Spawned: Pos: [852.500000][5.892423][4234.500000], N:IG_supplyCrate_F | Destroyed: Pos: [852.500000][-88.984962][4234.500000], N:IG_supplyCrate_F
Preferably all by one script, so I have a unit test.
Sec
> Loc:1, ForDel:0, Dstr:0, DmgDstr:0, DmgDead:0, Sim:1, Inv: 0, AnyPl:0, Out: 0, NetID:2:193, Pos: [0.000000][0.000000][0.000000], N:Supply140
> Loc:1, ForDel:0, Dstr:0, DmgDstr:0, DmgDead:0, Sim:1, Inv: 0, AnyPl:0, Out: 0, NetID:2:198, Pos: [0.000000][0.000000][0.000000], N:Supply100
I got these two left after deleting the box. Is that what you mean?
Looks like it yeah
isn't that because of their destruction type? (aka ground sinking)
private _vehicles = [];
for '_x' from 0 to 25 do {
private _vehicle = "IG_supplyCrate_F" createVehicle [0,0,random 1000];
_vehicles pushBack _vehicle;
};
[[_vehicles],{
params ["_vehicles"];
{deleteVehicle _x} forEach _vehicles;
}] remoteExecCall ["call", -2];
run on server with client connected
deleteVehicle'd things don't sink into ground
huh ๐ฎ
I guess I never deleteVehicled a ammo box
Maybe same as destroyed buildings then? kinda
but yes, deleteVehicle does remove it, not sink it
stap confusing me :u
it could be a bug with that destruction type tho, houses have a different destruction type from boxes ^
What do you mean about "sinking" i dont get then?
they had the same in 2013, but since sinking houses didn't look good they changed that
Default destroyed animation?
0 spawn {
systemChat "begin";
logEntities;
sleep 1;
private _box = "IG_supplyCrate_F" createVehicle getPos player;
sleep 1;
logEntities;
sleep 1;
deleteVehicle _box;
sleep 1; // deleteVehicle applied next frame
logEntities;
systemChat "done";
};
^ this is the repro for the log file filling up, though I don't know if this means that these objects are still accessible in the game.
nope, destruction type
I mean destroyed houses sit under the ground and never get deleted
yes
I remember that from less than a year ago
house sinking was removed a few months after launch, at least on vanilla buildings
less then a year ago so less than 8 days ago?
NOTICE: deleteVehicle destroys any object created via createVehicle. If it is a map object (not mission.sqm) it will have NO effect. Any map building is "sinking" to the ground to -100 Z-Vector and will be present until end of times. Truth
than* , nigel
@little eagle , those orphaned supplyXX objects only accessible if you know their netId, afaik you can get those from logEntries, no other way from inside the game
And I think there was a bug report on feedback tracker about it last year @lone glade so you really really sure?
Can you get them via their netID and then delete/setPos them?
Well, now let me be a skeptic for a moment. If you can't access them ingame, what harm do they do appearing in a log file?
They are in JIP queue and they are apparently simulated
they're still in the scene or not?
Yes they are
yeah, then it's an issue
And they spam errors to RPT
Can't reproduce the errors in RPT.
But one question. How do you manage to not delete a "sinked" object created with createVehicle or mission? Thats strange
Thats a general object behaviour only applied to an objects of a map (where you cant delete or neither attach them).
Another question. Why N:Supply140 and N:Supply100? The box had like 10 vests and two backpacks. Why one of each?
@still forum , delete - yes. On DS i had issue with spamming object not found. Server (2) didn't know about the object but owner (HC) had it in entities (tried to do some sync work, messages Type_93, Type_121. I checked the object on HC (it was there and it was orphaned SupplyXX), destroyed that instance on HC by netId, it was gone
So destroying by netID works.. That's good.
Well thats destroying a link straight. Anyways thats kinda messy.
But no way to get netId of orphaned obj, it's not searchable
I could get all these entities via Intercept but maybe there is a better way
didn't someone here say destroying it where it's local works?
Yes i did.
Can't you just live scan the RPT on the server. Harvest the ID's and delete
Or run logEntities on the server. and use a extension to analyze the logfile
Replace all:
deleteVehicle _object;
with:
_object remoteExec ["deleteVehicle"];
ยฏ_(ใ)_/ยฏ
missing target
No, everywhere.
Kinda spams a packet to everyone but well..
You should just remoteExec it to server with setOwner
Why?
One packet, 100% guaranteed
remoteExec goes through the server to find the owner if you pass the object
this remoteExec will send a packet to 0 - EVERYONE
so every PC including server DS will do deleteVehicle
thing is, that those orphaned objects are still the subject to change ownership , even if it has netId like 45:3456, if client 45 disconnects, that shit changes ownership to 2 but netId is still 45:xxx
... yes, and as I said, just pass the object as target
@south pasture Well thats sad,
I still can't reproduce it.
@lone glade Vehicle will be deleted on the first cycle when packet sent, so you don't know who will delete it first and if he is an owner of it.
jesus
^ this will execute it on the owner's machine only
^ this one proper.
and is what I meant
Then its ok
But this still sends a bit more packets than usual, as I assume it will scan owner among all PC's.
Not sure tho
set the remoteExec mode to 1 in description.ext, now watch as your network melts
Fun fact.
"Supply20"
"Supply40"
"Supply100"
"Supply120"
"Supply180"
"Supply200"
These are very efficiently compressed b the netcode. As you can see there are some missing ๐
or infinite dogtags
wait, they are mass 0?
they were
I managed to get 10 000 car keys
Didn't you want to get that changed
yes, but meh
I think dogtags were too. So you couldn't accidentally loose it
imho all objects should have mass, but hey
can you deleteVehicle buildings?
@still forum only generated from mission or createVehicle
if you wanna troll the server owner by getting tens of thousands of car keys and crash the server / destroy framerates :/
lul
Just fill your backpack with as many till you crash
and then everyone who opens it will crash
select the thing, hold shift, hold right arrow, watch as your framerate drops
Well, I got this message:
12:29:21 String STR_cba_xeh_all_component not found
on the server.
YE BROKE IT
stringtable key missing.
And on the client 318 times:
12:30:12 Server: Object 3:341 not found (message Type_121)
Oh man.. delving into netcode. How fun
What a blast
So essentially, deleteVehicle will trigger this error message when used on a remote object.
๐
If a non owner calls deleteVehicle. Does it keep existing for him?
That's what commy tested isn't it?
it still exist in the scene apparently
So I should look into what locally happens when it's deleted and not into the network message that's sent out?
You should scan your code for any deleteVehicle and build a logics for yourself about how the locality is passed
OR
Just send it to server via remoteExec with setOwner 2; ๐
No no. I'm checking what the engine does
If deleteVehicle locally doesn't work then I don't need to dive through the netcode
Well, something is wrong here still. If I execute:
if (isServer) exitWith {};
private _vehicles = [];
for "_x" from 0 to 25 do {
private _vehicle = "IG_supplyCrate_F" createVehicle [0,0,0];
_vehicles pushBack _vehicle;
};
[_vehicles, {}] remoteExec ["call", 2];
I still get ~300 of these on the clients RPT. Without ever deleting anything.
Maybe they get..........
Maybe the object is just fake
and when you open it it opens the inventory of the invisible magic inventory object at [0,0,0]
if you spawn all of them at 0,0,0 they maybe end up exploding
And?
But exploding doesn't mean they are NULL
And when you delete it the fake object is deleted but not the actual inventory
wait a second
So, since I can reproduce this without deleteVehicle, you all need to rethink this.
maybe what's left is the ground holder attached to it?
so you're deleting the object but not the holder for some reasons?
Not deleting anything, alganthe.
Can someone find out what the type in the config is for supply boxes? The thing in config that says that objects are boxes. I guess simulation and type
@commy2 Thats a new mystery to me about why the remote objects are not found just by sending them. jeez
If I have the netId I could just check what kind of object is behind that netID
I will make the repro as simple as possible. Sec.
but for that I need my devenv at home :/
I also get a lot of these:
12:35:36 Matrix is not valid as physx transform! Object: 60b46b00# 498: supplydrop.p3d REMOTE, IG_supplyCrate_F, Remote
Oh jezus, never send it via remoteExec again ๐
I think i just made a new blackhole about deleteVehicle
@still forum , my objects, which contributed to Object not found were SupplyXX (orphaned, without parent), message types 93, 121
I don't really want to look up the message types.. Should I? It's always such a chore
I can reproduce without remoteExec.
those objects are out of sync between master copy of the world (server) and other client copies
GLOBAL EXEC:
if (isServer) exitWith {};
private _vehicles = [];
for "_x" from 1 to 2 do {
private _vehicle = "IG_supplyCrate_F" createVehicle [0,0,0];
_vehicles pushBack _vehicle;
};
Server RPT:
12:44:13 Server: Object 3:1310 not found (message Type_121)
12:44:13 Server: Object 3:1309 not found (message Type_455)
12:44:13 Server: Object 3:1308 not found (message Type_455)
12:44:13 Error: Object(3 : 1309) not found
The thing in config that says that objects are boxes
vehicleClass = "Ammo";?
@commy2 So it comes out when you remoteExec a command to create vehicle to a client - server fails to find it. Nice.
@little eagle , and now check what object and what type, parent for 3:1310
Global Exec is a remoteExec (if you mean about Debug Panel)
Well seems like engine cares who sent it to you, some stuff around the instigator?
If I execute blank code, no error happens.
So it is createVehicle or pushBack.
Definitely not remoteExec.
Or deleteVehicle.
Diag binary has diag mode BodyRemove. That coouuuld do stuff here
using random words won't make us magically help you
@commy2 When you press a GLOBAL button in Debug Console it sends this code (code block yes) as remoteExec to 0. The thing is that vehicle created via remoteExecuted instigation results in some harsh when creating a vehicle.
I think in engine objects are only deleted when no one references them anymore... So someone probably keeps a ref.
I can find out who.. With my frickin dev env GRRR
@commy2 I never tried what you did now before actually. So this is another mystery yet to solve.
@still forum , maybe that ONE is jipQueue?
But clients don't have a jipQueue so it should only exist on the server
they should atleast disappear on the client
Anyways its still better to create and delete vehicle only on a server machine (whatever method you use)
Lessens the problem i think much.
@unborn ether , with world copy syncing - yes. But still those BIS vanilla crates leak supplyX - degrade network, performance, you name it
LOCAL EXEC on client:
private _vehicles = [];
_vehicles pushBack ("IG_supplyCrate_F" createVehicle [0,0,0]);
_vehicles pushBack ("IG_supplyCrate_F" createVehicle [0,0,0]);
Server RPT:
12:54:12 Server: Object 3:1565 not found (message Type_121)
12:54:12 Server: Object 3:1560 not found (message Type_121)
12:54:12 Server: Object 3:1561 not found (message Type_121)
12:54:12 Server: Object 3:1562 not found (message Type_121)
12:54:12 Server: Object 3:1563 not found (message Type_121)
12:54:12 Server: Object 3:1564 not found (message Type_121)
12:54:12 Server: Object 3:1566 not found (message Type_121)
12:54:12 Server: Object 3:1567 not found (message Type_121)
12:54:12 Server: Object 3:1568 not found (message Type_121)
12:54:12 Server: Object 3:1569 not found (message Type_121)
12:54:12 Server: Object 3:1570 not found (message Type_121)
12:54:12 Server: Object 3:1571 not found (message Type_121)
12:54:12 Server: Object 3:1572 not found (message Type_121)
12:54:12 Server: Object 3:1573 not found (message Type_121)
12:54:12 Server: Object 3:1574 not found (message Type_121)
12:54:12 Server: Object 3:1575 not found (message Type_121)
12:54:12 Server: Object 3:1576 not found (message Type_121)
12:54:12 Server: Object 3:1577 not found (message Type_121)
No remote exec, no GLOBAL EXEC.
Jesus
when after 10+ hrs session you have 5k+ orphaned objects - no joy
Message 121 could be UpdateCar or UpdatePositionCar
Just never create any vehicle on client machine if its not createVehicleLocal
profit
Which would make sense
Try this on the server and see if client get this spam
Client: Object %d:%d (type %s) not found. That's the clientside message right?
yep
Yeah. Then that's a "Car" update message. Probably telling people it moved or was created
without telling them that it even exists beforehand
Ah, nvm:
LOCAL EXEC on client:
"IG_supplyCrate_F" createVehicle [0,0,0];
Server RPT:
12:57:32 Server: Object 3:1617 not found (message Type_121)
12:57:32 Server: Object 3:1618 not found (message Type_121)
12:57:32 Server: Object 3:1619 not found (message Type_121)
12:57:32 Server: Object 3:1620 not found (message Type_121)
12:57:32 Server: Object 3:1621 not found (message Type_121)
12:57:32 Error: Object(3 : 1610) not found
12:57:32 Error: Object(3 : 1611) not found
12:57:32 Error: Object(3 : 1612) not found
12:57:32 Error: Object(3 : 1613) not found
Let's try the other way around...
Are you sure this is not the same objects spam you've created before?
can you get a netID on created veh?
Oh yeah. Compare netID's
Not restart.
if it's like netID+1 then we know it's creating 2 vehicles
If I execute createVehicle on the server, no error happens.
If I execute it on the client, there appear these in the servers RPT.
It is spamming that message right? periodical updates and not jsut one message per object?
So one message per object. hmpf
So creating it on server doesn't spam anything?
Doesn't appear to be so at least with this repro.
Well anyways thats an impending doom, because projectiles are also generated from a client with createVehicle.
It coming to you can't do much about this spam.
but projectiles don't leak do they?
Atleast I don't know of a problem related to them
No actual idea for now about this exactly, still gives creeps.
@little eagle did you check the netID stuff? If you create a box and the box has netID 5 does the error message have netID 4 or 6 ?
@still forum clientID:netID it goes like this
@still forum so first INT is a clientOwner ID
and the second is net objID I know
If they increment though we know that the faulty object is indeed a seperate object and that it is spawned together with the actual box
And if I have that I can trace where that thing is spawned and see what it does when it should get deleted
I disconnected with the client to inc the client owner id and now it says 4:xyz
If that is a netID generation fault, why would vehicle be properly exisitng? I think that should have led to a exception.
I don't think it's a fault with the netID
I think it creates the box first. Tells everyone on the network that it was created and then sends a position update. All fine.
Then it creates some helper object for some reason. Doesn't tell anyone that it exists. And then sends a position update. And other are like "wut? What's that?"
So either it's a bug that it doesn't tell others that it exists. Or it's a bug that it sends position updates
Testing the first of the net ids in the RPT:
Server:
objectFromNetId "4:4" // 2c885600# 42: backpack_small.p3d REMOTE
Client:
objectFromNetId "4:4" // 47deb580# 37: backpack_small.p3d
And the ID of the object you created is?
Is the netID of the vehicle you actually created. The box you have as cursorTarget. Is that different than the error message from RPT?
I think its a fault of a backpack added to a box, since backpack is an actual standalone object instance.
No idea what else that can be
Found it, it's "4:3"
So like I guessed then
"4:3" is not logged on the server.
Actual object is 4:3 and it also creates a 4:4 that goes rogue
Bingo, for ๐ฉ sake
But the backpack works just fine, even on the server.
Try creating a box with a backpack from your server now.
See if it results the same way
I'm tacking some stuff in https://github.com/dedmen/TodoStuff/issues/1 btw. I can't check all the engine side stuff without my dev-env. Maybe next week
If I create the box on the server, no error is logged.
@commy2 btw, did you use addBackpackCargoGlobal on client?:
@commy2 or just addBackpackCargo?
Oh cmon BI.. please... Boxes have AI? You can't be serious
"IG_supplyCrate_F" createVehicle position player;
Is all I did.
boxes are onto us
Btw, I can wear the logged ids as vests or backpacks just fine.
That means that backpack is coming from config entry.
Yee.
This is probably just a position update sent to the server for an object that it not yet received or something simple as that.
Now try to pickup that backpack from a box
You've created
on server
And see client RPT
Im pretty sure it will start spamming
So the server is the true daddy here. Ok. Anyways i never createVehicle from client.
Thank god
Tip of the day: createVehicle and deleteVehicle from server only (if not a createVehicleLocal)
and now someone please create an issue on the tracker so it can be ignored for an indefinite amount of time
I'm quite sure it already exists
are boxes physx?
Offtopic: Just fapped to https://community.bistudio.com/wiki/CfgDisabledCommands
Yes.
I need something to punch
your groin ๐
what is simulationType of a ammobox?
thingX afaik, goig to check
@still forum simulationType is an engine tied entry which specify how this object behaves, for example if its a car which just explode on death, or a building which "sinks" down.
Pretty sure what you described is destructType.
^ yes it is
Sorry then
so
destrType*
I found something I need to try asap, we may be able to make illumation only grenades
destrType = "DestructBuilding";
from ReammoBox_F
simulation = "thingX";
from ThingX
Ugh Fun then
Just looking through the sim types.. strategicGame sounds interesting
hovercraftX submarineX paraglide temp slop
What do you mean "looking through them". I'm pretty sure they appear all over the place like a single spaghetti in noodle soup.
submarineX is used by SDV_01_base_F
rip sdv, you poor vehicle that will never be used properly
hovercraftX is unused
What happens if we make a box with thing instead of thingx
Could that have an impact on the errors?
Doubt it.
It's not really about the box I suspect. The same would happen with a tank with the same cargo config.
would or does?
Would.
If it happens with all inventory vehicles I need to look elsewhere
but so far it sounded like it only happens with boxes and backpacks (which are boxes)
Whats wrong with creating a vehicle on client? Creating it on server means that the server gets even more things to do. @unborn ether
@rotund cypress rogue existend non existend items and RPT spam
Well only boxes have backpacks etc in their cargo in vanilla.
the stuff we are talking about for over an hour
Sorry cba to scroll up
Whats wrong with creating a vehicle on client?
Nothing, just some RPT spam that means squat.
Rogue existend?
after you delete it a part of it is still there
And what is causing the RPT spam?
The bogus object that doesn't really exist but still sends position updates
Probably position updates sent to the server of objects not existing on the server (yet).
@rotund cypress Causing tons of leaks when created on client.
Ah I see. Leaks?
these objects
That are there but cannot be deleted really
You can only delete them by getting their netID from a error message or logEntities manually and then deleting them by getting the object from it's netid
I mean creating vehicles on client regardless of RPT spam or not, is what I would do since it is probably in most cases > beneficial than having RPT spam
If boxes are thingX and backpacks inherit from them. Backpacks are also thingX
And so far we know backpacks and boxes are the problem. So it might aswell be thingX that's the problem
But if you have a lot of vehicles that you cannot delete even if you want?
I mean honestly, every damn update RPT just starts being spammed more and more
Small missions probably doesn't matter.
Wait it results in you not being able to delete them?
Most of the RPT spam is these objects though. Atleast that's what it currently looks like
Do you read what I write?
You can only delete them by getting their netID from a error message or logEntities manually and then deleting them by getting the object from it's netid
Ah sorry
I'd really like to know if it also happens with thing boxes instead of thingX
Pretty sure there is old sqf code run unscheduled to brute force remove them, from last time issue with supplyX getting left behind
Sorry if you already wrote this, but what is actually causing this?
a bug / bad design
Kinda weird seeing people trying to rework similiar bug/issue a year or 2 later
This is a Neverending Story itself ๐
But the magic is really black here
I even found a better example
I didn't look into it yet. Maybe there is a chance to fix it
I think Getting Over It is an exact explanation of that experience ๐
And hand BI the fix just to have them put it onto their todo stack
Sometimes i think that a problem of the engine at its core, i'll never believe they've never investigated that
Well ofcause it's a problem in the engine
I think in the part where you cant really do much about it anymore.
And what is the actual problem? RPT getting too big after long missions?
Mainly its not just simulation case
@unborn ether Everything can be fixed
The thing is that really cause CPU utilization
Well, the repro is creating and deleting cargo boxes. Which mission does that?
@little eagle Ever dropped a backpack on the ground?
Like twice in an actual mission.
Add's up
some public "dynamic" missions do it a lot more often
So, I heard deleting the cargo didn't help either?
Like.. Take a 60 player public server that's online for 3 days. Players swap like 3 times a day. So 180 players per day. 3 days that's 540. Everyone dropping backpack twice.
1080 rogue simulated possibly even physx vehicles sucking all the CPU time
at that point i'd be more scared of scheduled scripts breaking
All of them also spamming network messages about their position updates
causing crapton of RPT errors on all clients. Spamming their RPT and dropping their FPS
So the issue isn't that that's not a real problem.
I think I even had 200GB once
or 178. Something close. I have screenshot somewhere
That can't happen to me luckily. I only have 119 GB space left.
If you want to continue remind me about https://github.com/dedmen/TodoStuff/issues/1 in a week. If I have time I'll look into the engine side of things
you dev on prod, all your commits are releases
^ that will at least force you to write your code carefully.
Ammo boxes can also have fuel and fill up vehicles?
fuel, no idea, ammo yes
considering both are usable on the same objects then i'd say it's also possible
Atm:
"Does this commit break anything? Nah, some other dev will complain if it does before release".
no one tests it
release, "Why is this broken?"
"Huh, that issue wasn't raised in testing"
"How the fuck did nobody notice this?"
Does the bug also happen when putting a backpack into a box? Where the backpack entity should realistically get deleted and removed from logEntities
isn't there an issue with backpack entities not being deleted properly too?
Yes
Where the backpack entity should realistically get deleted and removed from logEntities
What? Why?
If you put a backpack in a box. The model disappears
it shouldn't, the ground holder still exist somewhere
It just just an entry in a list of items
But yeah. The ground holder appears to continue existing. Which is probably the problem
init EH is called on the backpack when you take it out of a box?
@still forum https://community.bistudio.com/wiki/firstBackpack
Yeah. Understood
But if you remove the backpack from the box via script. Then the rogue entity is leftover?
Oh wauw.. If you call removeBackpack on a unit. He drops his backpack on the ground. Creating a new weapon holder and broadcasting it to all clients. Then calls init EH on the holder. Adds the backpack into the holder which it again broadcasts to everyone over the network. Then removes the backpack from the unit's inventory, again broadcasting the changed inventory over the network. Then again sends a position update over the network.. Then calls deleteVehicle on it.
๐ ๐ ๐
They could also just remove the backpack from the unit. And delete it.
But... BI and over 10 year old code that was written in a rush and never looked at again
Some of that might be to fix the duplication which was very present in alpha
You could just drag the same item very fast and create 2 or grab the same item very quickly with another player from a container
bag or such
@still forum Are you sure about it? WeaponHolder is created each time you open inventory without cargo container
Yes
You don't open inventory
As I said when you remove the backpack via script from a unit
Didn't say anything about opening inventory
๐ Nothing of optimization value was lost
I'll better stay with optimizing and fixing scripting stuff.
That other stuff is too much hassle
do I have to make any changes to any scripts ive made for zeus if I wana put em in eden
example?
Probably.
oh commy tags?
also question
now im lazy,and I have a vr block with 2 addAction,one makes the block red the other blu
now as I am lazy I dont reallly want to walk up to the vr block and I want to have another vr block thats next to me,allow me to activate an addAction of another block
how do u do that?
Give the one you want to change the color of a variable name and use setObjectTexture with that name instead of _target
well about that
heres the full story
so idk if u saw but me and demen had a swell time tryna find a way to have infantry and vic be able to go through a object
the reason was that my unit is a star wars unit and we would impliment such ermm "feature" as a shield, like the ones in front of hangers
"demen" triggered
sowwie
now the hangars have hangar doors, and well if u watch star wars the venator has like 6 of em far awayt from each other
theres a object that we have where there is this small little box u walk up to to open the hagnar door
hangar*
Wat I wana do is have it so that I could open any of them from say the "air traffic control center"
๐ค
thats the full story
any ideas how such can be done
I would try the who varialbe naming thing tho
if the opening boxes just have addAction scripts
just add these actions to yourself
then everyone can come up and press your buttons to open doors
-.-
ur having fun arnt u,but yea ill try that
i should first find out wat object it actually is XD
Exactly like I described:
Give the one you want to change the color of a variable name and use [x] with that name instead of _target
Okaie dokie i try when I get home ripppp
May the force be with you
hi, is there some way to disable Ai go prone? know about setunitpos "UP". but i need them to be crouched or UP but never layed down.
@lucid junco AI will resume his current behaviour even if you force command. The behaviour of AI proning is possibly coming from a suppression module. This one can be disabled with:
_unit disableAI "SUPPRESSION";
Should help
@lucid junco Visit https://community.bistudio.com/wiki/disableAI, try disabling some behaviour step by step until ALL and watch if prone commands are no more
@lucid junco ```sqf
_unit disableAI "AUTOCOMBAT";
_unit setBehaviour "AWARE";
I think you can also make a config edit for terrain config. They should have a value that's the chance of going prone in that ground type
The floor is lava! You can't go prone on that
Haha, exactly
"the floor is lava" - physX
i'm trying to create an array of units whose name contains a couple characters of a string. I was hoping to do something with find or in with allUnits but can't get it to work.
You want what?
use select?
if i have units named "a_unit1", "unit2", "unit3", "a_unit4" then how do i quickly return "a_unit1" and "a_unit4"
allUnits select {"myChars" in _x}
use tolower if you don't want case sensitivity
yea, i'm not explaining well, sorry, i need foods, hold on, i'l clarify
use str then
(toLower name player) find 'n' > -1
checks if n is in player name
returns true if n in name
in isn't working right or i'm not doing it right
Are you all drunk? None of what you all write makes any sense.
@sand pivot are u spawning units with the editor?
yeah, I might be
editor, not curator, so yes, prenamed, really there are only a few units that i want to earmark as curator objects
Lol commy are u drunk, because you can't make sense ? ๐
Are the units of a cerrtain side or ethnecity or in a certain area?
Don't name them all
Just grab them from allUnits from inArea or sth
I can't imagine naming 100 units
I think you need to toArray and then nearstObjects
there are only like 8 of the 100 civilians that i want to grab
@little eagle I don't understand what you mean
Names are not reliable, use vehicleVariableName instead
Then give them names, remember the names, and write the names down as array.
If you set their names anyway. Use that as variable name and use use the variables
i think find will work as @peak plover suggested, i'll test and report back
i don't mean names names, i mean variable names
Aah
Yeah then.. Just use them if you already know what names you have
_myUnits = [my_dude_1,my_dude_2];
i would be explicit but trying to make this work across a variety of missions so just using an index like "x_unit_blah" allows me to just find the "x" units
i think i'm sorted now
Coding that behavior into the varnames of the units is a bad idea.
i'm listening
Listening what? That's all. It's ugly.
private _dudes = [];
for '_i' from 0 to 100 do {
private _dude = missionNamespace getVariable [format['my_dude_%1',_i],nil];
if (!isNil "_dude") then {
_dudes pushback _dude;
};
};
// _dudes now contains all of my_dude_<0 - 100>
ha, ok
would you suggest an alternate method for adding objects/units to the curator? @little eagle
perhaps just in their init?
Yea.
i guess the other issue i didn't account where scripting helps is if i have multiple curators
though that can be done in the init as well
forEach allCurators
that won't work on a server
blast
throwing it in the init of the object worked on the DS. thanks for being a sounding board for bad ideas y'all
params [
"",
"",
["_value",false,[true]],
["_value2",[],[[]]]
];
Should I be doing this or not?
or just use param for each parameter
Params = multiple
Param = single
Also, that's a lot of whitespace wasted. Slap it on one line
hmm ok
so even if I need to select for example, param 2 and 3
should use params and then type "" where I don't need that param
Yep
//passed [this,2]
//fnc_yourFnc
params[["_unit",objNull,[objNull],1],["_int",0,[0],1]];
params with 2 or more variables. param with just one
but for consistency I'd say always params
Keep it like that?
jup
...
Well... Different people like different things
param works completely differently than params. They're vaguely related at best. param is a better version of select, and params is like private + a bunch of select/param all at once.
So... They are completely different.. In that param does the same exact thing as params besides actually assigning the variable
Yes, they are completely different.
Wasn't params just the "Mutli Array" Version of Param?!
does param still call the default return even when a suitable value is given?
_value = param [0, call slow_ass_function];
No. param is a better version of select. You can say param and select are similar, but not param and params.
@Adanteh#0761 you apparently didn't understand how SQF works ^^
just saying it would be nice that it was somehow magical and wouldn't do that
You can only pass values
a potential function call that might return whatever or nothing or might error or crash the game is not a value
Ah, param had Index Selection, params defines the _var directly instead of IndexSelection
Dedmen, by your logic, private and params do "the exact same thing" plus params doing a bit more.
param[0,ObjNull,[ObjNull]];
params
[
["_Obj1",ObjNull,[ObjNull]],
["_Obj2",ObjNull,[ObjNull]]
];``` *
underscore
Semi colon.
fork off
spaces between commas..... ? :3
My Keyboard sucks
Now put the [ in the same line.
no space after comma is broken code
@austere granite ๐ ๐ ๐ ๐ ๐ ๐
it won't work
@little eagle NEVER! ๐ ๐ ๐ ๐
Capitalizing commands like objNull is broken code.
yo mom issa brokin code!1oneeleven
That's pretty mean dude
It's just commy ยฏ_(ใ)_/ยฏ
In 2017, German shitposter Dscha was asked what it felt like to insult a human, "I wouldn't know, i've only ever insulted commies"
*2018
private _obj1 = param [0, objNull, [objNull]];
private _obj2 = param [1, objNull, [objNull]];
params [
["_obj1", objNull, [objNull]],
["_obj2", objNull, [objNull]]
];
why private the param?
:U
else it doedsnt private....
private _obj1 = param [0, objNull, [objNull]];
private _obj2 = param [1, objNull, [objNull]];
params
[
["_obj1", objNull, [objNull]],
["_obj2", objNull, [objNull]]
];```
*fixed
@jade abyss Dschakyll and Hyde
Already on my list ๐
delete that @jade abyss
Force me
Wasted lines, wasted energy, wasted trees, Save The Trees!
What's the cheapest way of doing a local object or marker or location?
Screw the trees, blow up the earth!
There's a possbility there would be 1000 of these
Hmm
The cheapest way is to turn off the electrical j...
There is 1 way to create a local object. And rest dunno
Is it expensive to do a local object or marker or location for 1000 times? What's cheapest way of saving position like that? Array?
The cheapest way is to turn off the electrical j...```
j.... ?
Was that a ref. to that famous Doc?
Axel Stoll was very famous.
Dr. Axel Stoll
Hmm
I could save the location and I'm wondering what if I have 1000s of them.
I want zeus to be able to "wake" or edit cached units which will be deletevehicle'd
Well, "Physicians" want to tell you that the sun is a black body when it's clearly white/yellow.
okay so ik i asked this earlier but I think I explained it wrong
its the hangar door thing
so in the optre mod there is this thing called
hangar door[frigate]
and it has a little box next to it that allows u to open and close the door
now say i have a vr block thats say at the air traffic control center, is there away to have that box open that hangars door? basicicly trigger that animation?
or actualy,how can u set the animation of something?
wouldnt that do the same thing?
well its not with ace
You could get code tips from it
it's open source
Locations is fine, but I get fps drop on map
I guess that's fine
if u see that image,that little box,all u do is walk up to it and it pops up like an addAction
ohh yea
aye will look
use https://community.bistudio.com/wiki/animate with an addAction
oh right, https://community.bistudio.com/wiki/animateSource exist now
_this animate ["door_1_rot"];
_this animate ["door_2_rot"];
``` and I used [west, "HQ"] sideChat format["%1",(animationNames _this)];
you're missing the state (0 or 1)
_this animate ["door_1_rot", 1, true];
_this animate ["door_2_rot", 1, true];
would I have to try with 0 aswell?
i got those 2 names btw
animateSource ^ and yes
and animateSource third param is the speed (and also optional)
hmm still not working
and this is wat im using
_this animateSource [((animationNames _this) select 0), 1, true];
_this animateSource [((animationNames _this) select 0), 0, true];
``` I use them 1 at a time
oh u cant?
yea i was gona say
Since Arma 3 v1.65.138459 speed of animation can be altered with coefficient.
oh, didn't see it was bool or number
๐
so ive been addding a hint to the bottom of my code,just so that ik syntax wise it worlks
_this animateSource ["door_1_rot",0];
_this animateSource ["door_2_rot",0];
hint format["time %1",time];
it hints the time,but still doesnt animatie the hangar, any ideas why?
tried different number for the phase?
look at the configs for the hanger you are tring to open
I could do that
+I guess the name is door_1_sound_source or something similar
and yea I did try diff phase 1
numebrs*
I found something that gives a list of all the animations
animationNames
and just used those strings
which should theoretically be available for use with animate command
animateSource != animate
oh shit i need to go to class
Does setVelocityModelSpace change the speed smoothly or is it set to that speed at once?
at once
I remember there was some script command that smoothly changed the vehicle speed, can't quite remember what it was called
private _veh = vehicle player;
_targetSpeed = 200;
_vel = velocityModelSpace _veh ;
_speed = 1;
waitUntil {
if ((_vel select 1)> _targetSpeed) then {
_speed = _speed * -1;
};
_veh setVelocityModelSpace [
(_vel select 0),
(_vel select 1) + ( _speed),
(_vel select 2)
];
(_vel select 1) == _targetSpeed;
};```
I get generic expression error in the if statment and the final check in the waitUntil
the part that adds the speed works fine