Jump to content

-LTac- Imperator

Member
  • Content Count

    21
  • Joined

  • Last visited

  • Medals

Everything posted by -LTac- Imperator

  1. I'm having a little bit of a quandry with local variables being passed into an event handler declared within a function. ltac_fnc_drawIcon = { private ["_unit"]; _unit = _this select 0; addMissionEventHandler ["Draw3D", { drawIcon3D ["", [1,0,0,1], getPos _unit, 0, 0, 0, "", 1, 0.05, "PuristaMedium"]; }]; }; I receive an error 0 parameters passed, 3 required. I know that any variables declared within {} or within [] spawn {} are local to that function's scope (since it is essentially an anonymous function - called asynchronously). That also means if you try to pass a locally declared variable from within a function to a code block or a spawn {} it cannot access it because scope does not carry forward. Is there a way to pass the variable into the addMissionEventHandler or forEachFrame {} method without using a global variable? - Also to clarify a global variable within a script file is global to that single file or to all script files that are available throughout the mission? Thanks for the help in advance.
  2. -LTac- Imperator

    Legion Tactical [LTac]

    Our Latest Community Mission is on youtube here: We are still looking for mature gamers who are looking for a fun, drama free atmosphere that is built to empower the player to create and contribute to the ArmA Community. We also are currently working on a Combat Medical System addon that we believe will revolutionize the way the game is played in both Co-Op and PvP Environments. Looking forward to providing more updates as we go along.
  3. -LTac- Imperator

    Legion Tactical [LTac]

    [table=width: 600, align=center] [tr] [td][/td] [/tr] [tr] [td]Legion Tactical is a community of players interested in bringing a new unit to the world of ArmA, we are focused around development of material, missions and mods for ArmA 3. Our Philosophy towards tactical gaming can be described as "Tactical Realism" we look to engage real world military tactics, procedures in a fun, easy to learn and engaging way. You will find no Privates, Captains or Colonel's in our rank structure - we have a unique way of handling ranks and they only represent the amount of time and contribution you have given to the community. Military Simulation may be the way some people like playing this game but our members come from all walks of life (some of them from the military). Our Tactical Realism approach allows even our newest members to experiment with different positions and learn them "on-the-job" (We kind of want you to practice you piloting skills before you transport the entire platoon however :p). We run community missions every weekend (Saturday 16:00 PST), joint-operations missions with other communities (Wedensday 18:30 PST), and are on regularly on our modified Invade and Annex server. When ACRE2 is released in stable format we will be running ACRE2 with internally developed realism mods, which will be released to the public when sufficiently play-tested. We are currently recruiting 18+ members who are looking to form a large, active and vibrant community around ArmA 3 and the mods that are currently and going to be coming out for it. Legion Tactical Website: www.legiontac.com Legion Tactical Server: arma.legiontac.com:2302 Legion Tactical Teamspeak 3 Server: ts3.legiontac.com Legion Tactical Twitter: www.twitter.com/LegioTactical Legion Tactical E-Mail: imperator@legiontac.com The Legion Tactical Code Honorare (Honor): To act at all times with honor, on and off the virtual battlefield. Honestatis (Respect): To act with due respect for all players and members of the community. Dignatio (Dignity): To act and represent the community with dignity and maturity. Communitas (Community): To support the community by active participation in events and contribute however you are able. [/td] [/tr] [tr] [td][/td] [/tr] [/table]
  4. Looks like its a simple error - I was looking for a vests ItemInfo in the CfgVechicles Config entry for it - and it seems that I should be looking in the CfgWeapons area. I am assuming that the two entries are for Vests placed on the ground vs Vests that are being worn by units? Clarification would be awesome if someone could help me out :)
  5. As stated in the Title, I am looking for a way to properly and effeciently get the ItemInfo (particularly the PassThrough) value for a certain piece of gear, be it a vest or a helmet that a unit is wearing. If you guys could help I woulld be eternally grateful! Thanks! - Imp.
  6. I am having some issues with the lineIntersectsObjs & lineIntersectsWith command within the API, it seems to be really picky about the type of objects it returns - is anyone aware what kind of objects it does return? It doesnt seem to return either soldiers or helper objects such as "Sign_Sphere10cm_F". Essentially i tested this by putting a start point and an end point and an object between the two and then returned the array. I really don't want to have to write my own function to check if a vector intersects a volume, but may have to if this does not work as expected as its rather vital to a script im working on at the moment. Any help will be appreciated!
  7. -LTac- Imperator

    Multiplayer Dedicate Message

    I didn't look at ParseText before I used it in that script - looks like its for controls - I may be wrong again here but after a quick look I think you should probably just send replace the _transmit line with: _transmit = _startuf + _titleuf + _textuf; and see if that works.
  8. -LTac- Imperator

    Multiplayer Dedicate Message

    This all depends on how you want the script to handle - you don't really have 10 seperate scripts - you have 10 instances of scripts that could be run by individual players - consider how often each player will use this addAction event. Second of all - you can simply setup an array ["StaticMortar", "B_G_Quadbike_01_F", "B_Heli_Light_01_F", "etc...."] and then set on each unit a "specialPower" variable using the setVariable command according to the index of the array (0 for Mortar, 1 for Quadbike, etc - and perhaps a true or false value to determine if it was called so it would look like this: _unit setVariable ["specialPower", [0, false], true]; . Then whenever a unit calls the script check their specialVariable using getVariable and if the execution value (the true or false) returns false spawn the unit. This way you can create a reusable function to spawn all different 10 items rather than 10 different functions. Grimes is right about global variables - you can get around this if you use the publicVariable command - be advised you cant transmit code blocks ( {} ), displays or local objects (objects that were created on a clients machine). Its not a simply copy and paste job - the dedicated server stuff needs to go fairly early in your init.sqf or at least be included in it earlier there - then the messaging part is where you would put the client side stuff - this is the client asking the server to say something to all the players for them. You can literally pass any string into it and it will send a hint to all players. I want to share a bit of advice given by a mentor to me in my professional life (I do web development) - But take time to experiment and try out the code and different approaches - dont be afraid to prototype new systems outside of your main script and get the very bare bones working and then take the lessons you learn from that prototype and implement it in your mission. Also always be aware that the biggest problem your programming skills are going to face is users - they will try a dozen different ways of accessing or putting inputs into something that you didnt expect and will try to break it - so always be aware of all the use cases of a function / input / etc. Unfortunately we are also working with the quirks left over of a dozen years of dozens of different programmers creating an api over four different games, which makes things a little more difficult ;). If you need any help, feel free to private message me or jump on our unit's teamspeak - more than willing to help out.
  9. -LTac- Imperator

    Multiplayer Dedicate Message

    Hey Doodle - I think you bring up a really interesting issue that a lot of scripters in Arma run into - the issue of locality. I've drawn something up using publicVariableServer and publicVariableEventHandlers - essentially the client asks the server to do the work for it. I would highly recommend reading KillzoneKid's article on Multiplayer Locality and how it affects things (not to mention reading the wiki article on locality wouldn't hurt either) - I've run into this issue A LOT with a medical system I am working on for ArmA III and its been frustrating but once you get used to the idiosyncratic nature of Arma Scripting you can work around its pitfalls. Keep in mind I haven't had the time to test this code yet - so if there is any issues let me know and I will edit this post - I want to make sure people can manage this kind of issue in the future. // All of this Server code you want to be in the intialization process - so that it is available when it needs to be called later on. if (isServer) then { // Create a Public publicVariableServer "BroadcastMessage"; "BroadcastMessage" addPublicVariableEventHandler { [_this] call pre_fnc_broadcastMsg; }; pre_fnc_broadcastMsg = { private ["_broadcastString"]; // Ensure a string is being passed _broadcastString = [_this, 0, "EMPTY STRING OR WRONG TYPE", [""]] call BIS_fnc_params; hint format["%1", _broadcastString]; }; } /* This code can reside anywhere - it needs to be accesible by all of the players so they all can request the message. You can literally transmit any string over the network - Keep in mind that there is the issue of multiple requests at once - you may want to implement a messaging queue so that each message gets displayed one after another after a few seconds delay (this can be done by adding each message to an array and then broadcasting one every five seconds while there is still messages in the array) */ if (isPlayer) then { // Message Content Here _startuf = "<br/><img size='4' img image='icons\mortor1.paa' align='left'/><br/>"; _titletuf = "<t color='#FFFFFF' size='1.2' shadow='1' shadowColor='#000000' align='left'><br/>Mortor Support</t><br/>"; _texttuf = "<t color='#58FA58' size='1.0' shadow='1' shadowColor='#000000' align='left'>A member of your sqaud is deploying a Mortor.<br/> <br/>It is marked with green smoke and chemlight. <br/><br/>"; // set our variable to send to the public variable. _transmit = parseText (_startuf + _titletuf + _texttuf); // Change the Public Variable - This triggers the publicVariablEvent Handler BroadcastMessage = _transmitString; }
  10. Hello all you terrain experts, I am working on a new map for the Arma world and I am wondering if you might be able to help me something. Considering that players are often surrounded by all wonders of particles in the new maps (Stratis and Altis) depending on the type of terrain they are standing on, is this something that is handled independently of the terrain config or something that is handled within it where the definition of materials is handled. I've looked everywhere and can't really find something to this end... also I was wondering if it might be possible to set particle emitters to go off in the distance depending on heightmap / height of terrain and wind-strength. So if wind strength is 0, emission is barely if at all present but if its 100% then it would be blowing a fair bit. As a thought experiment think a dusty set of hills, a lot like the south of Stratis, when its calm it could be insects and the like that flutter around you, but as the wind picks up dust starts kicking up from the hills and travelling along the ground. I'm really hoping someone can help me with this, I think this would add a lot of immersion in maps rather than them being flat terrains that dont seem to have too much interaction.
  11. -LTac- Imperator

    Particle Emissions from Terrain Textures

    Thanks Sealife, any word on making particle emissions in the distance by height of terrain and distance from player (or would this have to be a scripted event) ?
  12. @TacoShank: Hey, always good to see more people getting into SQF Scripting - its a frustrating (at first) but rewarding experience to see your thoughts come to life inside of a game environment. If your talking about restricting the speed of the player you may want to look at the following commands: https://community.bistudio.com/wiki/forceWalk https://community.bistudio.com/wiki/forceSpeed Otherwise, are you talking about the speed a unit plays through animations?, you may want to be more precise in the actual mechanic you are wanting to acheive in your question so we can help you with more precision. As for SQF Scripting, not a lot has changed from ArmA II to ArmA III, I would recommend checking out the following sites: https://community.bistudio.com/wiki/Category:Scripting_Commands_Arma_3 - Bookmark this, this is literally the first bookmark on my browser. I use it everyday. http://killzonekid.com/ - The Tutorials section on here is great, he provides some foundational programming concepts that are needed to understand scripting for new people.
  13. Squad name: Legion Tactical Timezone/location : North American (Open to all) Gamemode preference (eg coop or pvp): Co-Op and PvP Contact email: imperator@legiontac.com Website address: http://www.legiontac.com Short description: We are a tactical realism unit with a focus on fun, a focus on removing the politics from gaming clans and providing a solid community to grow in and learn new skills. Language: English
  14. Larrow, you are a genius! Thank you!
  15. Kunsa thanks for the response, seems like a bit of a hacky solution - but I have a feeling that anything I do in this case is going to be hacky without going to global variables - the problem is this is going to be called many times throughout a mission - I want to make it as high speed - low drag programming wise as possible.
  16. -LTac- Imperator

    Vehicle Flip Script To Share

    Sorry I didn't mean to insult you - I was actually very impressed with your script - was just offering some advice as to potentially improve it was all. Thank you for your sharing the script :) The methods I put forward would need to be tested as to the impact to the player, because adding any type of a loop that checks for things can be challenging.. you have to make sure you dont have 5 billion of them running or it can noticably slow down either the server or clients performance. Thats why I used the word simple, not to mean that it was "Simple"...
  17. -LTac- Imperator

    Delete vehicle

    If I understand correctly, this is to delete ANY vehicle? or just land vehicles? You are currently checking to see if the Vehicle is the "C_Offroad_01_F" class name, which means the code inside of the If Conditional will only happen if the vehicle that is passed by vehicle player is "C_Offroad_01_F". You need to check for a more simple type, such as "car". I highly recommend you take a read over: https://community.bistudio.com/wiki/isKindOf https://community.bistudio.com/wiki/isTypeOf and determine exactly what you are trying to do before you script it.
  18. Thanks for this Larrow, i'm going to be adding this into the little script snippets that I keep around when I need them!
  19. -LTac- Imperator

    Vehicle Flip Script To Share

    Simple solution, to an interesting problem. I was wondering though why not provide a simple check based upon a timer for each vehicle so every 3-5 seconds check the vectorUp of the vehicle, if it is equivalent to the vehicle being upside down then add the action to the vehicle rather than to a player. That way a player cant constantly spam a script unless its actually needed. Not that its going to do much damage to the server or the client. Or you could also check periodically if there's an empty upside down vehicle within a certain distance of the player, then add the action to the player. While it does add overhead to the processing cycle - It might be a way to go.. I would check performance of the two methods if I had the time - but just offering a few thoughts :)
  20. Good solution if you wan't to remove all magazines of all types but there is another scripting command that allows you to remove all magazines of a certain type that wouldnt remove say... pistol magazines. // This is okay if you need to remove every magazine of every type (including pistol) {player removeMagazine _x} forEach magazines player; // This is the best practice (it removes all magazines of a certain type - more precise - less things can go wrong here.) player removeMagazines "magazine_classname_here" I would always suggest adding the weapon's to the unit first - this way they will not have to reload (whether its AI or Players) - as the magazine will be placed in the weapon and the remaining 4 will be placed in the remaining storage of the unit (Uniform, Vest, and Backpack -- Im not sure as to the priority it decides to place them in these containers). // Adding weapon first puts a magazine in the weapon when a compatible one is added. this addWeapon "arifle_mas_aks74"; this addMagazines ["30Rnd_mas_545x39_mag", 5]; Keep on scripting it only gets easier! ;)
  21. -LTac- Imperator

    Are these server hosts reliable?

    I've used a few different server hosting options and the best I have experienced so far is Nuclear Fallout Servers (NFOServers) , they have provided me with helpful prompt customer service with great prices for great hardware. I would recommend them for web hosting, game hosting or even just a Teamspeak server.
×