Jump to content

Chris07

Members
  • Posts

    339
  • Joined

  • Days Won

    5

Everything posted by Chris07

  1. Much appreciated my man. What were some significant bugs that were present in the original version? It's nice to know what's caused by me and whats to be expected and possibly fix.
  2. I'm trying really hard to move 100% to blender and get ZModeler out of my life so I have begun updating this script to be compatible with Blender v2.8+. Currently testing using Blender 3.0...which is amazing btw...and have import working. Working on export functionality and hope to eventually implement things like model compression/decompression and bones/animation. We'll see. The animation part will be a challenge. I'll post an update as soon as I get the base functionality this had before working.
  3. I would be very interested in knowing how you figured out/reverse engineered the eft format.
  4. A literal pain in the behind, but definitely doable. I have a similar feature planned. As of right now, the best way I can think to implement this is to name the squad vehicle and the paramedics so that they are linked. Vehicle Name: "Squad_51" Paramedic 1 name: "Squad_51_p1" Paramedic 2 name: "Squad_51_p2" When the ambulance transport command is selected, it checks to see if "Squad_51_p1" or "Squad_51_p2" are passengers. If one is, then it checks to see if the other is in vehicle "Squad_51". If the other is in the vehicle, both go to parking spots at the hospital lights and siren. If the other paramedic is not in the squad when the transport command is triggered, then the command is terminated and a message displayed stating that you can't leave until the squad has the other paramedic in it. This is so that the squad doesn't leave without a driver/leave the other paramedic behind. If neither paramedic is onboard, then the ambulance transports as normal. As for truly "following the ambulance" , that's a little harder, and I'm not exactly sure how I'd do that. One possible work around is add a small delay between the ambulance leaving and the squad and hope the the squad falls behind the ambulance most of the time? The squad leading the ambulance is not all that uncommon IRL, so it's not exactly super important to ensure the squad always follows the ambulance. That's how I initially plan on implementing it. I'll probably revise it as I go, but that's the basic idea.
  5. If you can't seem to fix it, rest assured the the shadow is limited to ZModeler. When you export and place the model in game it will not have a shadow.
  6. I'm not sure. I've heard of this happening but I'm not 100% sure as to why since I've never encountered this issue. By chance, do you and the other person have different versions of the game? Like one of you has 911 First Reponders and the other has EM4 Deluxe?
  7. Ok. Once I can get verification that the random CTDs stop, I’ll see if I can add logic to prevent collisions with existing markers and objects. Hopefully that should fix that problem.
  8. Hello everyone. I am attempting to put out a patch for this mod's parking script. I may have found the issue but I need some of you to play with it for a bit and tell me if: 1. You get a CTD (My priority to fix) 2. It starts behaving really weirdly I've played about 30 minutes without a CTD but that's not always reliable. So please. Try and break it! If you get an error or CTD I NEED to know the following: 1. What exactly did you do that caused it to CTD? Rotate the marker? Bring up the marker by CTRL+R Click? 2. Upload your log file (I put a lot of debug information there to narrow down the origin of the error)! 3. Did you notice the script act oddly before it caused the CTD? If so, how so? 4. If you have a video of any weird behavior, that may be helpful as well! I would really like MULTIPLE people to try this out, that way I can see if there is any pattern to the CTD or errors. Ultimately I'm going to need to rewrite this script for any future projects. This implementation is a bit too ambitious/complicated and has been a real nightmare to debug (about 16+ hours of headaches). My goal is to try and at least fix this. If you're still getting CTD I'm going to have to re-implement this script with a rewrite. The patch to test is attached to THIS post. Simply replace the included scripts and play as normal. Northview - South County v2.1.0.zip Northview - South County v2.1.0.zip
  9. I guess there’s only one way to find out! Time to experiment!
  10. For the sake of academic completeness, I'd like to add that lines that begin with "A" are the ones that indicated animation data. "P" lines indicate polygon data. I have these graphics I made a while ago for a brief tutorial on the "anatomy of a v3o" file that I never got around to completing. I figured I'd just drop these here. "D" lines indicate a vertex. The image below says "see explanation". That explanation is as follows: "D" lines are numbered 0 through the number of "D" lines minus 1. If we have 30 vertex points (30 "D" lines), then each "D" line is numbered 0 through 29. So the first vertex ("D" line) is 0, the second is 1, the third is 2, the fourth is 3, the fifth is 4......the twenty ninth is 28, and the thirtieth is 29. That "number" (0-29 in this example) is what I mean by the index value. so in the image, that polygon is made by connecting the 225th, 216th, and 226th vertex ("D" line) in the v3o file. Perhaps someone may find this information useful for some reason.
  11. Keep your questions public, if you can. 1. In order help anyone else that might be having similar issues, and so that others may learn from these problems as well. 2. So that others can help you and you’re not just waiting on me.
  12. I'm assuming you are attempting to have 1 of 4 possible sirens play when the siren is activated, which is selected at random? Get Ready! Super long answer that's designed to teach instead of just giving you an answer. I have a soft spot for people actively attempting to learn to script. Lets focus on the siren selection first, then we'll worry about the sound not following the vehicle problem later. Deal? Lets start with this part of the code first: if (random == 0) { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren01.wav", CarPos, true); } else { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren02.wav", CarPos, true); } else { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren07.wav", CarPos, true); } else { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren08.wav", CarPos, true); } I'm sure you may be aware, but for the sake of others, let me explain something. If-Else statements work by evaluating the condition statement in between the first set of parentheses as either true or false. if ( CONDITION TRUE ) Do something else Do something else If the statement next to "if" is true, then the code block (designated between an opening "{" and closing "}" set of curly braces) immediately following it is executed. Any subsequent "else" statements are ignored and skipped. If the "if" statement is false, then the preceding code block is ignored and instead the "else" code block (again, designated as being between an opening "{" and closed "}" set of curly braces) is executed. As a rule, every "if" statement may only have one else statement ("else if" statements don't count). Having more than one pure "else" statement leads to unpredictable behavior, or usually, an error. What you have in your code is an if statement with multiple "else" statements following it. In most programming languages this is not allowed and would result in an error. EM4, on the other hand, seems to have forgiven you for this and just executed all the else statements as if they were one giant code block. So we need to fix that...later...because we have another problem on our hands...the way you are generating your random selection between the 4 sirens. int random = Math::rand()%2; This is self explanatory. You're generating a random number and assigning it to a variable. This is correct. What you may not realize is that you are only generating 2 possible random numbers: 0 or 1. Math::rand() is a built in function that will generate a random number between 0 and some very large number. In your case, you only need to pick between 4 different numbers (1 number for each siren option). To do that we use math. The "%" is a mathematical operator called modulus. It gives you the remainder of a division. Division int a = 9 / 3; //This equals 3. ( 9 divided by 3 equals 3 ) int b = 10 / 3; //This actually equals 3. The decimal is dropped since its being assigned to an integer variable (which only stores whole numbers). 3 goes into 10 3 times with a remainder. Modulus int a = 9 % 3; //This equals 0, since 3 divides into 9 evenly and thus has no remainder. int b = 10 % 3; //This equals 2 since 3 goes into 10 3 times, but has a remainder of 2. Back to your problem: int random = Math::random() % 2; random will equal the remainder of whatever random number is generated divided by 2. This means that your options will only ever be 1 (if an odd number) or 0 (if an even number). You need to change this. Instead, you want to randomly select between 4 options so lets change it to: int random = Math::random() % 4; Now, no matter what number is generated, you'll only have 4 possible options: 0 (if the number is evenly divisible by 4), 1, 2, 3. Now that we have the script picking a siren sound, we need to fix our broken if-else statement so the proper one plays. Back to the if-else So we have a random number selected (0, 1, 2, or 3) and we want to play a different siren for each selection. Lets update our if-else statement to be correct: int random = Math::rand() % 4; if (random == 0) { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren01.wav", CarPos, true); } else if (random == 1) { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren02.wav", CarPos, true); } else if(random == 2) { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren07.wav", CarPos, true); } else { soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren08.wav", CarPos, true); } - The first "if" statement asks: Is my random number 0? If so, play siren01. Otherwise, proceed to the "else" statement. - The first "else" says: Ok, the random number wasn't 0. Is the random number 1? If so, play siren02. If not, proceed to the next "else" statement. - The second "else" says: Fine, is the random number a 2? If so, play siren07. If not, proceed down to the next "else". - The third "else" doesn't ask a question (no "if" statement). It just says: I don't care what the value of the random number is. It's not what the above statements were looking for so I'll just play siren08. In this case, if the random number was 3, it would execute the final "else" statement since it is not 0, 1, or 2 which are being looked for in the preceding "if" and "else-if" statements. So after all that, it should make a proper selection. Try this and fix your script, then report back what else needs fixing. This was long winded! I apologize! I want to help you and others learn the basics of scripting. It is NOT an easy skill to learn or develop without some sort of programming background. I admire your effort to do something yourself instead of just asking for help making something without actually putting in the effort to figure it out. Scripting is probably among the rarest skills in the community, and perhaps one of the most sorely needed, so anything I can do to help develop a new scripter is a good thing IMO.
  13. We've got something we think will be pretty good in the planning stages right now. Luckily we've been building up models and stuff for years to do this project. As per my philosophy, the world will only find out what it is exactly when we are near release, which at this point, is very far off. 1. If someone can find the cause I will gladly fix it, but I've already invested HOURS into cleaning up the code and debugging it, but can't quite figure it out. If you want to see something fun, I'll show you a video of an issue the script used to have but has since been fixed. It might seem like a simple script, but it took a lot of time with trial and error to get it to a "workable" point. It works most of the time, but it sometimes just starts acting crazy. I've played for over and hour without an issue before, and I've also played for 5 minutes and had a CTD, so it's a real head scratcher that I just don't have the time to revisit right now. If someone comes up with a solution or can pinpoint the cause, I will definitely show my gratitude. 2. We removed the tiller completely, so I would have to re-add it. Is it possible? Yes, but the parking script wasn't written to accommodate the tiller, so theoretically I could make it an optional unit, but who knows how it would behave with the parking script. Additionally, there is another script in our current working copy of the mod that wouldn't quite work well with the tiller. 3. The new truck SHOULD be callable. Out of convenience and mostly laziness, I just swapped it with the Tiller. If you click on the tiller quint icon on the list, then it should show the ladder truck. , Let me let you in on a little secret. No sooner had we discussed, decided, and announced that this was the final release, losangelesi was already making edits and throwing new crap into the mod. I kid you not. I just went on this whole PR spiel about "that's it. We're done." and he was already working on it again. Yea, that's right @losangelesi, I'm calling you out! Since I can't possibly get mad at that idiot, I jokingly now call our working copy of the mod "Northview: South County, losangelesi's Cut" (In reference to a "Director's Cut" of a movie). As of right now he's using it as a test bed for testing new objects and such for our next project, but he did express the possibility of releasing it well into the future. The truth is, I don't know what the future will hold, so I won't say that we will or will not release an update. What I can say is that there may or may not be a growing list of things we need to fix or change if we came back to this. The bottom line is, treat this as the final update, that way you can be pleasantly surprised if we ever release something else.
  14. The crashing is something I spent days trying to fix. It's better now than it was...let me tell you. I did notice that before it crashes there is weird behavior that if noticed, can allow you to save your game from crashing. Typically, you'll notice that when sending one vehicle to park, another goes instead. Then when you try another vehicle, that same one tries to park again. If you notice this, send the vehicle that keeps trying to park instead of the intended one back to HQ and call it out again once it disappears. This fixes the issue and allows you to continue playing. Its really weird. I've played for over an hour with no problem, and have played with that problem appearing pretty quickly. I can't quite get to the bottom of it. Maybe someone else can. Thanks for the feedback.
  15. Hello everyone! After a long...long...long...time...losangelesi and myself decided to use a little (more like a lot) of our valuable spare time to create a new update for the South County mod! In summary we've made the following changes: 1. The biggest complaint we've gotten about the mod is that you have to call in units one by one on SINGLE PLAYER freeplay! We heard you, and I have written an autospawn script for single player freeplay, so now your vehicles will spawn and be fully staffed in their stations ready to go when freeplay loads! Be aware that your personnel will exit and enter their vehicles at the start. This is normal. Give them the 2-3 seconds to complete this and you're all set! 2. We received a lot of feedback that players were mostly against using the Tiller "Quint" and often replaced it with a ladder truck instead. With this and the buggy multiplayer performance in mind, we made the decision to remove it completely. We have since replaced it with a new ladder truck that Losangelesi put his heart and soul into! (Thanks to Firequi and Itchboy for their model assets!) 3. We removed the water tanker and replaced it with another standard Engine. We felt that without a limited water supply script, the tanker was a useless vehicle. With the Quint gone, we felt that another pumper apparatus was needed, so we created Engine 283. If you want, you can bring the tanker back by making a single edit to a script file (found below). 4. To give things a little spice I decided to try something new. Truthfully it's not new, but it's something that I haven't seen in any US themed mods yet, and that's vehicle parking. Watch the video change log for a demo. Note that I wrote this from scratch, so it may not be 100% perfect, but I tried to make it as stable as possible. In my testing it's been fairly stable. Also it's not a miracle worker, so don't expect to parallel park your ladder truck in a tiny space. To start Parking Mode, hold CTRL when clicking to move your vehicle. A marker will appear which you can move by right clicking or using the commands. To rotate the parking marker, hold CTRL and right click and the marker will rotate towards where you clicked. LEFT CLICK + RIGHT CLICK sends your vehicle to park. Holding shift while telling you vehicle to park sends it there without lights and sirens (if they are set to activate automatically). Alternatively you can tell you vehicle to park by hitting the green check mark on the command panel. Note that the move arrows on the command panel are in reference to default camera rotation so you'll have to play with it. CTRL click the buttons to move the vehicle in smaller increments. Performance in multiplayer is relatively untested so use at your own risk! 5. We made some changes to paths and the map to facilitate better path finding by vehicles. 6. I removed the bus accident on the bridge event in an attempt to cycle some other calls through. 7. We fixed a few existing bugs (too many to count). 8. Lincoln Heights is cleaning up a bit. It's still pretty ghetto but it's slowly getting better. 9. We've tweaked some settings and lights on some of the vehicles. 10. We've updated a lot of audio sound effects Now for a barrage of screenshots: The new state of affairs at Station 81. The Quint is gone and a new ladder truck has taken its place: Say hello to Truck 81 (Model by Itchboy - cab & Firequi - Body. UV Map, model splicing, lights, and edits by losangelesi) The new parking script in action: Please note that the campaign and deluxe freeplay are unsupported and in all likeliness are broken. Please use this mod for freeplay only. Thanks. So with that we have a little bad news: Unfortunately, we also decided to end any further development of this mod. We both felt that this modification has served its purpose and has grown enough for us to be satisfied in leaving it as it is. We appreciate all of your feedback and hope to one day create something bigger and better than this. I can tell you one thing for sure...whatever we come out with next will NOT be a glorified LA Submod. Instead, we hope to come up with some original content made from the ground up. Enjoy v2.1! DOWNLOAD LINK IS ON THE FIRST PAGE! How the heck do I use this new parking script thing? Here's a quick demo/tutorial for you. It's easy! Video not yet uploaded I can't save my progress in Police/Fire/EMS mode! Worst mod ever! The way we were able to implement two different modes was to replace Freeplay with Fire/EMS, and Challenge mode with Police/Fire/EMS mode. Unfortunately, the game is hard-coded to not allow saving of "Challenge Mode" progress, hence it is not possible for us to enable saving of Police/Fire/EMS mode since it is a limitation of the game itself. Sorry! How to replace E283 with the tanker: 1. Go to Scripts / Game / Command / SoCoStartup.script 2. Open this file in a text editor 3. Search for: const bool replaceTanker = true; Replace it with: const bool replaceTanker = false; 4. Save & Exit! How to staff the ambulances with two paramedics instead of a stretcher crew by default: 1. Go to Scripts / Game / Command / SoCoStartup.script 2. Open this file in a text editor 3. Search for: const bool spawnStretcher = true; Replace it with: const bool spawnStretcher = false; 4. Save & Exit! I don't like the staffing of the auto-spawned vehicles! How do I change them? 1. If you are proficient with editing scripts, you can figure out how to change staffing in my SoCoStartup.script. It's commented well and pretty easy to figure out. 2. If you don't like messing with scripts then send the vehicle back to HQ and call out a new one with your preferred staffing. 3. Disable autospawn and go back to the old way of spawning vehicles one by one. To do this simply delete: Scripts / Game / Command / SoCoStartup.script file
  16. Unfortunately I leave for Medical School in July and will have no time to continue work. EM4 is over a decade old and given the current state of the aging community, it really wasn't seen as worth it for me to invest what little free time I have left before I spend the next 4-8 years of my life learning the art/science of medicine. I really am sorry to disappoint. This is kind of why I stated in one of my posts that I don't normally believe in showing off pre-release content. I really hate for this to be another RCMP type thing, although that mod had a MUCH bigger following. It's really a shame, I had high hopes for this mod and really wanted to do it, but being the sole developer on the scripting end of things (Which is arguably the biggest and most complex part of the whole modification) I just didn't have the time to commit to bring it to market.
  17. Unless someone has written an import script for the v3o format, no. v3o is not a standard format or widely used so not much else supports that format except zmodeler.
  18. ZModeler can do it, but format conversions are not always perfect so you may get a distorted or deformed model after the conversion or on the way back to v3o.
  19. Interesting...if it continues to be an issue let me know and I'll initiate the conversation Lol, totally misread that post. Disregard
  20. Akamai I know is a big time CDN (Content Distribution Network) company. Essentially they rent server space to allow big websites (think eBay, Facebook, etc) to serve up files to users. Essentially these websites pay Akamai to have copies of their website/files on servers around the world so that when you visit their website it will load quickly (since the content is theoretically pulled from a server that is geographically close to you). After a tiny bit of research it appears that Akamai also allows companies to serve files via P2P (peer-to-peer), which NetSession facilitates. At some point you downloaded a program which uses this method of delivery. The program was probably small and it installed NetSession which then proceeded to download the actual program you wanted. The file was not server from a server, but from other people running NetSession. Once done, and if left running, NetSession then uses your idle bandwidth to further the network. When someone else downloads the program they get part of it from you "eating" your bandwidth. Theoretically NetSession should throttle back when you use the computer but it will always leave some over head. Long story short, remove it.
  21. Not quite dead yet. I thought I would share some information so as to explain the apparent lack of progress with this modification. I work near full-time in EMS, I volunteer teaching first aid and CPR in the community, and on top of all of that I've applied for Medical School and am in the middle of the application cycle. Work is resuming shortly on this mod. I hope to push and get a release for you ASAP, but know that I always put quality over the speed of the release. To all those who expressed interest in helping with this modification I apologize for not getting back to you. I've sent you all messages. To those currently interested in helping, shoot me a message. I'll get back to you ASAP and I won't let your messages get eaten by my inbox like the others! To the rest of you, thanks for your continued support and patience. This is no easy feat.
  22. When posting script files, please don't throw them in a CODE box on the forum unless its reasonably short. 2000+ lines requires a LOT of scrolling. Use http://pastebin.com/ I found one thing: Line: 387 if(12.GetNumObjects() > 0) it's written 12.GetNumObjects() with a "one" when I'm almost positive you meant to put l2.GetNumObjects() with a lowercase "L". In text editor fonts, "1" and "l" look very similar. Since variables cannot start with a number the script freaked out. The only other thing I know causes that error is if you are missing a curly brace, which I don't think is the case here.
  23. I will look into adding a GUI to this. Gotta see if I can find the project file.
  24. ...and a third of fourth part coming when I get the time to make it.
  25. Thanks for the feedback. Right now my problem is finding time to make these videos. It's takes an awful lot of time to make and finding quiet time to do it has been a real challenge lately. As as to your feedback I tend to go right into it and proceed quickly because I don't want the videos to be too long. In reality, some of these tasks take over an hour. While I'd like to show you every single step, the videos would be too long. I personally can't watch a single video for over 45 minutes, and I don't think many others can. I've always just assumed that a user could control their own pace by pausing the video/rewinding as necessary. I try to show everything and usually skip over parts that are 100% repeats of what was previously done since most work is just repetitive. I personally feel that I don't prepare as much as I should and that my hinder the fluidity of the videos. I'm working on that but it adds to the amount of time I have to find to make these videos. My videos are not really meant to be "big picture". I like to focus on small tasks with the thought being that if you can do the little things, you can piece together a mod.
×
×
  • Create New...