Jump to content
Sign in to follow this  
kegetys

ArmAlib v1.0

Recommended Posts

Sorry for my english...

Thanks for this usefull plugin !

But I found a little bug:

When the dsound.dll is in my arma folder, it is not possible to edit my profile, when I press ok to confirm modifications on my profile, no more buttons appears in the game, then if I press escape I return to the profile section and all buttons come back.

A other request tounge2.gif :

Is it possible to add a fuction which could return IP of a unit (if the unit is a real player ^^)

Share this post


Link to post
Share on other sites
WarWolf @ Aug. 13 2008,16:46)]@Ragnar - while that could be useful, the security considerations far outweigh the usefulness.

Simply too dangerous.

I can imagine lots of ways to hinder mission-scripts from executing code in a malicious way, for example as i said restricting it to only run programs in a specific directory or list. After all we take a risk installing anything. including this very library, on our computers.

Share this post


Link to post
Share on other sites

is there any chance to read out the armalib kalevi file as a normal editor file or note pad file?

because if you wanna change the settings with a friend it is very hard to see where something start or ends

thx alot biggrin_o.gif

Share this post


Link to post
Share on other sites

Keygety's can you check the SQLFast & SQL functions...

When I run...

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_sqlcmd = format["insert into fox1_playerinfo (player, data) values (""%1"", ""%2"")", _name, _data];

_sqlcmd call SQL;

I get and error from ArmALib saying the table doesn't exist... when it does...

When I swap it too...

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_sqlcmd = format["insert into fox1_playerinfo (player, data) values (""%1"", ""%2"")", _name, _data];

_sqlcmd call SQLfast;

It works fine... What's the reason for this?

Edit: Nevermind... silly logic error on my part...

Share this post


Link to post
Share on other sites

The 6DOF support is PERFECT !

So much fun driving vehicles now... thanks a lot !!!

One thing that "could" be cool, at least visually, is 6DOF when in aim mode (infantry).

This one should be included in A2 for sure.

Share this post


Link to post
Share on other sites

until you prove us you can "slide" left and right your neck on your chest, 4 dof will be enough , afaik ...  whistle.gif

Share this post


Link to post
Share on other sites

Helloo helloo notworthy.gif

As it seems, armalib checks version of the arma binary and doesn't allow to be executed when ran with ArmA v1.15Beta.

My Community was just getting used to the idea and endless possibilities ArmALib brings to our games, and it's a big miss now that it doesn't work firefoxlover.gif

Will there be a compatible version, or will you rather wait for a final update, any possible ETA? tnx thumbs-up.gif

Share this post


Link to post
Share on other sites

New version (v1.02) is on the site now... Just a quick update to support the new executables, hopefully it works ok as I didnt have time to test it that much.

Share this post


Link to post
Share on other sites

Excellent ! BTW, are there any servers supporting 6DOF TrackIR ?

Share this post


Link to post
Share on other sites
New version (v1.02) is on the site now... Just a quick update to support the new executables, hopefully it works ok as I didnt have time to test it that much.

NP. Thanks a lot! Will report back if we find any issues, Cheers! thumbs-up.gif

Share this post


Link to post
Share on other sites

I have a problem: with arma 1.15 and armalib 1.02 the game crash when I use this code (works in 1.14 with armalib 1.01)

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">try

{

    if(("listeMorts" call sqlTableExists)) then {("DROP TABLE  listeMorts") call SQL;};

    if(("listeVivants" call sqlTableExists)) then {("DROP TABLE listeVivants") call SQL;};

    ("CREATE TABLE listeMorts(tabUnit)") call SQL;

    ("CREATE TABLE listeVivants(tabUnit, tabCamp)") call SQL;

}

catch {player globalchat str _exception;};

doesn't work with SQLfast too sad_o.gif

Share this post


Link to post
Share on other sites

I'm running 1.14/1.15 and installed armalib but I don't get the 6dof support.

What do I have to do to enable it?

Share this post


Link to post
Share on other sites

It seems like you don't flush after writing to the pipe  wink_o.gif

When sending more than one message within short time, this will result in getting only one message:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">["Pipe", "message 1"] call slWriteData;

["Pipe", "message 2"] call slWriteData;

Read message (per remaining bytes from PeekNamedPipe) will be:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">message 1\nmessage 2\n

This could confuse most functions since they expect \n to be end of string.

I don't need a fix for this since you can easily make a workaround, but I want to warn others that this can happen.

Share this post


Link to post
Share on other sites
Read message (per remaining bytes from PeekNamedPipe) will be...

You should read the messages by reading the lpBytesLeftThisMessage amount returned by PeekNamedPipe, it should be "split" properly that way (the lpTotalBytesAvail contains the total number of bytes waiting in the pipe, the lpBytesLeftThisMessage tell you how many of these contain the next individual message)

Share this post


Link to post
Share on other sites

Hey m8,

i am using your Armalib programm since it was released but now since the 1.15 beta patch for Arma i am not able to safe or to load something ... running 6thSense Mod with ACE btw.

any ideas?

thx in advance

Share this post


Link to post
Share on other sites

Did you download the new version of ArmAlib ?

Share this post


Link to post
Share on other sites
Did you download the new version of ArmAlib ?

Yes i did, but it was not working ... not for my or one of my friends.

Share this post


Link to post
Share on other sites

Hi is there any change you can add flat file support so we can save load to txt files as armaEXT did i find the SQL side of this to unstable so woudl think that flat files would be more stable and easy to use

here is what armaEXT did when it worked

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

1) Simple commands:

loadfile "01 :dll" return dll version

loadfile "02 :ver" return dll version

loadfile "03 :info" return dll info

loadfile "04 :ArmaDir" return Arma Directory

loadfile "05 :ArmaPath" return Arma Path

2) File operations:

loadfile "06 :File.Write(""file"")@data" return nothing

loadfile "07 :File.Append(""file"")@data" return nothing

loadfile "08 :File.Delete(""file"")" return nothing

loadfile "09 :File.Exists(""file"")" return bool

3) String operations:

loadfile "10 :String.ToCharArray(""string"")" return array of char

loadfile "11 :String.ToIntArray(""string"")" return array of integer

loadfile "12 :String.ToLower(""string"")" return string

loadfile "13 :String.ToUpper(""string"")" return string

loadfile "14 :String.Copy(""string"", offset)" return string

loadfile "15 :String.Copy(""string"", offset, count)" return string

loadfile "16 :String.Length(""string"")" return integer

4) DataBase operations:

loadfile "17 :File.SetVar(""file"",""varname"")@var" return nothing

loadfile "18 :File.GetVar(""file"",""varname"")" return var

loadfile "19 :File.RemoveVar(""file"",""varname"")" return nothing

loadfile "20 :File.VarExists(""file"",""varname"")" return bool

loadfile "21 :File.VarCount(""file"")" return integer

Share this post


Link to post
Share on other sites

You've got all the functionality to create that feature yourself. --->>> 'ScriptLink'.

Once you get info out to a namedpipe you can do anything you want with it... ie. run a coca cola vending machine on the otherside of the world if you wanted too...

Someone has even created a Dot.Net wrapper for armalib if you have trouble with c++ and python...

The db's stability hasn't been an issue for me.

Share this post


Link to post
Share on other sites

@Kegetys:

My current code:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">  while (PeekNamedPipe(pipe, nil, 0, nil, @avail, @remain)

 and not Terminated) do

 begin

// avail = total bytes available in pipe

// remain = bytes in next message

// If data available in pipe, read it

if (avail > 0) then

begin

 SetLength(Buffer, remain + 1);

 ZeroMemory(@Buffer[1], remain + 1);

 ReadFile(pipe, Buffer[1], remain, read, nil);

Ok, the avail > 0 check isn't the right one, but I read only lpBytesLeftThisMessage bytes.

When sending without a break:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">["ION_RTE", format ["BUGREPORT|VERSION|%1", getText (configFile >> "CfgPatches" >> "ION_RTEV" >> "version")]] call slWriteData;

["ION_RTE", format ["BUGREPORT|REPORT|%1", _text]] call slWriteData;

I'll get one big string:

BUGREPORT|VERSION|XYZ\nBUGREPORT|REPORT|BLA\n

No problem for me, but it was tricky to find out:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">while Pos(#0, Buffer) > 0 do

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×