Jump to content

ColonelSandersLite

Member
  • Content Count

    913
  • Joined

  • Last visited

  • Medals

Community Reputation

0 Neutral

1 Follower

About ColonelSandersLite

  • Rank
    First Sergeant

core_pfieldgroups_3

  • Interests
    Stuff
  1. ColonelSandersLite

    SightAdjustment (windage+elevation)

    Yeah, it's ready to be released, and I intend to do so soon. Trying to get ahold of nonwonderdog about signing his ballistics and scope fix stuff though.
  2. ColonelSandersLite

    Jonny´s Army Special Forces

    Unless someone beats me to it, I'll get some replacements done in the next few days.
  3. ColonelSandersLite

    No more Skoda's!

    Should probably not be used in mp. Most, if not all of the cars this is replacing are 4-seat. Most, if not all of the cars it's replacing them with are 2-seat. That will most likely cause game crashes. Nice idea, but not going to cut it for mp man...
  4. ColonelSandersLite

    Terminate not actually stopping them

    I'm assuming that the hint is displayed, meaning that the problem isn't you condition there. Just a stab in the dark here, but knowing arma, I have a feeling that perhaps terminate doesn't like to exit certain loops? Like maybe it'll exit a while loop, but not a waituntil loop. Anyways, why not just use the same condition to exit the scripts from within them, you are passing the vehicle anyways. Also, I know it's popular, but that is not how the private command is meant to be used. It's unnecessary and redundant. Private has to do with variable scope. All those variables are local to the script anyways. See the comments on the Biki section for private variablenamelist for detail.
  5. ColonelSandersLite

    Synchronise Problems

    Hello, Thank for the help. Though when I put this in the waypoint "On Act." box, I get a "Type Script: Expected Nothing" error. I don't know what to do [MyHeloName, (leader MyGroupName), desiredFlyOutHeightInMeters] execVM "CSL_HeliPickup.sqf" I know you got it working, but for the benifit of other people, the trouble there is that arma has the capability to return a value with the execVM command. This means that in the editor, you have to give it a variable to put a potential return value into. If the script returns nothing, I just use garbage as my variable name, like so: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">CSL_Garbage = [MyHeloName, (leader MyGroupName), desiredFlyOutHeightInMeters] execVM "CSL_HeliPickup.sqf" Note that programming convention says that you *never* assign "garbage" as a variable name that contains a value you actually intend to keep. Therefore, you always know that garbage is just junk.
  6. ColonelSandersLite

    Dialogs & wide screen monitors

    Click and drag the bottom right corner of the frame of the scree to resize.
  7. ColonelSandersLite

    Trying to locate HUMMV's in the editor

    Either that or you've got an addon messing stuff up somehow, but yeah, most likely wheeled.pbo is hosed. The solution is to reinstall the game. It'll keep your user profile and stuff intact.
  8. ColonelSandersLite

    Synchronise Problems

    That's the basic methodology used in the script above. The thing is that without elaboration, the basic method breaks when someone who's separated from the squad dies. Basically, the group command returns everyone that the squad thinks is alive, just like you see in the command menu at the bottom of the screen. If someone dies where no squadmember sees them, it'll take several minutes for the squad to realize he's missing. It also fails when the AI gets stuck on the helicopter. This problem is especially noticable on the mi-17 and blackhawks with rocket pods, as they like to get caught up behind the launchers sometimes. The script above accounts for both problems and solves them.
  9. ColonelSandersLite

    Synchronise Problems

    I have a pair scripts that will solve that problem for you. It actually solves *several* problems with using helicopters in arma. CSL_HeliDrop.sqf <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> // To Use: make a move waypoint for your helicopter near a H or H(Invisible) and put the following in the on activation box // CSL_Garbage = [MyHeloName, (leader MyGroupName), desiredFlyOutHeightInMeters] execVM "CSL_HeliDrop.sqf" // BEGIN SCRIPT if (isServer) then { // Get All Passed Data _chopper = _this select 0; _group = _this select 1; _flyOutHeight = _this select 2; // Stop the chopper from trying to go to the next WP _chopper LockWP true; _chopperPos = getPos _chopper; _chopperDir = VectorDir _chopper; // Once the Helo touches the ground, this will be set to true and // will prevent takeoff until squad is aboard _grounded = false; _squadInHeli = true; while {(GetPos _chopper select 2) > 1} do { // synchronise with frame rate _i = 0; waitUntil {_i = _i + 1; _i > 1}; _chopper land "GET OUT"; }; _chopperPos = [getPos _chopper select 0, getPos _chopper select 1, getPos _chopper select 2]; _chopperDir = VectorDir _chopper; while {_chopperPos select 2 > 0} do { _chopper setPos _chopperPos; _chopper setVectorDir _chopperDir; sleep 0.001; _chopperPos = [_chopperPos select 0, _chopperPos select 1, (_chopperPos select 2) - 0.03]; }; // loop until the squad has gotten out while {_squadInHeli} do { // synchronise with frame rate _i = 0; waitUntil {_i = _i + 1; _i > 1}; _chopper setPos _chopperPos; _chopper setVectorDir _chopperDir; _chopper flyinheight 0; // pull all squad members _squad = units _group; // count all squad members _squadCount = count _squad; // create a counter for those that have boarded _incount = 0; _i = 0; // loop to check status of squad mates while {_i < _squadCount} do { if ((_squad select _i) in _chopper) then { _incount = _incount + 1; unassignVehicle (_squad select _i); (_squad select _i) action ["eject", vehicle (_squad select _i)]; }; _nowTime = time; while {time <= (_nowTime + 1)} do { if (time <=5) then {_nowTime = time;}; // synchronise with frame rate _j = 0; waitUntil {_j = _j + 1; _j > 1}; _chopper setPos _chopperPos; _chopper setVectorDir _chopperDir; _chopper flyinheight 0; }; waitUntil {vehicle (_squad select _i) == (_squad select _i)}; if ((getPos (_squad select _i) select 2) > 1.7) then { (_squad select _i) setPos [(getPos (_squad select _i) select 0), getPos (_squad select _i) select 1, 0]; }; if (not (isPlayer (_squad select _i))) then { while {(_squad select _i) distance _chopper < 6} do { (_squad select _i) setPos [(_chopperPos select 0) + 7, _chopperPos select 1, 0]; // synchronise with frame rate _j = 0; waitUntil {_j = _j + 1; _j > 1}; }; }; _i = _i + 1; }; // if there are still squadmembers in the chopper, loop, otherwise, exit if (_incount == 0) then {_squadInHeli = false;}; }; // small delay for effect _nowTime = time; while {time <= (_nowTime + 20)} do { if (time <=5) then {_nowTime = time;}; // synchronise with frame rate _i = 0; waitUntil {_i = _i + 1; _i > 1}; _chopper setPos _chopperPos; _chopper setVectorDir _chopperDir; _chopper flyinheight 0; }; // Set flying height to height specified in script _chopper flyinheight _flyOutHeight; _chopper doMove (getPos _chopper); // Since all squad members are in the chopper, let it move to the next waypoint. _chopper LockWP false; }; // finished // END SCRIPT CSL_HeliPickup.sqf <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> // To Use: make a move waypoint for your helicopter near a H or H(Invisible) and put the following in the on activation box // CSL_Garbage = [MyHeloName, (leader MyGroupName), desiredFlyOutHeightInMeters] execVM "CSL_HeliPickup.sqf" // BEGIN SCRIPT if (isServer) then { // Get All Passed Data _chopper = _this select 0; _group = _this select 1; _flyOutHeight = _this select 2; // Stop the chopper from trying to go to the next WP _chopper LockWP true; // Once the Helo touches the ground, this will be set to true and // will prevent takeoff until squad is aboard _grounded = false; _squadNotInHeli = true; // loop until the squad has got in while {_squadNotInHeli} do { // small delay so the script doesn't eat all resources sleep 0.5; // if the chopper hasn't landed, tell it to do so if ((GetPos _chopper select 2) > 1) then {_chopper land "GET IN";}; // if it has landed, let the script know to keep it on the ground if ((GetPos _chopper select 2) <= 1) then {_grounded = true;}; // if the helicopter has landed and is grounded // prevent take off if (_grounded) then {_chopper flyinheight 0;}; // pull all squad members _squad = units _group; // count all squad members _num = count _squad; // create a counter for those that have boarded _incount = 0; _i = 0; _squadCount = count _squad; // loop to check status of squad mates while {_i < _squadCount} do { if ((_squad select _i in _chopper) or (!alive (_squad select _i)))then {_incount = _incount + 1;} else { if ((_squad select _i distance _chopper) <= 9 and (not (isPlayer (_squad select _i)))) then { _squad select _i playmove "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium"; sleep 4; _squad select _i moveInCargo _chopper; }; }; _i = _i + 1; }; // if there are still squadmembers out of the chopper, loop, otherwise, exit if (_incount == _num) then {_squadNotInHeli = false;}; }; // small delay sleep 5; // Since all squad members are in the chopper, let it move to the next waypoint. _chopper LockWP false; // Set flying height to height specified in script _chopper flyinheight _flyOutHeight; }; // finished // END SCRIPT
  10. ColonelSandersLite

    Dialog IDD's

    Since they're alphabetized, that would never work. Something that would probably work well though, is is ofpec generated a 4 digit dialog prefix for all exisiting and new tags, or let us pick one. Integration should be simple enough. ATM though, I'm just using a very large random number...
  11. ColonelSandersLite

    AI Discipline

    Disable engage at will, they then maintain formation.
  12. ColonelSandersLite

    isAdmin

    According to this: http://community.bistudio.com/wiki/isAdmin_%28VBS2%29 Isadmin is only VBS2. Has that changed? Try having a client use server-side dialog classes. You can't, at least to the best of my knowledge. In fact, you can't use *any* class you don't have defined on your end. Note that classes defined in a mission's description.ext are sent to each player on connection. This assumes a public release of a server administration tool which is mission independent anyways. Yeah, in the case of a private release, there's no threat on breaking the security of pbo really anyways. Any handy method will work. Personally, my goals are thus: Public release of a server admin tool addon, for the benefit of any server admin who wants to use it, which does this: Allows the server admin to restrict aircraft to registered pilots, and further, allows some aircraft to be exceptions, which anyone can operate. Parachute base is a solid example of an exception, but camel, and mh6 might also be common. Works on *ALL* missions, without the need to edit any mission.pbo files. The admins, registered pilots, and aircraft are in a server side text file, and can be updated on demand (without need to restart the server or even interrupt the current mission between updates), by anyone with ftp access. The tool comes with a nice dialog (client-side addon) that allows the server admins to alter who can fly what on the fly (pun intended). Further, the core is separated from the pilot restriction section, so that modules can be added at will with ease, even potentially by other addon makers or gogetter server admins. Anyways, I've actually achieved all of these goals, and the addon is being beta tested now. There's a couple of small bug's that we've found, which are to be fixed, but it's working just fine overall. I'm just interested in healthy debate of the best method of defining who is the server admin. There are many tools I'd like to implement besides just the pilot restriction. This ranges from weapons limitations to even something similar in concept to the real time editor maybe. Other interesting thoughts include things like forcing respawn options (if possible), administrated fire support available in any mission the admin wishes to use it in, modifying the available starting gear for all players in any mission, possibly tools to aid in catching a hacker at work or even making a script you like work for all players in every mission, such as a script to airflift vehicles using a helicopter. My basic method works like this: On the server, there is a text file with a list of who is allowed to access the advanced admin functions which is loaded via the use of call compile loadFile in the server-side addon. The server then sends this list to all players. The clientside addon checks if the player is in this list, and grants admin access if he is, otherwise it shuts down. It also has the dialog elements, and code to manipulate them built in. It is responsible for requesting a current pilot list from the server side addon, and sending updates as required to the server. The clientside addon is not necessary for players to have, and someone that has it but not admin access to the server is ignored. Again, I say that other architectures will work better for different needs, however, this one suits my needs intrinsically. Anyways, sorry if I rambled, and probably didn't really come to a point. I'm just excited about releasing this soon, and even more excited at the thought of adding a whole bunch of cool shit to it.
  13. ColonelSandersLite

    isAdmin

    For my needs, it's approved admins only UNN, not sure about his. Of course, my server admin rights are passworded, so only approved admins have the pass. Still, I want my stuff to be multi-admin friendly, so you can have 3 different admins doing things if you wanted. Sickboy: There's some troubles with a few of the things you're talking about. Firstly, in a multi-admin environment (which is what I'm setting up), each admin would have to have a unique variable. The randomisation would solve that. However, determining the randomisedVariable name on the recieving end might be a tad problematic. You could work around these things, and I'm not saying you can't, it would be a little dicey though, figuring out what came from who. On the subject of sending passwords over the network, they can always be sniffed, no matter what. The only protection you have is encryption, which doesn't really apply here. Anyways, in a strictly signed server, both methods are actually pretty valid, depending on your needs, and combining them would honestly probably just be redundant. And as you say, unsigned can always be broken easilly. Something interesting you *could* make use of maybe, but I've never tried it is this command: http://community.bistudio.com/wiki/onPlayerConnected It's supposed to return the playerID, the problem is that if multiple connected handlers are launched, only the last one is run by the game. At least that's what I read.
  14. ColonelSandersLite

    default buildings

    I'm not sure if it's still there, but in 1.08 there was an annoying bug when doing this. After the mission ended, and the mission was restarted, some of the buildings would not repopulate if you deleted their rubble. If it was a mission critical building for the next mission, it would of course mess things up. The only fix I found was to restart the server's arma between missions. Again, may be fixed in 1.14, dunno.
  15. ColonelSandersLite

    isAdmin

    I'm writing something along this lines right now, and opted out of the password scheme, and went for the admin list option. The admin list is stored in an external text file, and so can be updated on the fly by anyone that has ftp access to the server. The reason for not using a password in this case basically boils down to the fact that anyone in the know who looks at the scripts carefully can write something to grab that password within minutes, and there's really nothing that can be done about it. To compound this problem, the end user is likely to use the same password for admining the server and the admin addon. Meaning that should I have gone with this scheme, it would be easy for an ill-intentioned person in the know to grab your server's admin password and have the whole range of administration options. The other solution isn't foolproof either though. One obvious way of spoofing it is to join the server using the name of a known admin. If the server is running unsigned addons, you could also modify the client-side interface to always grant you admin status regardless of name. The damage caused by these methods is contained however, as it only gives the errent player access to the admin functions of the addon, but not the built in server commands, ftp access, etc. An alert admin should be able to catch these cases quickly, and give them the ol' kick-ban.
×