Jump to content

baddo

Member
  • Content Count

    1295
  • Joined

  • Last visited

  • Medals

Posts posted by baddo


  1. The move ahead of Räikkönen (ahem, not Raikonnen) in Brazil was nothing spectacular, quite normal overtaking to my eyes. Great drive from Schumi anyway, it was fun to watch how he climbed back to the top. I'm glad Schumi understood to retire when he is still alive. He's got so much to do in his life and by taking yet another season of F1 could've ended his life, not worth the risk when he already won it all.


  2. benetton williams

    Well not quite Benetton Williams. You mean just Benetton, let's not combine two different teams into one, OK?

    Great driver, but. Unsportsmanship behaviour too often. I will always remember Schumacher the best from what he did for Damon Hill and what he did for Jacques Villeneuve. Just to mention two most notable incidents. And especially what he did at Monaco GP this year... that was absolutely ridiculous, he parked his car in the middle of the track to block others!

    Thanks for the great races against Mika Häkkinen, though. You put up a great show with him. I will always remember how Schumacher stalled his car on the grid in last race of 1998, when the nerve pressure was at the peak. The other guy didn't lose his nerves when it was important.


  3. Quote[/b] ]Check out move ai to 2nd floor positions in a bulding at OFPEC, there is some more info about using the indexed positions in buildings. Mainly the buildingPosCount function which can be used to find out the number of the indexed positions so you don't need to know that in advance in your scripts. Combining that with nearestBuilding, you can make a script which looks for suitable buildings and then orders AI soldiers into them.

    I didn't use buildingposcount (have to look into that function) but my AI script orders AI into buildings. Open the getcover.sqs file to see how its done, it's pretty easy really.

    Link to relevant thread with download link

    You can improve your script by using the buildingPosCount function.


  4. Hi

    Check out move ai to 2nd floor positions in a bulding at OFPEC, there is some more info about using the indexed positions in buildings. Mainly the buildingPosCount function which can be used to find out the number of the indexed positions so you don't need to know that in advance in your scripts. Combining that with nearestBuilding, you can make a script which looks for suitable buildings and then orders AI soldiers into them.


  5. It's great that some people are annoyed about Lordi being at Eurovision - it is about time to give the whole competition a strong shaking, and a couple of slaps to the faces of people who take Lordi too seriously and accuse it for being related to the devil himself. I haven't ever been a fan of the whole comedy show. What I have seen during the years have mostly made me want to kick the television into little pieces. It's always the crappiest bands who want to be in the Eurovision contest. At least in Finland but seems like it's the same in many other countries too, according to what I saw last night. The good bands don't bother and it's no wonder.


  6. This inside-a-file search talk reminds me of how wonderful program gnu grep actually is. Probably the most useful program I have ever thumbled into. It can be installed into WIN32 also like dowloading it from here, although I have not tried it on WIN32 myself.

    BTW, according to Windows XP my computer has a DVD drive (in addition to the CD/RW drive) but I have been unable to locate it on the computer case biggrin_o.gif I tried to delete the reference but it always comes back. Isn't Microsoft so optimistic company or what! smile_o.gif

    What comes to XP or 2000: cant' say much about 2000 because I never used it at home. I never had much stability or usability problems with XP. I think most of the crashes I have experienced in XP have been the fault of 3rd party apps like the damn Firefox browser which crashed several times a day with buffer overflows everytime. Firefox had to be deleted for good from my computer, I can't allow that many buffer overflows while surfing, it's too big a security risk. As far as I know from what I have read, Firefox still has plenty of buffer overflow bugs no matter how much people advertize it here on their signatures. Internet Explorer has never crashed on my XP installation. No I don't use it anymore either, I prefer some other operating system.

    Windows XP installation can be slimmed down by somewhat for example with nLite but I think that's too much of a hassle for a regular user, one needs to be interested in the details to bother with this kind of tuning and most users are not. I would like to see options during Windows installation where we could choose exactly what components to install and then the installer would do it cleanly and safely without requiring hacks like nLite etc. for the job.


  7. This was submitted to OFPEC by one of our staff members if I recall correctly. I don't remember who it was exactly but anyway, here it is:

    Quote[/b] ]

    A list of all music files (.ogg) used in OFP and their duration times.

    Music files contained in DTA\Music.pbo

    --------------------------------------

    01.ogg 4:18

    02.ogg 3:20

    03.ogg 3:27

    04.ogg 2:30

    05.ogg 2:34

    06.ogg 2:58

    07.ogg 2:58

    08.ogg 2:12

    09.ogg 1:03

    10.ogg 1:15

    11.ogg 0:53

    12.ogg 0:59

    13.ogg 0:37

    14.ogg 0:19

    15.ogg 0:56

    16.ogg 1:01

    frost.ogg 1:09

    Mixdown.ogg 0:16

    Seventh_decide.ogg 3:57

    Seventh_iamgonnafly.ogg 4:04

    Seventh_lifeless.ogg 4:31

    Seventh_overdose.ogg 4:22

    Music files contained in Res\Addons\O.pbo (O\Music)

    ---------------------------------------------------

    res01a.ogg 1:05

    res01b.ogg 0:33

    res02.ogg 2:57

    res03.ogg 0:46

    res04.ogg 1:06

    res05.ogg 1:06

    res06.ogg 0:36

    res07.ogg 0:45

    res08.ogg 1:02

    res09.ogg 1:19

    Res10.ogg 1:08

    Seventh_Darken.ogg 4:25

    Seventh_My_Life.ogg 4:07


  8. Quote[/b] ]Hey people, why don't we just wait until the game has been released and judge it only then after trying it out ourselfs? Wouldn't that kind of judging be more fair? wink_o.gif The shady, blurry and shaky visitor-made video discussed here shows only very little of the game so don't jump into conclusions just yet, please.

    No mate because its very unlikly that something as major as ai could be easily fixed in a patch. So its better to point out now what appears to be wrong and that were unhappy with, now before the game is finished.

    The ai currently appears very disapointing seems to have almost no improvement sad_o.gif

    I think they are pretty much done with the engine used in Armed Assault regarding what kind of functionalities it will have and how the AI behaves. Fixing all the bugs they have made into it will not be easier at all if they would now, close to release, start and modify the engine drastically or even worse, by adding new features. Development of the engine must be freezed at some point so at least some of the bugs can be eliminated. Sorry people but that's just a realistic point of view.

    Minor changes to the engine and bug fixes are realistic changes they can make now, but not more. If the release date is close.

    Edit: ...or what, BIS? biggrin_o.gif


  9. colt, well said I agree with you.

    Hey people, why don't we just wait until the game has been released and judge it only then after trying it out ourselfs? Wouldn't that kind of judging be more fair? wink_o.gif The shady, blurry and shaky visitor-made video discussed here shows only very little of the game so don't jump into conclusions just yet, please.


  10. According to my tests getMarkerPos and markerPos return the height value, it will just be zero. So it is not a bad value.

    This is what I wrote to some other forum about position arrays as arguments and return values:

    <span style='font-family:Courier'>FUNCTIONS WHICH TAKE POSITION AS ARGUMENT TESTED IF THEY

    ACCEPT BOTH 2D AND 3D POSITION TYPES.

    FUNCTION:      3D POS. WORKS:   2D POS. WORKS:  NOTES:

    *************************************************************************************

    camCreate           X                   X

    camSetPos           X                   X

    camSetRelPos        X                           Error Generic error in expression

    camSetTarget        X                   X

    commandMove         X                   X

    commandWatch        X                   X

    createUnit          X                   X

    createVehicle       X                   X

    doMove              X                   X

    doWatch             X                   X

    mapAnimAdd          X                   X

    move                X                   X

    nearestObject       X                   X

    setMarkerPos        X                   X

    setPos              X                   X

    setWPPos            X                   X

    To be absolutely sure, I tested all commands which return a position array:

    buildingPos      

    getMarkerPos      

    getPos          

    getWPPos      

    markerPos      

    onMapSingleClick

    position

    waypointPosition

    All of the above commands return a 3D position array.</span>

    Tests for the return values were a simple hint format ["%1", command] which always gave a 3D position array to the screen so the height value was in the returned array in every case. I can't see any reason why the height value returned by getMarkerPos could not be used. It is zero but it still is a perfectly valid value which can be added to and multiplied etc. the normal stuff you can do with numbers. I tested the code from the first post by creating a couple of shells 50 meters above a marker and it worked fine, nice explosion. The code was exactly the same but the classname was changed to "Shell125".


  11. An example of tactics used by a small army facing a much bigger army with overwhelming resources can be studied from Battle of Suomussalmi, fought between Finnish and Soviet forces in Winter War. A small Finnish army faced a much bigger and better equipped army which was practically slaughtered because of lack of flexibility and carrying too much heavy equipment with them. The problem of carrying a lot of heavy equipment against much smaller troops can be seen in today's warfare too. Common denominators to guerrilla warfare include fighting a much bigger enemy with flexible and fast moving tactics and targeting supply lines. Also Soviet field kitchens were targeted.

    Learn more about the Battle of Suomussalmi and about the Winter War from the following links:

    http://home.interserv.com/~tazio/7dSuomu.htm

    http://en.wikipedia.org/wiki/Battle_of_Suomussalmi

    http://en.wikipedia.org/wiki/Winter_War

    Note that the Soviets did take their lesson and improved their tactics making them a tougher opponent later in World War II.

    There is also a Wikipedia article about Guerrilla warfare:

    http://en.wikipedia.org/wiki/Guerrilla_warfare


  12. First of all:

    I highly recommend you not to call scripts directly and unchecked from fired event handlers!

    This is because scripts get loaded into memory each time they are called, which will really slow down performance on automatic rifles.

    Rather use a function to check whether the right weapon is fired etc. and execute a script depending on the check, so the scripts aren't loaded everytime the unit fires a round.

    I second that.

    Also note that in many cases you can write all needed code straight to the event handler itself so there is no need to call a function or execute a script. I think that this is the most efficient way to use event handlers because the code in the event handler must be stored within the event handler itself and thus jumps around memory locations will very likely be reduced.


  13. Hmm, I'll just throw a working example for you.

    This is part of a script which creates bloodsplats around a position. The bloodsplats will be created to a square area around the position.

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

    _tmp = "FDFbloodsplatB" camCreate [(getpos _obj select 0) + _maxdist * ((random 2) - 1), (getpos _obj select 1) + _maxdist * ((random 2) - 1)]

    Notice that there is only 2 lines of code in this example.


  14. Side-Note: There has been a few people in here now looking for very basic info that OFPEC usually provided very cleanly. I think I am starting to believe we need a bit more redundancy... more websites mirroring this type of info.

    Don't get me wrong... I love OFPEC for what it does, but man... the fact that the site is down is having a huge impact on the community like none I have ever seen before...

    In the future it will be much harder to "bring" OFPEC website down for this long time, because backup facilities will be greatly improved from what they have been. Without a very generous donation this would not have been possible. People, make sure you donate for OFPEC once the website gets back up and running wink_o.gif I will do it for sure.

    I think there is no need to duplicating what OFPEC has. Instead the community could ensure that OFPEC has all the best resources and up-to-date information by contributing as much of their knowledge as possible to the website smile_o.gif If you are an author of a useful tool or have written tutorials but didn't submit them to OFPEC, please take the little time needed to submit them to OFPEC. That's the best way the community can help OFPEC and the best way OFPEC can help the community. Remember: by the community, for the community.

    In my opinion, there should be more beginner-beginner-level tutorials at OFPEC. That has to change in the future.


  15. Hello Nightjay0044!

    First, I want to make sure you know that you can also execute a script like this:

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

    and then anywhere in your script where you need to access the player, you would need to use only _this. I told you this because I don't want you to start writing [player] exec "script.sqs" and then in your script _unit = _this select 0, which would be quite pointless (to create an array for only one variable).

    Hmm... then a little bit of advices... the best way to learn more advanced scripting is to sit down and start experimenting. You could simply just take the official comref and start reading through it, testing commands in the editor when finding an interesting one. What do they do, what you can use them for. That's how I started. I didn't create actual missions for a long time, I just experimented with the scripting commands. Don't think about creating a big and amazing mission right away, it is not a realistic goal. Just keep testing different things in the editor like these: how do you make a group eject a chopper, how do you get a boat to transport a group over a river et cetera. Test these things and do not even try to create a mission around it. Because if you want to learn scripting, it's not important to design a whole mission. You will just feel depressed when you notice that it's not that simple and fast thing to do. Keep your goals small and you will feel that you have succeeded in something. After that it's much easier to move on into more difficult things, like designing a mission.

    Also it can help alot if you take a peek at other people's work, how did they do it? Take a mission which has artillery and nice cutscenes, unpbo it and go through the code. Make the same stuff into your own mission, starting from the more simpler things. Don't be afraid of making mistakes, I do them all the time and so do others despite of what they might like you to think.

    Also take in notice, do you really need scripts? In my opinion the less stuff you have inside your mission folder, the better. If your mission still has everything needed to make the players enjoy that is.

    Cheers,

    Baddo


  16. Let's shorten it a bit:

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_this - (_this * 2)

    Then call it without the brackets around the number:

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">hint format ["%1",37 Call PosNeg]

    Explanation: you already have _this variable holding the number, no need for another variable _n.


  17. Dunno if this helps at all but I'll tell it anyway because it is related to your problem.

    In GIMP one needs to disable option "RLE Compression" when saving a targa image to be used in TexView. Otherwise the alpha channel won't work. The option appears when saving a new targa file or using "Save As" for an old targa file.

    Might be something similar with Paint Shop Pro. I recall there was an alpha channel tutorial using Paint Shop Pro somewhere, possibly at OFPEC.

    Edit: found the old tutorial by toadlife. I'll just copy&paste it here for eternity:

    Quote[/b] ]Editing Alpha Channels with Paint Shop Pro

    by toadlife - (toadlife@hotmail.com)

    This tutorial was done using Paint Shop Pro 6. There is a misconception that Paint Shop Pro is not powerful enough to do advanced texturing for OFP add-ons. This couldn't be farther from the truth. Paint Shop is a powerful program that costs a fraction of what that other graphics program costs. People assume that it is only good for simple graphics editing because of what they read.

    This short tutorial assumes you already know:

    * How to use texview

    * The basics of Paint Shop Pro and image editing in general.

    * How to convert images using texview

    * How to swap textures in OFP models

    About TGA (.tga) files

    TGA files feature a background and an alpha channel. When you open a TGA file up using PSP, the picture will appear all black. This is the "background" part of the picture. The background is all transparent, and isn't seen when being displayed in the game. The alpha channel is the part that will be shown in the game. Think of the background as being a window and the alpha channel as being paint that covers parts of the window. When you look at the window you can see through everything except the painted part.

    Getting Started

    Open up Paint Shop Pro and open up the TGA file that you want to change. In order to view the alpha channel, go to the "Masks" menu and select "Load from alpha channel". Once you have the Alpha Channel loaded, move to the "Selections" menu and click "Select all", then copy and "paste as new layer". This copies the current alpha channel to a new layer, which you can freely edit. If you don't do this you will only be able to edit the painted part of the alpha channel.

    Editing the Alpha Channel

    Now that you have an "editable" alpha channel layer, go to the "Layers" menu and delete the original alpha channel layer so that the only layer left is the new one you just created. Edit the alpha channel to your hearts desire.

    Saving your new Alpha Channel and scrapping the original one

    When you are done, go back to the "masks" menu and select "save to alpha channel". A window should come up which show the current alpha channel present in the image. First, you must delete the original alpha channel, and then save the one you have just edited to the image as a new one. You now have edited the alpha channel of the image. Save the TGA file. (IMPORTANT: Make sure you save the TGA file as" 24bit uncompressed" format!)

    Restoring the background

    The last thing you need to do is close the file and then re-open it. The image will appear white instead of black (this is the "background" I mentioned before). Fill in the whole image with black, and then save it again (IMPORTANT: Make sure you save the TGA file as" 24bit uncompressed" format!). Now your background is the same as it was before you edited it.

    Congratulations!

    You now have an image that is just like the original, with your new updated alpha channel!

    -toadlife

    Note this:

    Quote[/b] ](IMPORTANT: Make sure you save the TGA file as" 24bit uncompressed"

    I hope this helps.


  18. You could try kicking the dead group leader out of the group:

    Into a trigger:

    condition: not alive (leader group player)

    statement: [(leader group player)] join grpNull

    type: "repeatedly"

    countdown: some other value than zero probably

    This is taken from a LDD Kyllikki forum post. Original text is talking about how the leadership doesn't automatically change in multiplayer after the group leader dies. Can anyone verify if this is still true?

    It's worth a try.

×