Jump to content

VisibleGhost

Member
  • Content Count

    7
  • Joined

  • Last visited

  • Medals

Community Reputation

1 Neutral

About VisibleGhost

  • Rank
    Rookie

Contact Methods

  • Skype
    visibleghost
  • Youtube
    visibleghost115
  • Steam url id
    xVisibleGhost
  • PlayStation PSN
    ViSiBlE_-_GhOsT
  • Origin
    xVisibleGhostx
  1. VisibleGhost

    Demolition SOCOM Style

    Alright so it's definitely been a learning curve doing multiplayer editing with eventhandlers and messages for all clients. I will have more issues down the road I am sure but in my quest to make everything as much server side as possible (hint messages, creating items/vehicles) I have come into a snag and don't know how to begin fixing it. I execute a script in my init.sqf that runs a loop checking the state of whether or not the bomb is picked up or not and is supposed to notify everyone about any status changes. switch (take) do { case 0: { if (bomberSide == west) then { hint "BluFor have lost the Bomb."; }; if (bomberSide == east) then { hint "OpFor have lost the Bomb."; }; bombNotify = true; publicVariable "bombNotify"; }; case 1: { if (bomberSide == west) then { hint "BluFor have the Bomb!"; }; if (bomberSide == east) then { hint "OpFor have the Bomb!"; }; bombNotify = true; publicVariable "bombNotify"; }; }; This code as it stands does not work but when I remove all of case 0 it works just like it should when I'm testing case 1. As soon as I input case 0 back into the script the script doesn't run. Any help would be great. On a side note in another solution to my problem I was on I am having troubles with a variable. I read up on the whole public, local thing and know that it works just fine but not in the instance I need it to. I have a variable "bomberSide" declared in my init.sqf so that it is the full scope of my scripts. It gets updated in another script every time the bomb is picked up so that I know what side the bomber is on. This is broadcast via the publicVariable command so that it shows on all clients. In my next script (in fact the same one as above) if format my hint to tell me the name of the variable "bomberSide" it works perfect but when I try to use in a boolean equation like inside my if statements condition clause it breaks down. I have tried everything I know about scripting to figure it out. The variable is available to the script it's being called to because I can hint the variable and it is correct every time but I can't use the variable in a statement for some reason. This may be linked to my first question but I am new to sqf scripting so I am unsure and await a smarter persons input. Thanks
  2. VisibleGhost

    Demolition SOCOM Style

    You are not the only one my friend by a long shot. There are hundreds of us and only a fraction of us capable of recreating the old gameplay styles in ARMA 3. If anyone is interested in helping or know some mod or add on that may help don't be afraid to send it my way.
  3. VisibleGhost

    Demolition SOCOM Style

    I am deleting the object/vehicle that the action is attached to so I can't just change the action I need to re-add it. If I didn't delete the object/vehicle that would work but I don't have an animation or script that would make the bomb look normal on the players body (as of yet) that allows him to carry it. If someone know how to get the backpack that the bomb carrier has to behave like the weapons do when a player dies in the ARMA 3 (dropping as a separate entity) I would be grateful. Maybe this is a new function that I could exploit to achieve the same goal. I will try these later tonight.
  4. VisibleGhost

    Demolition SOCOM Style

    I will look into your suggestions but I don't think your revised version of the carry script affects my issue. The drop actions are fine since they get called by each player who picks up the bomb. What I need is the "Pick Up" option on the bomb that "has" been dropped to be available to all. Right now it is only available to the person who picks it up first. You are right on the money with what I am looking for with some way to broadcast the option to all players, but I don't know why that would need to be done since I am creating a new object/vehicle and adding the action to the created object/vehicle. Should that not be viewable by all those who come close to it? The only other way would be to give the action to each player in the server instead of the object/vehicle itself, this might overcome my broadcast issue but I don't know how to add that to everyone who is alive.
  5. Hello and thank you to all those that help with anything ahead of time. I have been playing ARMA for a couple of years now but have only taken a deeper look into editing with the release of ARMA 3. I have a moderate understanding of programming languages but don't have the experience with SQF that many here do. Most of what I have done has been a Frankenstein collaboration of code from various forums and website to make what I need work. As I have mentioned in another recent thread I am a big fan of the non-respawn gameplay style assuming that the game itself doesn't last stupid long time. I got into this style of gameplay back on Playstation 2 with SOCOM 2 and played it up until they butchered it with SOCOM 4. I prefer this gameplay over respawn as it promotes a more cerebral approach to the game than the carelessness you see with respawn. It makes one value the life lost and an eagerness to improve upon it strategically rather than on reflexes alone. On to my mission. It is not done and is only suing in-game elements to facilitate what I want to accomplish. I have seen many mods that would allow addition of a "proper" satchel package designed for this mission but I wanted to do it all on my own and "skinning" or create new models is that last thing on my list. For those that don't know how the SOCOM Demolition gameplay was played out here is the gist. - 2 sides Seals/Terrorists started on opposite sides of map - Bomb is located centrally on map with an indicator showing location anytime the bomb is dropped ie player carrying it was killed or someone dropped it - Bomb is planted by either team at opposing teams base at a predetermined location - Once bomb has been planted the defenders have a given amount of time (usually 40-60secs) to defuse the bomb - Game ends with either bomb being defused, bomb detonating at plant site or the enemy team is wiped out. This seems relatively simple given the type of game ARMA is but I'm going for authenticity. I won't go into the long revision history to get to where I am at and the different thought processes behind each one so I will just explain my current problems. Problem 1: I have said bomb pickup located centrally on the map it happens to be a object (B_Kitbag_sgg) loaded in via the editor and initialized with this... take=0; act1 = this addaction ["Pickup Bomb","carry.sqf","",6,true,true,""]; carry.sqf switch (take) do { case 0: { _sbomb = _this select 0; _man = _this select 1; _man playMove "amovpknlmstpsraswrfldnon_gear"; _man playMove "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon"; sleep 1.5; deleteVehicle bomb; _man addBackpack "B_Kitbag_sgg"; act1 = _man addAction ["Drop Bomb","carry.sqf","",5,false,true,""]; if (side _man == west) then { act2 = _man addAction ["Plant Bomb","plantBomb.sqf",[plantLocations],6,true,true,"","(getPos prize_west distance player) < 5"]; if (playerSide == west) then { hint "OpFor have the Bomb. Plant it!"; }; if (playerSide == east) then { hint "OpFor have the Bomb. Get it back!"; }; }; if (side _man == east) then { act2 = _man addAction ["Plant Bomb","plantBomb.sqf",[plantLocations],6,true,true,"","(getPos prize_east distance player) < 5"]; if (playerSide == east) then { hint "OpFor have the Bomb. Plant it!"; }; if (playerSide == west) then { hint "OpFor have the Bomb. Get it back!"; }; }; _sbomb removeAction act1; take=1;sbomb = _sbomb;taken=true; publicVariable "take"; publicVariable "sbomb"; publicVariable "taken"; deleteVehicle _sbomb; deleteVehicle arrow1; deleteVehicle arrow2; deleteVehicle arrow3; }; case 1: { _man = _this select 0; _man playMove "amovpknlmstpsraswrfldnon_gear"; _man playMove "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon"; sleep 1.5; removeBackpack _man; sbomb = "B_Kitbag_sgg" createVehicle (position _man); sbomb setPos [getPos _man select 0, getPos _man select 1, getPos _man select 2]; arrow1 = "Sign_Arrow_Location_F" createVehicle (position _man); arrow1 setPos [getPos _man select 0, getPos _man select 1, (getPos _man select 2)+7]; arrow2 = "Sign_Arrow_Location_F" createVehicle (position _man); arrow2 setPos [getPos _man select 0, getPos _man select 1, (getPos _man select 2)+10]; arrow3 = "Sign_Arrow_Location_F" createVehicle (position _man); arrow3 setPos [getPos _man select 0, getPos _man select 1, (getPos _man select 2)+13]; if (side _man == west) then { if (playerSide == west) then { hint "BluFor have lost the Bomb."; }; if (playerSide == east) then { hint "BluFor have lost the Bomb."; }; }; if (side _man == east) then { if (playerSide == east) then { hint "OpFor have lost the Bomb."; }; if (playerSide == west) then { hint "OpFor have lost the Bomb."; }; }; _man removeAction act1; _man removeAction act2; act1 = sbomb addAction ["Pick Up","carry.sqf","",6,true,true,""]; take=0; publicVariable "act1"; publicVariable "take"; }; }; The carry.sqf file was taken from another forum and I have modified to suit my purposes. The code iteself works flawlessly in single player preview and in multiplayer testing however my issue is that the moment another player tries to pick up the bomb after another player has done it once the addAction to "Pick Up" again is only seen locally for the player who originally picked it up. I need this action upon placing the satchel back down on the ground to be viewable by all players. My understanding is that the code is run locally thus only the local caller can see it. How do I get it back to the original state it was in? I was tinkering with EH and the INIT command but can't get it to work at all but even if I could it might not matter as this script is only called locally. How do I get it to show the addAction "Pick UP" in case 1 globally all the time? Problem 2: I need to have the player drop the bomb when killed. This has been problematic as from many posts reading about the new ARMA engine suggest the simple way to accomplish my goal will not work (yet!). Dead players don't return any values, more specifically I need the position of the dead player. Now either I'm passing it wrong or once the EH "Killed" is called it can't grab or pass the position anymore. If this is possible it would make me very happy. Player Init... this addEventHandler ["Killed", {this execVM "dropped.sqf"}]; dropped.sqf bomberPosition = position _this; sbomb = "B_Kitbag_sgg" createVehicle (bomberPosition); sbomb setPos [getPos bomberPosition select 0, getPos bomberPosition select 1, getPos bomberPosition select 2]; sbomb addEventHandler ["Init", {take=0; act1 = this addaction ["Pickup Bomb","carry.sqf","",6,true,true,""]};]; arrow1 = "Sign_Arrow_Location_F" createVehicle (position bomberPosition); arrow1 setPos [getPos bomberPosition select 0, getPos bomberPosition select 1, (getPos bomberPosition select 2)+7]; arrow2 = "Sign_Arrow_Location_F" createVehicle (position bomberPosition); arrow2 setPos [getPos bomberPosition select 0, getPos bomberPosition select 1, (getPos bomberPosition select 2)+10]; arrow3 = "Sign_Arrow_Location_F" createVehicle (position bomberPosition); arrow3 setPos [getPos bomberPosition select 0, getPos bomberPosition select 1, (getPos bomberPosition select 2)+13]; take=0; My work around with this has been to run a side script to constantly update the bomb carriers position every 0.5 seconds and save it to use for the creation of the dropped bomb. I again run into the problem of the is location variable being run locally and does not get back to the server (I think that's how it works) to allow the game (other script) to use it. Thank you again for reading my long winded explanation.
  6. Thank you for the link but it is a daisy chained link that takes me to 2 other threads and then I get a maintenance notice on the final link. Either way after posting once I was able to finally edit my profile and within it I was able to figure out the post count required for some things. Back to on topic, when I manage to post my help inquiries I hope some of the savants on here can help me with it. Thank you.
  7. Yes I am very interested in this as well. Many of my friends have a background in the Playstation series SOCOM before it was butchered. We cut our teeth with that before moving on. Those of us lucky enough or with enough money to spare have found a home in ARMA for some years now. I personally have been waiting for my account to allow me to post my own thread as I need help with my mission that I am making. I do not wish to hi-jack this one but if someone could tell me how long I have to wait to post my own thread that would be great.
×