#arma3_scripting

1 messages ยท Page 264 of 1

jade abyss
#

My guess: Something wrong in the UI, i had that also a long time ago.

tough abyss
#

Can also happen if you manage to trigger something recursively in the UI ie on listbox changed etc

vague hull
#

nope

#

its just placed in the inventory to delete and item I clicked on and do some stuff with the classname

meager granite
#

Try removing stuff from your function until crash stops

#

Or add until it happens

#

@tough abyss Yes, your best bet would be to trigger message on client, then send signal to server that message is shown and then do the kick

dusk sage
#

You could just make a box pop up with an OK button

#

No need to use GUI message

#

If you are only using it to tell them about the kick, though

vague hull
#

@meager granite thats the joke, it happens even if the function is empty

jade abyss
#

Then your UI-Code must be broken somewhere.

vague hull
#

shouldnt the game tell me then?

jade abyss
#

Check your .rpts again, from the beginnin

#

Its Arma.

#

Don't expect anything directly infront of your screen. .rpt -> First thing to watch.

#

Maybe its an missguided Class or whatever.

#

Wich doesn't cause a PopUpMsg ingame, but in the .rpt

vague hull
#

would you mind having a look?

#

I looked over it for the 1000th time now

little eagle
#

make a simple repro

#

post it here

jade abyss
#

Restart the game, go directly to that Sequence. Do nothing else.

vague hull
#

thats what I do

royal abyss
#

Hey guys anyone got a idea on how to make a sandstorm only apear in a area?

little eagle
#

execute the function only one the machines where the player is near the center of the sandstorm

#

and somehow abort it when they move away

#

trigger?

royal abyss
#

but it should work on multiplayer so if someone is outside the desert he has clear view wich is a high advantage or not ?

little eagle
#

that's what I said

#

pretty sure the sandstorm function only has effects on the machne where it was executed

royal abyss
little eagle
#

pretty sure the sandstorm function only has effects on the machne where it was executed

royal abyss
#

yeah thats what my problem is ๐Ÿ˜„

little eagle
#

I don't see a way to stop this particular sandstorm script

#

at least from looking at the mods description

#

you'll have to edit that most likely

#

because you'll have to be able to stop the effect at any point

#

e.g. when a player moves away from the sandstorm area

royal abyss
#

yeah... maybe a counter script?

#

that sets the settings to 0

#

arount the area with a trigger

little eagle
#

turn it off when the player leaves the area

#

turn it on when the player enters the area

#

you probably want a polling loop that checks the players position and then turns the state on or off

royal abyss
little eagle
#

you probably want a polling loop that checks the players position and then turns the state on or off

#

this is all you need

#

dunno if that partical script looks anything like the video does

#

I don't trust videos

#

you can put really cool shit in videos

royal abyss
#

nah its from a diffrent game ๐Ÿ˜„

little eagle
#

but if it works in an actual playing environment... that is a different question

#

I didn't even look at this tbh. It's not important

royal abyss
#

yeah ๐Ÿ˜„

#

thanks anyway i think the loop is a good idea

little eagle
#

I dl'd the script, but see no way to turn the effect off

#

oh

#

I think it's simple

#

AUSMD_sandstormenable is boolean. If it does what it says it does then you could use that

#
0 spawn {
    for "" from 0 to 1 step 0 do { // fast while {true} alternative
        sleep 5;
        AUSMD_sandstormenable = player inArea "mission_sandstorm";
    };
};
#

and then create a marker named "mission_sandstorm"

#

can be made invisible in the final mission

#

@royal abyss wake up

royal abyss
#

hmmmh

vague hull
#

Ok so I guess I just needed to move some classes to the ControlsBackground

#

how ever, there is still one thing I need to figure out

#

the game crashes when you put something into an inventory of an object that is not globally simulated but locally

little eagle
#

duh

jade abyss
#

Senfo - Today at 6:27 PM
well at least they are known... my game keeps crashing when I spawn a function via onLBDblClick ...
And it drives me crazy
Dscha - Today at 6:29 PM
My guess: Something wrong in the UI, i had that also a long time ago.```
๐Ÿ˜„
little eagle
#

it's annoying that the game gives so little information when something is erroring

rotund cypress
#

Hi guys,

#

Is there a reason

#

if ((!_target getVariable ["playerSurrender",false]) && (animationState _target != "Incapacitated")) exitWith {[format["The target have to surrender or be knocked out."]] spawn FLF_fnc_smallHint;};

#

why that wouldnt work?

#

I get an missing semicolon error

#

I know

#

but

#

not breaking it

jade abyss
#

Yep

#

!_Target = won't work

tough abyss
#

Particles are expensive..

#

Computationally.

rotund cypress
#

Thanks guys

tough abyss
#

@rotund cypress It really is, if you add about 2000 particles

#

Your FPS will suffer a lot.

#

And the drop-interval also effects this.

#

A drop interval of 0.0001

#

is more costly than 0.1

#

etc.

noble juniper
#

drop interval = how often per second all those particles get spawned ?

rotund cypress
#

Wait what? @tough abyss

noble juniper
#

@tough abyss thx fo that

tough abyss
#

Also for your curiosity

noble juniper
#

that sounds super interesting

tough abyss
#

18,000 Particles is the engines hard limit

#

If you look in A3's config-viewer in game.

#

You'll find definitions in the weapons classes

#

on how many particles are allowed.

noble juniper
#

how about lowering that number, for performance ?

tough abyss
#

I do know however.

#

That Particles from gun-fire if there is enough

#

probably get very close to that 18,000 limit

#

As you will see extreme FPS drops when AI opens fire.

#

Which is quite interesting really.

#

Makes me think there is room for optimisation maybe for particle effects.

#

@noble juniper They could do what SpaceEngineers did

#

and move particles to GPU calculation explicitly.

noble juniper
#

Oh yea, that be great.

tough abyss
#

@lavish ocean Is particles calculated on the GPU or CPU?

#

or is it a hybrid system of both GPU / CPU?

#

I think I found the answer.

#

@noble juniper I think not sure but pretains to PhysX

#

So it's CPU calculated.

#

ArmA 3 only has non-APEX physX

rotund cypress
#

@tough abyss if I have format in say 20 players FPS will suffer very much?

tough abyss
#

Create the particles where you'll have the mission only.

rotund cypress
#

Particles?

tough abyss
#

Your sandstorm ?

#

Create it where you'll have the actual mission.

rotund cypress
#

sandstorm?

#

I never said anything about a sandstorm

noble juniper
#

@tough abyss what do you mean with ArmA 3 only has non-APEX physX

#

i know arma got a graphics upgrade with APEX.

tough abyss
#

APEX-PhysX is also known as GPU accelerated PhysX

#

arma 3 uses exclusively non APEX-PhysX

#

which is non-GPU accelerated

#

ARMA 3 Bohemia Interactive Released [CPU Only]

#

Even if you enabled your GPU to do physX calculations ArmA 3 can't use GPU-Mode

noble juniper
#

but everyone has the basics of APEX so everyone is one the Arma 3 Apex version !" ?=

tough abyss
#

ArmA 3 APEX refers to the "Expansion"

#

Not the Physics .dlls

#

If you go into your ArmA 3 folder

#

You'll see 2 dll's related to physics

#

PhysX_x86.dll etc

noble juniper
#

probably not, cuz im linux ๐Ÿ˜„

#

im on linux *

tough abyss
#

As far as I know

#

PhysX is in Linux too

noble juniper
#

im looking for it

tough abyss
#

Just not .dll format

#

Interesting thing to note PhysX has 2 types of .dll's

#

x64 and x86 varients

#

the 64bit binaries may also improve the performance of physx

#

As BI would be able to use the x64 versions if the game became 64bit

#

There is actually when I really think about it

#

A lot of improvement potential from 64bit binaries

#

memory isn't just 1 benefit

rotund cypress
#

Hey, if I want to do my GUI script as Bohemia do their code: E.g.: having it not like a function and just a file (.sqf) and just a dialog?

noble juniper
#

@tough abyss but here is more to 64 Bit architecture then just memory addressing.

tough abyss
#

I know

#

Register size

#

Internally without worrying about the details

#

EAX instructions can be replaced with RBX etc.

little eagle
#

or

#

they could fix Tank PhysX first

tough abyss
#

Tried changing the center of mass?

#

via script?

#

Did that and got SUV's to stop flipping upsidedown

little eagle
#

doesn't help. the PhysX is broken, not the models

tough abyss
#

At high speed.

noble juniper
#

ehm, there is a DLC planed for Tanks and they probably do that for that

tough abyss
#

I am not sure why tanks flip when hitting things...

little eagle
#

they flip without hitting things

#

they just flip

tough abyss
#

MP or SP?

tough abyss
#

Hahah

little eagle
#

Since 1.42

rotund cypress
#

Do you guys know how Bohemia does their scripts in one file called like RscDisplayScript.sqf and then one file called RscDisplayScript.hpp

#

Without any config classes or anything

little eagle
#

a .hpp is a config

tough abyss
#

de-binarize the global config

little eagle
#

a .sqf is a function/script

rotund cypress
#

I know

tough abyss
#

It has everything in it

rotund cypress
#

But they dont specify the functions in a hpp or cpp or anything

tough abyss
#

inc?

little eagle
#

But they dont specify the functions in a hpp or cpp or anything

rotund cypress
#

Does that stand for include?

little eagle
#

I think I know what you mean

#

shh Geek

#

You want to know how they manage to execute a script when a dialog is created, JimZor?

rotund cypress
#

Yes

little eagle
#

onLoad event handler

tough abyss
#

^

little eagle
#

BI uses a shitty framework

noble juniper
#

@tough abyss where should the physX dlls be ? i have found BEclient.so s so they got BE on linux now ๐Ÿ˜„

little eagle
#

that cannot be used by moders

#

but you can easily use a onLoad event handler

#

just a config enty:
onLoad = "_this call whetever_fnc_blah";

#

works for displays/dialogs and all (most?) controls

rotund cypress
#

Yeah exactly

#

What I wanna do

little eagle
#

_this select 0 being the display or control

rotund cypress
#

For all GUI

#

But I dont want to call a function

tough abyss
#

@little eagle Can also use params [];

little eagle
#

yeah

#

But I dont want to call a function
what?

#

what else?

rotund cypress
#

I want to be able to call RscDisplayWhatever.sqf without having it in like a function config

#

How do I actually call that?

tough abyss
#

@noble juniper PhysX.dlls won't be called PhysX.dll's on linux

#

DLL is window specific

noble juniper
#

.so normaly

tough abyss
#

Screenshot the directory?

little eagle
#

use call compile preprocessFileLinerNumbers ""<function path>""; then

noble juniper
#

@tough abyss no just aproximation from teh root dir of arma

little eagle
#

but it severly increases the displays load time

#

because you read a script file from disk, preprocess it and compile it

rotund cypress
#

And then I just define what actions a button should have in that script for example?

little eagle
#

sure

#

do whatever you want in that script

tough abyss
#

@noble juniper So there is actually no PhysX in Linux?

#

That can't be right..

rotund cypress
#

Is it a less good way of doing it?

#

than just doing like normal?

tough abyss
#

@rotund cypress cfgFunctions.hpp

rotund cypress
#

Ofcourse

tough abyss
#

pre-compile it when the mission starts

little eagle
#

no, you should just use a function for it if you want your menu to open more than once per mission

#

or whatever ui you re doing

#

speeds up how fast it opens

#

better end user experience

rotund cypress
#

Ah ok

#

So its not that good if it would be say a player menu in a life framework?

little eagle
#

What would be not as good?

rotund cypress
#

Having it not like a function

noble juniper
#

@tough abyss tehre is, but i overlooked them, mybe they don't even get shown, had to grep for them

little eagle
#

That is true regardless of life or whatever mission you play

rotund cypress
#

I know one of the biggest ArmA servers have all their menus and UI based of off this way

little eagle
#

what way?

rotund cypress
#

They use onload eventhandler

noble juniper
#

@tough abyss libPhysX3Cooking_X##.so

little eagle
#

onLoad is the method to do it

#

no other way really

rotund cypress
#

I know

#

But you say it will slow down a lot

little eagle
#

not if you precompile your function

rotund cypress
#

So beforehand?

little eagle
#

yeah. like on mission start

noble juniper
#

@tough abyss im actually blind, 3 .so s all X86 one without any postFix, one cooking, one common

little eagle
#

then it only takes a tiny bit longer to load the mission

rotund cypress
#

And then they will always be accessible fast?

#

Ah ok I see

little eagle
#

but during mission the menu opens faster

rotund cypress
#

Ah ok

#

If you do it this way?

little eagle
#

that's what a function is for

#

repeating code -> function

rotund cypress
#

So I can preProcess one file with a bunch of .sqf scripts in it using include and that will be fine?

little eagle
#

no

#

you precompile your function on mission start

#

the function being in one file

#

and then you call that function with the onLoad thing

rotund cypress
#

call compile preprocessFileLinerNumbers "myScript.sqf";?

little eagle
#

no, not call

#

you store that function in a variable

#

and call that variable

rotund cypress
#

oh I seee

little eagle
#

idk how the life mission does it

#

usually you'd use CfgFunctions

noble juniper
#

cfg functions

little eagle
#

there you go

#

use the CfgFunctions framework

#

that gives you a function name

jade abyss
#

Okay, lets explain it this way:

little eagle
#

onLoad = "_this call function_name";

jade abyss
#

my_fnc_Name = {systemchat "hint"};
in the Config:
OnLoad = "call my_fnc_Name";
Better than
OnLoad = "systemchat 'hint'";

little eagle
#

than*

jade abyss
#

*fixed

noble juniper
#

@jade abyss even in that exact usecase ?

little eagle
#

Dscha you explained it like a cave man

jade abyss
#

Imagine writing a whole script inside the " "

noble juniper
#

@jade abyss thats what i meant

jade abyss
#

as easy as possible Commy

rotund cypress
#

yeah but how do i load the RscScriptWhatever.sqf

rotund cypress
#

ah I think i got it now

jade abyss
#

OnLoad = "WhatEverYouNameYourFunction";

little eagle
#

onLoad = "_this call tag_fnc_functionname";

#

fn_functionname.sqf

noble juniper
#

@jade abyss how about OnLoad = "my_fnc_func";
shouldn't it now get the content of that var and execute it, just like the cal ?

#

or maybe not as a string

little eagle
#

you have to put the call there

rotund cypress
#

but

noble juniper
#

OnLoad = my_fnc_func;

rotund cypress
#

I have onLoad = "myfunction";

#

in the rscscript.sqf

noble juniper
#

and that containing a string or code

little eagle
#

the onLoad goes into the config Sim

#

not the function

jade abyss
#

Example for CfgFunctions:

class CfgFunctions
{
    class MyAddonClassTag //e.g. SZ
    {
        class Core //Description, can be anything, just sorting for yourself
        {
            file = "MyAddonName\MyFolder";
            class functionname {};
        };
    };
};```
Filename:
fn_functionname.sqf in the Folder mentioned above ( "file"
little eagle
#

onLoad = "myfunction";

#

this won't work

#

you need that cal

rotund cypress
#

ofcourse

little eagle
#

onLoad = "_this call myfunction";

#

the _this is optional

#

use it anyway.

#

or don't

#

to troll the reviewers

jade abyss
#

*reworked

tough abyss
#

@little eagle onLoad = " _this execVM 'myscript.sqf'; "

#

?

jade abyss
#

also works

#

but..

little eagle
#

the point was to not precompile it every time

tough abyss
#

^

jade abyss
#

its crap to ExecVM it all the time

rotund cypress
#

But then I can just use a regular function fn_myfunction.sqf

tough abyss
#

There 2 ways to make functions as files.

rotund cypress
#

stick it in the cfgfunctions

jade abyss
#

Thats why -> Check the example i gave you above for th CfgFunctions

rotund cypress
#

then call it by mytag_fnc_myfunction

little eagle
#

you forgot the preprocessing part

tough abyss
#

derp.

little eagle
#

that will just straight error

tough abyss
#

MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript.sqf";

rotund cypress
#

thanks geekguy

jade abyss
#

In the init of the Mission/an Addon

tough abyss
#

onLoad = " _this call MyFuncGlobal"

jade abyss
#

So it definitely gets loaded

tough abyss
#

^

#

Always compileFinal

#

As it's Altis Life.

#

It prevents "hackers"

jade abyss
#

To stay away from the compile Madness -> CfgFunctions

rotund cypress
#

But then I can

1MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript1.sqf";
2MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
3MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";

#

stick that in a script

#

and call it on init?

tough abyss
#

Just put that in the init.sqf

jade abyss
#

You better stick with CfgFunctions

tough abyss
#

It will make it globally accessible.

jade abyss
#

This will get loaded from start, no matter if you call it or not. You are on the safer side.

rotund cypress
#

ok great

tough abyss
#

@rotund cypress

rotund cypress
#

mission init? not client init right

noble juniper
#

@tough abyss @jade abyss sorry for interfering in the above conversation, i was just momentarily confused with when variable content get inserted into something.

jade abyss
#

VariableContent?!

noble juniper
#

[myFunc]

little eagle
#

that's an array

noble juniper
#

content of myFunc will become teh content of the array

little eagle
#

"value"?

#

the value of a variable?

noble juniper
#

and i thought about that , and just went overboard

tough abyss
#

@little eagle Can I give the long explanation of calls?

jade abyss
#

You can define a function by a simple
abc = {systemchat "bla"};
If you "call abc" -> that systemchat part gets executed.

tough abyss
#

I feel like it's needed.

noble juniper
#

if its just for me then DONT!#

little eagle
#

Can I give the long explanation of calls?

#

whut

tough abyss
#

@rotund cypress How can I explain this. I am trying to think of an analogue

rotund cypress
#

I understand mostly

#

I just call the variable onLoad

#

1MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript1.sqf";
2MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
3MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";

little eagle
#

it's really not that complicated^^

tough abyss
#

@little eagle If he is not familiar with programming it might be.

rotund cypress
#

so onLoad = "call 1myfucnglobal";

little eagle
#

looks good to me

#

i'm not sure a variable name can start with a number though

#

that might not work in sqf

rotund cypress
#

And yes, I am familiar with quite familiar with some programming, but this just confused me a bit

tough abyss
#

First is @rotund cypress is the _this. _this simply means when the onLoad runs it passes what the onLoad returns to the function or execVM'd script you run.

#

so when you pass onLoad = _this is basically an array of

little eagle
#

Geeky, shall I give you a long explaination of why he doesn't need the _this here?^^

rotund cypress
#

so like it could pass a param or whatever?

#

through _this?

#

like getting a param from a remoteExec?

little eagle
#

in onLoad , _this stores the display/control the event handler is attached to

tough abyss
#

In an array. ^

little eagle
#

you'll need that to edit your buttions

#

[display/control]

tough abyss
#

Inside your function it may look like this

// Filename: myFunction.sqf
_display = _this select 0;
_control = _this select 1;

So when you call it in the dialog it does this

onLoad = " _this call myFunction.sqf" _this is passed inside it.
little eagle
#

well. 0 is only a control if the onLoad is attached to a control and not a display

#

there is no 1

tough abyss
#

To understand onLoad

rotund cypress
#

Already read it

#

its the same this as cursorTarget call myFunction.sqf

#

or player call myfunction.sqf

#

That all I know

little eagle
#

_this is a magic variable in most event handlers

rotund cypress
#

Its just the whole concept of doing it this way got me confused with not using cfgfunctions and how it is all loaded

tough abyss
#

To go even more simple Input -> (Process input) Function -> Output

rotund cypress
#

This cleared it up for me

1MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript1.sqf";
2MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
3MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
little eagle
#

CfgFunctions is just a framework to not having to do the precompiling yourself

tough abyss
#

^

rotund cypress
#

I just didnt know how to load myScript.sqf

little eagle
#

it does basically the same as you wrote

tough abyss
#

Saves a lot of time.

rotund cypress
#

OK I see

tough abyss
#

Okay so to load it you do this

#

init.sqf

#

You've got your precompiled go there?

#
// inside init.sqf 

1MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript1.sqf";
2MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
3MyFuncGlobal = compileFinal preProcessFileLineNumbers "myScript2.sqf";
rotund cypress
#

yeah

tough abyss
#

Now it's available k.

rotund cypress
#

yes

tough abyss
#
onLoad = "_this call 1MyFuncGlobal";
#

inside your control

#

Thats all there is to it.

rotund cypress
#

Yeah, I understand that now ๐Ÿ˜„

little eagle
#

I repeat myself

#

But I'm pretty sure variable names have to start with a-z

#

1MyFuncGlobal won't work

rotund cypress
#

Yeah

jade abyss
#

Numbers are NOT POSSIBLE

rotund cypress
#

Im not using numbers anyways so its fine

tough abyss
#

Oh yeah thats a common programming thing.

jade abyss
#

Don't make examples with it

rotund cypress
#

It was just example of different functions

little eagle
#

Oh yeah thats a commy programming thing.

rotund cypress
#

Sorry ๐Ÿ˜„

tough abyss
#

Fixed it...

little eagle
#

don't blame me

tough abyss
#

xD

jade abyss
#

Who else?

little eagle
#

if it where for me we only had numbers and no letters in the world

rotund cypress
#

I have another question, if you can bare with me ๐Ÿ˜„

#

Is it possible to change looks of group hexagons and add say a playername to them?

little eagle
#

you can disable the hexagons with the difficulty settings

#

and then add some nametag script

rotund cypress
#

Cant you add an eventhandler or something for it?

jade abyss
#

eachFrame displayEH

little eagle
#

draw3d to not make it choppy

rotund cypress
#

draw3D evh instead of eachFrame evh?

little eagle
#

yeah

jade abyss
#

Or that

rotund cypress
#

Won't eachframe really downgrade performance?

little eagle
#

every script does

jade abyss
#

draw3D was the one i meant.
Hey, i haven't done stuff in arma for the past 4-5Months, keep that in mind ๐Ÿ˜›

rotund cypress
#

ok

#

So'

#

draw3d on a player with a nametag?

#

just like you would with normal nametags?

little eagle
#

draw3d is a misson event handler

#

it doesn't belong to a player

rotund cypress
#

how do I actually get the nametag to show on the player?

jade abyss
#

@rotund cypress Before you start playing around with that -> You should learn the basics first.

#

It is possible, but you will run into some limits/problems.

rotund cypress
#

I know how to display actual nametags, already have that. But just above a hexagon

jade abyss
#

No clue what "just above the hexagon" means

rotund cypress
#

You know the group hexagons?

little eagle
#

disable them via difficulty setting

rotund cypress
#

I dont want to disable them @little eagle

#

I want to show so players can see who it is

little eagle
#

the hexagons?

rotund cypress
#

With a nametag

#

Yes

#

Group hexagon -> Still be there but with a profileName of player on top

little eagle
#

well. it's just as I wrote

jade abyss
#

Thats the draw3D command

#

...

#

As i mentioned before: Learn the basics first.

rotund cypress
#

I know a lot of basics

jade abyss
#

You don't know how to register a function^^ Soooooo ๐Ÿ˜„

rotund cypress
#

I didnt know the preProcess stuff

little eagle
#

that is a basic basic though

jade abyss
#

That is a basic

rotund cypress
#

Not all basics ๐Ÿ˜„

jade abyss
#

Yeah ๐Ÿ˜„

little eagle
#

it sure is

jade abyss
#

Thats why, learn the basics.

little eagle
#

how else do you want to script

jade abyss
#

Do you know how forEach works?

rotund cypress
#

Its a loop

jade abyss
#

or do you know what forEachIndex is?

rotund cypress
#

nah

jade abyss
#

forEach is not a loop. While{true}do is a loop

#

๐Ÿ˜‰

rotund cypress
#

yes but you can loop stuff with it

#

cant you?

little eagle
#

gotta know how to turn files into chows for the game to execute

jade abyss
#

Not rly, you cycle through an array.

noble juniper
#

by the way, can you add to the array the forEach is iterating through ?

rotund cypress
#
private _inArea = false;
{
     if ( player distance (getMarkerPos _x) < 20) exitWith {_inArea = true;};
} forEach _pokemonLocations;

if (!_inArea) exitWith {[format["Your smartphone didn't find any pokemons."]] spawn FLF_fnc_smallHint;};
#

Did that today

noble juniper
#

like

little eagle
#

technically forEach is indeed a loop

rotund cypress
#

_pokemonLocations = ["pokemon_1","pokemon_3","pokemon_4","pokemon_5","pokemon_7"];

jade abyss
#

pokemon cry

#

format -> Not needed

noble juniper
#

bla = [1]; {bla pushBack _x;}forEach bla;

rotund cypress
#

I know

#

Just had that

#

Because

little eagle
#

is that Pokรจmon Go inside Arma? Game - RL - Game - RL inception?

rotund cypress
#

In case I add any variables

jade abyss
#

inArea -> There is already an command for that

little eagle
#

madness

rotund cypress
#

Yes its pokemon go within ArmA

little eagle
#

oh boy

jade abyss
#

i wanna die

noble juniper
#

oh my gaaawd

little eagle
#

Arma is the correct spelling

jade abyss
#

Okay, everyone has his kink.

noble juniper
#

on a life server ?

jade abyss
#

At least, its not LIFE

little eagle
#

ArmA is no longer a thing

#

Arma 3

jade abyss
#

Okay.. is it for a life server?

rotund cypress
#

Yes

noble juniper
#

of caue on a life server ...

jade abyss
#

I am out.

noble juniper
#

xD

rotund cypress
#

oh no ๐Ÿ˜ญ

little eagle
#

The point of Pokemon Go was so that people actually leave their house again

#

and now you wan t to put it inside another video game

rotund cypress
#

D:

#

Well I mean, I've developed a bit of other missions but I find life to be the most interesting and fun to develop

#

I find something to be really fun with SQF scripting

#

And coding life

noble juniper
#

its interesting, i mean, most of us come from the Life mission

rotund cypress
#

Yes, I recognise your name @noble juniper

little eagle
#

liking SQF can only be explained with the Stockholm syndrome

noble juniper
#

@rotund cypress What from where ?

rotund cypress
#

Im from Stockholm ๐Ÿคฃ @little eagle

tough abyss
#

@tough abyss Can I slap you?

noble juniper
#

did they implement my indicators in the new verison ?

tough abyss
#

XD

jade abyss
#

@tough abyss You spelled "cancer" wrong. Not "Heart" - "cancer"

rotund cypress
#

@noble juniper they did not but your indicators on GH was the way I found you

noble juniper
#

ah

rotund cypress
#

๐Ÿคฃ

little eagle
#

doesn't life already have multiple nametags ๐Ÿค”

tough abyss
#

Pokemon in ArmA 3

rotund cypress
#

yes

little eagle
#

why you need more?

tough abyss
#

This is some seriously f***'d up sh**

jade abyss
#

50% of the LifeServer are pure crap or CopyPasta... sad, but true
49% violate Monetizaion rules...

tough abyss
#

^

noble juniper
#

1% ?

jade abyss
#

Mine ๐Ÿ˜„ (old)

noble juniper
#

LOL

jade abyss
#

"leak"

noble juniper
#

i mean, you had a good server, do you still have it ?

jade abyss
#

Nope, i quit.

noble juniper
#

you quit, why ?

#

where your files leaked ?

jade abyss
#

I was bored and disgusted of Life-Mode

#

Mine was on GitHub, open Source.

noble juniper
#

ah i remember ..

jade abyss
#

Distrikt41 <-Maybe heard, maybe not.

noble juniper
#

of cause,

#

can i take the mod items from the repo ?

jade abyss
#

In the end, i only did that stuff to help some "friends"

#

Do whatever you want with it.

noble juniper
#

thats interesting.

#

thx

jade abyss
#

But... i think its only 1.3 on the Repo, no clue. >1.3 was done by other guys.

noble juniper
#

hmmk

#

i thought that it was a moded server ?

#

well ok, ist just the server side,

jade abyss
#

It was an AddonServer. Some guys from the "community" took over some files and created their own one, you can download them there (i think they had the 1.4 Files)

tough abyss
#

Whats the legality of making an addon thats a 2 part system?

#

that locks the mission folder while a player is online?

jade abyss
#

?

tough abyss
#

and sends an encrypted zip / unpacks it on the client side?

#

Loads all the mission data?

#

But the player can't open that folder after it's loaded

little eagle
#

how?

noble juniper
#

when you actually go that for of making an adon, you can just encrypt that

tough abyss
#

SO it's a 2 part system server manager managing heart beats.

#

between the client and the server

#

client DC's

#

Server encrypts the data again.

#

Can't access the zip

noble juniper
#

Load on the server is a point against that

#

when you do an addon

tough abyss
#

It only keeps the folder open while the client is connected

noble juniper
#

Why not encrypt that addon, and decrypt through an extension

tough abyss
#

After they disconnect it gets deleted.

noble juniper
#

the key comes from the server through remoteExec.

#

much simpler

jade abyss
#

Cause the extension must be load on ClientSide too, wich means -> Whitelist by BE -> Still Easy to edit/Opens up hackergate

tough abyss
#

^

#

How?

jade abyss
#

tools

noble juniper
#

you mean dll injection

#

right ?

jade abyss
#

idk

#

maybe

noble juniper
#

opening up the dll and messing with it

#

= dll injection

tough abyss
#

But ACE3 uses DLLs?

#

Why not use and thats what I was getting it

noble juniper
#

as far as i got it from the discussion on one of those forums

tough abyss
#

using an extension with 2 executables

#

Client and server

rotund cypress
#

Could that work?

noble juniper
#

@tough abyss what you were saying is only achieveable through a clientside extension. So you basically need to make an addon.
with that addon, you can simply everithing in the way i said.

tough abyss
#

People hate me for doing it?

noble juniper
#

if they hate you, theyll hate me too

#

and ill be first, because its nearly done

rotund cypress
#

@little eagle

noble juniper
#

but i hope, noone will notice , therfore not hate me

little eagle
#

WHAT

rotund cypress
tough abyss
#

SO how are you encrypting and decrypting the mission Rage?

little eagle
#

_units is undefined

rotund cypress
#

_units = _units - [player];

jade abyss
#

_units is still undefined

little eagle
#

yeah undefined^^

#

switch block with just one case is pointless

rotund cypress
#

oh but then it would be _units = "man";

jade abyss
#

_units = allPlayers; (or so);
_units = _units - [player]

rotund cypress
#

I didnt make it just remade some old code

noble juniper
#

@tough abyss i encrypt everything once, after development is done, and the client has amod, dthat contains an extension that contains the decrytion algorythm.

#

now you need to get the content to decrypt and the key into it. the decrypted stuff comes out

tough abyss
#

Which algorithm you using?

noble juniper
#

doesen't matter

#

disclosure

#

cant tell you

tough abyss
#

RC4? AES? BlowFish?

noble juniper
#

what of those makes sense ?

tough abyss
#

Depends

rotund cypress
noble juniper
#

symetryc of cause

tough abyss
#

Some algorithms have a high enough throughput to decrypt the data

noble juniper
#

the throughput should be big enough because native execution

little eagle
#

why did you add that line

#

instead of writing
_units = allPlayers - [player];

rotund cypress
#

oh yeah

noble juniper
#

@tough abyss better question is how to get the key and contetn in and out

rotund cypress
#

Will that be fine or?

tough abyss
#

What means are you using to exchange the key data?

#

This must require a sockets layer

noble juniper
#

i'm under disclosure, and if you want to continue, we need to move to a private chat.

#

Last words, its simpler as it seems

rotund cypress
#
addMissionEventHandler ["Draw3D",{
    #define iconID 78000
    #define scale 0.8

    if (visibleMap || {dialog}) exitWith {
        500 cutText["","PLAIN"];
    };

    _ui = uiNamespace getVariable ["Life_HUD_nameTags",displayNull];

    _units = allplayers - [player];

    private _index = -1;
    {
        private "_text";
        _idc = _ui displayCtrl (iconID + _forEachIndex);
        if (!(lineIntersects [eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) then {
            _sPos = worldToScreen _pos;

            if (vehicle player isEqualTo player): {format["%1",(_x getVariable ["realname",name _x])];};

            _index = _forEachIndex;
            _idc ctrlSetStructuredText parseText _text;
            _idc ctrlSetPosition [_sPos select 0, _sPos select 1, 0.2, 0.65];
            _idc ctrlSetScale scale;
            _idc ctrlSetFade 0;
            _idc ctrlCommit 0;
            _idc ctrlShow true;
        };
    } forEach _units;
    (_ui displayCtrl (iconID + _index + 1)) ctrlSetStructuredText parseText "";
 }];
#

That did not work ๐Ÿ˜ญ

jade abyss
rotund cypress
#
 1:57:45   Error Invalid number in expression
 1:57:45 Error in expression <#define iconID 78000 
#define scale 0.8 >
 1:57:45   Error position: <#define iconID 78000 
#define scale 0.8 >
#

I get that error

little eagle
#

remind me

#

does init.sqf support macros?

jade abyss
#

erm

#

Should

little eagle
#

I only do addons, how would I know

jade abyss
#

Its an ordinary .sqf file

little eagle
#

... that is executed by hard coded engine magic

jade abyss
#

... but works like a standard .sqf

little eagle
#

good

#

then I have no idea why Sims script errors like that

jade abyss
#

addMissionEventHandler ["Draw3D",{
#define iconID 78000
#define scale 0.8

#

Does MEH support define?

little eagle
#

doesn't matter where you put it

rotund cypress
#

I tried putting it outside eventhandler aswell

little eagle
#

I'd put it on the top of the file or in the header

jade abyss
#

But, why not:
_iconID = 78000; <- then refering to _IconID instead of IconID

little eagle
#

one is resolved once at preprocessing

#

the other searches all scopes for the variable hash each time

rotund cypress
#

Keep in mind

#

Im trying within debug

little eagle
#

it's better to make statics a static

rotund cypress
#

Maybe i need call compile?

jade abyss
#

Won't work

little eagle
#

omg

jade abyss
#

Yeah, compile...

little eagle
#

debug console doesn't support macros

#

don't use the debug console to debug

#

restart the mission

rotund cypress
#

Now I get this error

 2:04:48 Error in expression <[eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error position: <{!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error Missing )
 2:04:48 Error in expression <[eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error position: <{!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error Missing )
 2:04:48 Error in expression <[eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error position: <{!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error Missing )
 2:04:48 Error in expression <[eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error position: <{!isNil {_x getVariable "realname"}}) th>
 2:04:48   Error Missing )
little eagle
#

if (!(lineIntersects [eyePos player, eyePos _x, player, _x]) {!isNil {_x getVariable "realname"}}) then {

rotund cypress
little eagle
#

there should be a && or || between the conditions

rotund cypress
#
 2:06:24 Error in expression <    if (vehicle player isEqualTo player): {format["%1",(_x getVariable ["realnam>
 2:06:24   Error position: <: {format["%1",(_x getVariable ["realnam>
 2:06:24   Error Generic error in expression
#
if (vehicle player isEqualTo player): {format["%1",(_x getVariable ["realname",name _x])];};
little eagle
#

is that the next error or what?

rotund cypress
#

That is the line

#

Yes

jade abyss
#

...

#

read

little eagle
#

then not :

rotund cypress
#

oh yeah

#

sorry

little eagle
#

if (condition) then {

rotund cypress
#

i had a case before

#

Of course @little eagle

#

I had a switch before that is why that happened eksdee

little eagle
#

I think you pinned the wrong one

rotund cypress
#

oh shit ๐Ÿ˜„

little eagle
#

or Casual is writing and he is on my igno list

#

never know

rotund cypress
#

Tagged wrong guy

jade abyss
#

Change it

rotund cypress
#

next error

 2:07:53   Error Generic error in expression
 2:07:53 Error in expression <Text parseText _text; 
            _idc ctrlSetPosition [_sPos select 0, _sPos s>
 2:07:53   Error position: <ctrlSetPosition [_sPos select 0, _sPos s>
 2:07:53   Error Type Any, expected Number

I think it has something to

#

something to do with it being a string?

little eagle
#

_sPos is undefine

#

because it's defined as
= worldToScreen _pos;

#

but _pos is undefined

rotund cypress
#

yeah

#

That I did now but still doesnt work

#
 2:14:12   Error position: <ctrlSetPosition [_sPos select 0, _sPos s>
 2:14:12   Error Type Any, expected Number
 2:14:12 Error in expression <")) select 2)+.65; 
            _sPos = worldToScreen _pos; 
 
            if (v>
 2:14:12   Error position: <worldToScreen _pos; 
 
            if (v>
 2:14:12   Error worldtoscreen: Type Number, expected Array
little eagle
#

hmm

#

it says _pos a number

rotund cypress
#

yeah

#

Weird

little eagle
#

diag_log time

#

diag_log _pos;

#

before the erroring line

jade abyss
#

worldtoscreen

#

[0,0,0]

#

!=
1234

little eagle
#

_pos = [visiblePosition _x select 0, visiblePosition _x select 1, ((_x modelToWorld (_x selectionPosition "head")) select 2)+.65];

#

looks like a 3d array to me

rotund cypress
#

2:19:23 11650.3
2:19:23 [3639.33,13109.9,2.2582]

little eagle
#

what is the first one?

rotund cypress
#

time

little eagle
#

does it still error like before?

rotund cypress
#

yes

#

error position worldtoscreen _pos

little eagle
#

worldToScreen [3639.33,13109.9,2.2582]
in debug console ^

rotund cypress
#

[0.0867414,-0.331512]

little eagle
#

and no error

#

?

rotund cypress
#

nope

little eagle
#

then idk

#

it's really late

#

yawn

rotund cypress
#
2:15   Error worldtoscreen: Type Number, expected Array
 2:22:15 11822.4
 2:22:15 [3639.33,13109.9,2.21457]
 2:22:15 WARNING: Function 'name' - d0e5eb00# 1781836: infostand_v1_f.p3d REMOTE has no unit
 2:22:15  - network id 2:1985
 2:22:15 Error in expression <    if (vehicle player isEqualTo player): {format["%1",(_x getVariable ["realnam>
 2:22:15   Error position: <: {format["%1",(_x getVariable ["realnam>
 2:22:15   Error :: Type if, expected switch
 2:22:15 Error in expression <    if (vehicle player isEqualTo player): {format["%1",(_x getVariable ["realnam>
 2:22:15   Error position: <: {format["%1",(_x getVariable ["realnam>
 2:22:15   Error Generic error in expression
 2:22:15 Error in expression <Text parseText _text; 
            _idc ctrlSetPosition [_sPos select 0, _sPos s>
 2:22:15   Error position: <ctrlSetPosition [_sPos select 0, _sPos s>
 2:22:15   Error Type Any, expected Number
 2:22:15 Error in expression <")) select 2)+.65; 
            _sPos = worldToScreen _pos; 
 
            if (v>
 2:22:15   Error position: <worldToScreen _pos; 
 
            if (v>
 2:22:15   Error worldtoscreen: Type Number, expected Array
 2:22:15 11822.4
 2:22:15 [3639.33,13109.9,2.21444]
little eagle
#

fix all the error before that

#

from top to bottom

rotund cypress
#

that is not an error anymore

little eagle
#

why is it in the RPT then?

rotund cypress
#

i dunno

#

one sec

little eagle
#

see. it still is an error then

#

otherwise

#

ctrl + a

#

backspace

#

ctrl + s

rotund cypress
#

its because it is an event handler from before

little eagle
#

shrug

rotund cypress
#

*most likely

little eagle
#

the editor does weird stuff with ui event handlers

rotund cypress
#

lemme try log in and out

little eagle
#

they carry over when pressing restart

#

some of them

#

always go back and relaod

#

รŽ'm going to bed though

#

gl

rotund cypress
#

now I get this error 2:26:19 Unknown entity: '& {!isNil {_x getVariable "realname"}}) then { _pos = [visiblePosition _x select 0, visiblePosition _x select 1, ((_x modelToWorld (_x selectionPosition "head")) select 2)+.65]'

#

@jade abyss Do you have an idea of why?

tough abyss
#

I stopped caring about this conversation ages ago. Because #Altis-life

rotund cypress
#

 addMissionEventHandler ["Draw3D",{    
     _mygroupplayers = group player;
     ctrlSetStructuredText [ parsetext format["%1",profileName], [ 0.75, 0, 0, 0.9 ], _mygroupplayers modelToWorld ( _mygroupplayers selectionPosition "Spine3" ), 0.6, 0.6, 0, "", 1]; 
}];
#

COuld something like that maybe work?

rancid ruin
#

anything can maybe work if the code is correct

lyric isle
#

CAN ANYONE HOOK ME UP A SCRIPT TO PLAY MUSIC (3D) FROM A VEHICLE?

spark phoenix
#

@lyric isle playSound3D can attach the sound source to an object

#

@rotund cypress no. A group is not an object

stable wave
#

Is there an all-in-one tutorial for arma 3 (Multiplayer) scripting?

young current
#

no

young current
vague hull
#

does setPosASL take vectorUp into account?

#

weired stuff happening over here

young current
#

probably not if something weird happens

vague hull
#

it moves the object towards the direction the object is tild to

young current
#

Interesting, maybe it does then. What kind of command are you using exactly? And what do you want it to do?

meager granite
#

set\getPos(ASL\ATL) use different points for getting and setting position

#

That's why there is setPosWorld\getPosWorld which takes and sets coordinates without any modifications

young current
#

Oh we got a command like that too! xD Thanks for the info @meager granite

little eagle
#
Bohemia Interactive Forums

Page 57 of 57 - Scripting Discussion (dev branch) - posted in ARMA 3 - DEVELOPMENT BRANCH: Wrong? Wrong it was removed? I dont think so. Wrong it was duplicating functionality? This is why it was removed. You said: >playerControlled was added and removed because it was duplicating existing functionality. If I remember correctly you could get the same results with cameraOn. But the changelog says: >Arma 3 1.24: New command playerControlled (like the playe...

#

fun with mine detectors

#
Bohemia Interactive Forums

Page 57 of 57 - Scripting Discussion (dev branch) - posted in ARMA 3 - DEVELOPMENT BRANCH: Wrong? Wrong it was removed? I dont think so. Wrong it was duplicating functionality? This is why it was removed. You said: >playerControlled was added and removed because it was duplicating existing functionality. If I remember correctly you could get the same results with cameraOn. But the changelog says: >Arma 3 1.24: New command playerControlled (like the playe...

#

can't remember with whom I was talking yesterday / two days ago

vague hull
#

so I assume using setPosWorld will fix it? ... ok thx

#

Am I right, when assuming that:
((AGLToASL(player modelToWorld _attachPos)) vectorAdd [0,0,_hightOffset])])
would still get the right coordinates to use with SetPosWorld?

little eagle
#

if you get hight offset correct

vague hull
#

its just: set that object +5 m on z-axis

little eagle
#

then no. you feed ASL to a command that expects World

#

should use setPosASL for that

vague hull
#

then I have got the error with vectorUp again

little eagle
#

why not tilt the object first and then read it's position?

vague hull
#

its already tilt but I need to move it afterwards

#

sec

little eagle
#

you should use more lines and less brackets

#

SQF already is bracket hell

#

])])

vague hull
#

I like them

little eagle
#

((AGLToASL(player modelToWorld _attachPos)) vectorAdd [0,0,_hightOffset])])

vague hull
#
        _floats = [_newPos] call _isFloating;
        buildObject setVariable ["memPlusZ",0];
        if (!_floats && !(surfaceIsWater _newPos)) then {
          buildObject setPosASL _newPos;
          _attachPos = (player worldToModel (getPosATL buildObject));
        } else {
          _newPos = (AGLToASL(player modelToWorld _attachPos));
          _floats = [_newPos] call _isFloating;
          if (!_floats && !(surfaceIsWater _newPos)) then {
            buildObject setPosASL _newPos;
          };
        };```
little eagle
#

if you blink at that you could think it's some kind of regexp

thick oar
#

Is there any predefined way to get the events of:

Arsenal opened
Arsenal closed
Item in arsenal equipped

?

little eagle
#

BIS_fnc_addScriptedEventHandler (iirc) ?

thick oar
#

will have a look, thanks!

little eagle
#

What is _isFloating ?

vague hull
#
  private _begPos = _this select 0;
  private _endPos = [(_begPos select 0),(_begPos select 1),((_begPos select 2) - 0.5)]; //TODO maybe create offsets?
  private _ins = lineIntersectsSurfaces [_begPos, _endPos, buildObject, objNull, true, 1];
  (_ins isEqualTo []);
};
little eagle
#

for what purpose?

vague hull
#

checks wheter the object floats in the air (doesnt look so nice if you get a tent floating 5 m above the ground)

vague hull
#

heard that this was bugged

#

and/or unrelieable

little eagle
#

everything's bugged in this game, famalarm

#

in one way or another

#

but it's 100% more accurate that raycasts

vague hull
#

ok, well yeah, since I could tilt the object to be upside down, idk if it would work either

#

however, thats not the problem (but thanks anyways :) )

little eagle
#

In my opinion

#

which you can ignore

#

You're using way to many z-offsets

#

it looks to me "overengineered"

vague hull
#

need to solve the problem anyways xD

thick oar
#

Any details on how to use bis_fnc_addScriptedEventhandler?

I assume the "event" is the name of a cfgFunctions classname?

thick oar
#

yeh. thats how far I got myself. thanks ๐Ÿ˜ƒ

little eagle
#

it's basically like CBA events

#

but no network support

#

so useless ๐Ÿ˜›

thick oar
#

Had a look at the code of arsenal and zeus, found a couple of instances where it is used, but nothing clear about the namespace I should target.

#

well, arsenal is local, and I only need local effect, so no CBA here is fine.

little eagle
#

there is no namespace

#

oh. but maybe BIS_fnc_addScriptedEventHandler only works in mission namespace

#

not sure about that

#

you should never script in uiNamespace anyway

#

just use it as function dump

#

^ imo

thick oar
#

Ahhh. Ok i figured it out.

little eagle
#

I've never used them, but I think one problem the arsenalOpened has, is that the complete inventory of the player is already removed

thick oar
#

Obviously the functions I want to target need to have callScriptedEH in their scripts. So it is not linked to the function classname, (ie. an EH that runs whenerver this function is called)

#

in my case, the arsenal allows two scripted EH:

arsenalOpened and arsenalClosed

little eagle
#

yeah

#

that's the only place they're used iirc

thick oar
#

Inside arsenal, yes. there's others:

curatorGroupPlaced
BIS_fnc_playVideo_stopped
respawnTicketsExhausted
dominantSideChanged

little eagle
#

ok

thick oar
#

pretty neat system to make functionality modular. I like it.

#

Thx for the pointer to that function ๐Ÿ˜ƒ

#

Yep, works splendidly fine ๐Ÿ˜ƒ

little eagle
#

event handlers are indeed nice

#

especially for modular stuff

#

but be carefull not to take away the "fun" and "soul" of Arma

thick oar
#

What do you mean? ๐Ÿ˜„

little eagle
#

Ignore it. I'm talking to myself again

thick oar
#

๐Ÿ˜„ Worried I might break something? ๐Ÿ˜›

#

In this case I just needed a way to re-apply uniform specific insignias such as rank and service branch after arsenal, as it removed them. :/

little eagle
#

don't worry about it

austere hawk
#

if i do
private _a=0;
scopeName "main";
<stuff>
is _a known in scope main?

#

nvm, issue fixed. forgot to declare a variable in mainscope

languid forge
#

Do anyone know how to change the timer on County Jail? I run Critical gaming, and when i jail them 30 min, they spawn in county? But i deleted the county building, so you are aactually spawning in thwe water? But yea, i won't to change the timer to 0 so you can't spawn in County?

halcyon crypt
#

wrong place to ask

#

you should probably find some A3: Life support channel

languid forge
#

@halcyon crypt Allright ๐Ÿ˜‰

halcyon crypt
open vigil
#

Why does the name "Critical Gaming" sound familiar? Must go check the #ip_rights_violations logs (to make sure I'm not confusing them)

young current
#

Was it a name of some Life community?

open vigil
#

Yes

icy raft
#

Not all Life communities are bad...

#

I was the lead coder in one of them and the "boss" spent around 2500-3000โ‚ฌ making brand new content...

little eagle
#
Bohemia Interactive Forums

Page 57 of 57 - Scripting Discussion (dev branch) - posted in ARMA 3 - DEVELOPMENT BRANCH: Wrong? Wrong it was removed? I dont think so. Wrong it was duplicating functionality? This is why it was removed. You said: >playerControlled was added and removed because it was duplicating existing functionality. If I remember correctly you could get the same results with cameraOn. But the changelog says: >Arma 3 1.24: New command playerControlled (like the playe...

#

intended

#

fml

#

3 years of this bug. I could fix it in 10 minutes

#

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

worldly zinc
#

Is it possible to change the CfgSurfaces config on missionside?

#

It's rather annoying to continously get hatchback sports stuck in sand.

little eagle
#

no

open vigil
#

@icy raft How do you spend 2500-3000 Euro "making brand new content"?

halcyon crypt
#

didn't you know that throwing money at something fixes everything?

open vigil
#

is that a Chris Roberts (RSI) quote? ๐Ÿ˜‰

halcyon crypt
#

I'm not that familiar with RSI (the space game, right?), but yes? ๐Ÿ˜›

open vigil
#

Yes, now well over 90 Million

halcyon crypt
#

๐Ÿ˜ฎ

open vigil
#

Correction, its over 130 Mil as of this month

halcyon crypt
#

that better become the best game ever

vague hull
#

Offtopic Guys

tough abyss
#

@little eagle Is there a way to suspend scripts in the unscheduled environment?

halcyon crypt
#

some kind of time based per frame handler would work for that

#

but as far as I know there's no command like sleep to suspend in unscheduled

tough abyss
#

CBA_A3 has an executeOnNextFrame

halcyon crypt
#

hmm that second one is based on a condition

tough abyss
#

Do you know if you can cause a single [] spawn'd thread to lockup

#

from too many internal calls?

#

e.g

#

[_args] call GG_fnc_functionA;

[_args2] call GG_fnc_functionB;

[_args3] call GG_fnc_functionC;
    };
#

Can too many of calls within calls cause issues?

halcyon crypt
#

don't think so, the engine just pauses the script if it takes too long

#

once in scheduled anyway

#

and continues it on the next time

#

not entirely sure but that's what I've been assuming for years ๐Ÿ˜›

tough abyss
#

I've learned that even though it's probably redundant if (canSuspend) then { run my code };

#

Eliminates any problems with non-scheduled vs scheduled

#

as the canSuspend catches it.

#

Say I've got a several level deep function

#

I can put if (canSuspend) at the top effectively

#

Or I could wrap it into a macro

halcyon crypt
#

that macro doesn't make much sense?
if (canSuspend) then {};
vs
if (SUSPENDABLE) then {};
same thing but longer ๐Ÿ˜›

icy raft
#

@open vigil Hiring freelanzers to make your models for you, so you don't have to rip other's stuff ๐Ÿ˜ƒ

#

We had a set of artists plus coders (we coders did it free of charge 'cos we love the game and have people having fun ๐Ÿ˜„ )

tough abyss
#
#define SUSPENDCHECK() if (canSuspend) then { \
        diag_log format ["Suspension Possible: %1",canSupend]; \
    } else {  \
        assert !(canSuspend); \
    };
#

There we go.

#

Suspension test

halcyon crypt
#

@tough abyss aww that's not nice, deleting that post. Now my bit makes no sense

tough abyss
#

Delete it then ๐Ÿ˜›

halcyon crypt
#

it didn't anyway but still ๐Ÿ˜„

tough abyss
#

Pretty sure for that macros to work I needed \ characters

open vigil
#

I agree with Senfo that this is more appropriate for OT, but paying for someone to make arma models is against the rules as well.

halcyon crypt
#

it is?

icy raft
#

@open vigil Please, do explain

tough abyss
#

Wonder if CBA has a similar macro

icy raft
#

I didn't find a section in the EULA that said anything about that part, as we weren't comerzialicing any part of BIS's IP stuff, and were adding stuff we were legitime owners of

halcyon crypt
#

I guess it's commercial/monetization use of the engine/tools on the end of the freelancer

icy raft
#

They did the model in generic format (Maya/Max/Blender), we did the tranformation in Object Builder

tough abyss
#

Technically if you commercialised anything to do with scripts

icy raft
#

So... They were technicaly making models, we (coders) made them Arma 3 models

tough abyss
#

Is deemed commercialization

#

Read ArmA 3's Manual

#

And the "license agreement in it"

#

"All code scripts, assets, images, and associated files are owned by Bohemia"

#

Including the modding interface

#

and all mods. by extension.

#

*** All title, ownership rights and intellectual property rights in and to
the Program and any and all copies thereof (including but not
limited to any titles, computer code, themes, objects, characters,
character names, stories, narrative, locations, artwork, animations,
sounds, musical compositions, audiovisual effects, methods of
operation, any related documentation, and addons incorporated into
the Program) are owned by Bohemia Interactive a.s. (the Licensor)
or its licensors. The Program is protected by the Czech copyright
laws, international copyright treaties and conventions and any other
applicable laws. All rights are reserved.


#

Clear as a day in writing

icy raft
#

Yeah... I still don't see the issue. It's clearly protecting all software + art originally owned by BIH a.k.a. legally covering their IP against other ripping their stuff into outside of Arma 3's projects... Doesn't say anything about third parties content...

tough abyss
#

No

#

Read it again

icy raft
#

I know how to read a license...

tough abyss
#

*** Any related documentation AND addons incorporated into the program are owned by Bohemia interactive***

young current
#

it does not mean mods are their property

#

except if they become part of the core program

tough abyss
#

All models are technically bohemias

#

because they own the internal programming

icy raft
#

Yes, and that's in a release bundle, regarding the content already contained int that specific static copy of the product they provide with the manual.

tough abyss
#

You are granted the use of that interface.

young current
#

any model you make you keep.

tough abyss
icy raft
#

@tough abyss , I believe you are terribly misunderstanding the concept of licensing...

young current
#

except if you make them from Arma models

icy raft
#

I'm an last year engineering student and I've coding for opensoruce license-nightmerish projects, I have studied all this license dilemas for a while now...

tough abyss
#

@icy raft ask @open vigil

#

Oh god...

#

Disappears

#

Mr credentials

young current
#

But its getting late. ๐Ÿ˜„ Gotta hit the sack. Bottom line no-one would do mods, if they would not keep their own 100% self created models.

icy raft
#

I'm just saying, I've been studying the official version and how to manage this stuff man

#

I just don't see where is any reference backing up what you are saying in any of the content you have provided. I have been though it many times checking we didn't break the EULA or BI's IP licenses

open vigil
#

it belongs in #offtopic_arma so we dont keep bother the scripters. I'm still trying to locate the documentation for you.

open vigil
#

@Akryllax#5678 Ah, I missed the key sentence at 10:50 (my time) "They did the model in generic format (Maya/Max/Blender), we did the tranformation in Object Builder"

icy raft
#

Nah, @open vigil , don't worry, it just ended in an useless conversation. If there's really any problem, I don't have any problem in talking with BIH, though I'm nout currently active in that community

#

I'm so sorry for the trouble

#

Next posts of mine will be about coding, cos right now I'm lost

#

I'm trying to achieve too much for myself, and it's getting out of hand too quick. Can do it, but's gonna take hell of a time

little eagle
#

Is there a way to suspend scripts in the unscheduled environment?

#

no

#

well, not without locking up the game

icy raft
#

you could emulate pausing... But that's way too complicated

little eagle
#

no you can't

#

if you suspend the unscheduled environment

#

the game locks up

icy raft
#

I'm playing dota right now, I'll try later to do something about it

#

hahaha

little eagle
#

using something like a for loop with step 0

tough abyss
#

So how are you supposed to stay out the scheduled as much as possible?

little eagle
#

?

tough abyss
#

Most things in arma require some kind of sleep #;

little eagle
#

marceldev89 already posted how you'd do that in unscheduled env

#

but that is a different scope, so you're not suspending anything

#

the script still runs to it's end

#

Most things in arma require some kind of sleep #;
I don't think that is true

tough abyss
#

TFAR script I have needs it

#

and a waitUntil

#

to stop, it failing to initialise the radios

#

Otherwise if there is no sleep is doesn't actually recognize the radio

little eagle
#

sounds more like a problem with your setup than actually requiring sleep/waitUntil

#

bad design

tough abyss
#

check private messages @little eagle

little eagle
#

hey

#

let me read it first

halcyon crypt
#

there's no need to avoid scheduled like the death, if you can avoid it than do so but don't go to great lengths just because. ๐Ÿ˜›

#

IMO anyway ^^

icy raft
#

It should just depend on the flow of the thing you want to achieve

#

For example, you could implement a custom EH with a

little eagle
#

well. his current setup created unsuspened waitUntil loops every time you closed your inventory that would run forever if you didn't have a specific kind of radio

icy raft
#

'''
[] spawn {
if(eventHandlerVariable) then {
[] call fancy_function;
eventHandlerVariable = false;
};
};

little eagle
#

that is not an event handler. that is a polling loop disguised as one

icy raft
#

And what is a key handler called in reallity...?

little eagle
#

the code of the keyhandler is only executed when you press a key

halcyon crypt
#

in the end, every event system has some kind of looping/polling around it

#

like deep down