11-20-2012, 10:46 AM
the program looks realy good, but I cant open the 7z file, the 7zip say that is corrupted, can u plz upload it again with winrar or winzip?
[2.2]Programmable AI via scripting
|
||
11-20-2012, 10:46 AM
the program looks realy good, but I cant open the 7z file, the 7zip say that is corrupted, can u plz upload it again with winrar or winzip?
02-04-2013, 06:10 PM
I've got a few questions I would like to have answered if somebody (aka YinYin or Silva) finds the time:
- Is it possible to store entity-based, static values? As in, f.e., counting the number of melee strikes beformed by a specific character. And will this work INDIVIDUALLY for multiple instances of the same character ID? - Is there a more efficient way in determining what is in a specific area, other then iterating through the entire list of loaded objects and checking every single one? -Has there been any reports of fps-loss due to complex AI? F.e. 20 AI-constrolled characters onfield, all iterating through all 400 loaded objects every tick. -Did anyone extract/recreate/copy the basic 'id();' LF2 uses for all vanilla chars? If not, did somebody write an own complete id() which could be refitted by me for my own characters? Or at the very least does somebody have a datasheet/list of all features performed by an basic id()-AI (aka fighting, approaching, running, picking objects etc)? (AI - unrelated -Is there a state that permits a character to change his facing based upon pressing left / right WITHOUT influencing the characters frame-behavior (which pretty much cancels out states 0 and 1, I guess)?) My Creations: (Click to View) Return (String) System.getNewsOfTheDay(); Barely active, expect slow responses. If at all. Greetz, Alblaka
02-04-2013, 06:50 PM
(This post was last modified: 02-04-2013, 06:51 PM by Silverthorn.)
(02-04-2013, 06:10 PM)Alblaka Wrote: -Is there a state that permits a character to change his facing based upon pressing left / right WITHOUT influencing the characters frame-behavior (which pretty much cancels out states 0 and 1, I guess)?) 4/5? Else, I guess one could go with a hex-edit :P
Silverthorn / Blue Phoenix
~ Breaking LFE since 2008 ~ "Freeze, you're under vrest!" - Mark, probably. » Gallery | » Sprites | » DeviantArt Thanks given by: Alblaka
02-04-2013, 06:51 PM
(02-04-2013, 06:10 PM)Alblaka Wrote: I've got a few questions I would like to have answered if somebody (aka YinYin or Silva) finds the time:Or someone else. (02-04-2013, 06:10 PM)Alblaka Wrote: - Is it possible to store entity-based, static values? As in, f.e., counting the number of melee strikes beformed by a specific character. And will this work INDIVIDUALLY for multiple instances of the same character ID?Yes, however there is currently no efficient way to do so. One way is to create a static array (declare it outside of functions, as you would do in most languages), and then have each slot from 0 to 399 correspond to each ID. the problem with this solution is that you are going to waste a lot of memory, since you are hardly using every one of them. The other way would be to store it within some of the unused chunks of the LF2 data structures, however this might cause unexpected results, and there might not be enough memory available for what you need. (02-04-2013, 06:10 PM)Alblaka Wrote: - Is there a more efficient way in determining what is in a specific area, other then iterating through the entire list of loaded objects and checking every single one?No, nor do I believe there is a way to make it more efficient, with the exception of multi-core stuff, or writing a function in the DLL to do the checking, but neither of those are built in. (02-04-2013, 06:10 PM)Alblaka Wrote: -Has there been any reports of fps-loss due to complex AI? F.e. 20 AI-constrolled characters onfield, all iterating through all 400 loaded objects every tick.Not that I know of. The best way to check it would be to have a character clone himself to infinity, with some sort of stupidly complex AI. If this turns out to ever be a problem I might look into writing a JIT-compiler which might speed up the process. (02-04-2013, 06:10 PM)Alblaka Wrote: -Did anyone extract/recreate/copy the basic 'id();' LF2 uses for all vanilla chars? If not, did somebody write an own complete id() which could be refitted by me for my own characters? Or at the very least does somebody have a datasheet/list of all features performed by an basic id()-AI (aka fighting, approaching, running, picking objects etc)?I don't believe that is the case, and sadly my assembly skills are not nearly enough to try and help you out. Silva managed to reverse engineer the random function of LF2 so he might be able to reverse engineer the id function as well, but there is no guarantee as it is way more complicated. (02-04-2013, 06:10 PM)Alblaka Wrote: -Is there a state that permits a character to change his facing based upon pressing left / right WITHOUT influencing the characters frame-behavior (which pretty much cancels out states 0 and 1, I guess)?)The only one that pops into my mind is state 7 (defend), but that only works in certain frames I believe. If you feel like it you can download the DLL source and try to implement some of the things above. If you do so don't hesitate to contact me and I will update the DLL ASAP.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels. An unsound argument is not the same as an invalid one. volatile in C++ does not mean thread-safe. Do not make APIs unnecessarily asynchronous. Make C++ operator > again Trump is an idiot. Thanks given by: Alblaka
02-04-2013, 07:30 PM
Ow sorry, seems I forgot a name there ^^' Thanks for the answer.
@static variables: If creating Arrays is possibe, there is a simpler solution: Creating a basic map. Implement two static Arrays, the first contains a number of 'num's, the second one the associated value, write a function int getValueFor (int num) and done. @Area detection: Guess I will proceed with my previous code then, exspecially since @fps usage: this doesn't seem to be an issue at all. @Basic id-ai: Meh... means it will take more then otherwise necessary debugging for characters whose id() I override. Will post a checklist once I'm done with recreating it, so you at least have a base frame of 'necessary functions' for an id(). @turn-able states: I'm not sure whether jumping actually works, could be frame-hardcoded as well. Will have to check that. Regarding state 5, one can't turn middash, accordingly it's not part of my searched solution. Je, state 7 won't work outside of defense frames (which is a major part of Dokum's complex defense, as D automatically jumps to 110, but I need multiple frames for the entire defense, preventing him from turning).
My Creations: (Click to View) Return (String) System.getNewsOfTheDay(); Barely active, expect slow responses. If at all. Greetz, Alblaka
- Is it possible to store entity-based, static values? As in, f.e., counting the number of melee strikes beformed by a specific character. And will this work INDIVIDUALLY for multiple instances of the same character ID?
as someone else said I've managed to replicate team commands that way - Is there a more efficient way in determining what is in a specific area, other then iterating through the entire list of loaded objects and checking every single one? http://www.lf-empire.de/forum/showthread.php?tid=7976 if you are looking for a specific kind of object you can try to only investigate the range where it is most likely to appear also object slots always get filled up from low to high numbers - so if you are iterating over a larger empty area (empty object slots) you can cancel the iteration hoping that there won't be an old object lost on a higher slot because the ones below became free (blast/items disappearing) also I suggest only iterating once, getting important/dangerous object slots (target/item/dangerous attack/ally) and then work with these numbers within all of your script -Did anyone extract/recreate/copy the basic 'id();' LF2 uses for all vanilla chars? If not, did somebody write an own complete id() which could be refitted by me for my own characters? Or at the very least does somebody have a datasheet/list of all features performed by an basic id()-AI (aka fighting, approaching, running, picking objects etc)? I am/was trying to create a new basic AI: http://www.lf-empire.de/forum/showthread.php?tid=8187 you can help me if you like (AI - unrelated -Is there a state that permits a character to change his facing based upon pressing left / right WITHOUT influencing the characters frame-behavior (which pretty much cancels out states 0 and 1, I guess)?) no there are only two frames that allow this: 110, 212 also the dash frames: 213, 214, 216, 217 (they redirect to 213, 214 though) then there is the dircontrol in cpoints and lastly this: http://www.lf-empire.de/forum/showthread.php?tid=4470 (02-04-2013, 07:30 PM)Alblaka Wrote: @static variables:that still uses the same amount of memory, won't it? edit: you've posted inside the threads I am linking to yourself ... why exactly are you asking these questions? favorite dcing techniques: wpoint | double key inputs | holding back | alternate basic moves
Thanks given by: Alblaka
02-04-2013, 10:05 PM
(02-04-2013, 08:44 PM)YinYin Wrote: - Is there a more efficient way in determining what is in a specific area, other then iterating through the entire list of loaded objects and checking every single one?Jep, but I cannot afford to lose information when dealing with complex AIs. Imagine just THAT important T3 object was created right after the 120-object smoke cloud and then is never found by the AI, causing it to (f.e.) spam release moves without success (because it can't find the limiter condition). I do only iterate once per character, though. Quote:-Did anyone extract/recreate/copy the basic 'id();' LF2 uses for all vanilla chars? If not, did somebody write an own complete id() which could be refitted by me for my own characters? Or at the very least does somebody have a datasheet/list of all features performed by an basic id()-AI (aka fighting, approaching, running, picking objects etc)?I will drop in my notes if I manage to figure out something you haven't already ^^ Quote:(AI - unrelatedOh right, that method. Totally forgot about it. Thanks ^^ Quote:Not necessary. You can f.e. create a length 16 Array, assuming there will never be 16 duplicates of the ID in question.(02-04-2013, 07:30 PM)Alblaka Wrote: @static variables:that still uses the same amount of memory, won't it? Quote:edit: you've posted inside the threads I am linking to yourself ... why exactly are you asking these questions?Because I seem to have forgotten all of that already ^^' My Creations: (Click to View) Return (String) System.getNewsOfTheDay(); Barely active, expect slow responses. If at all. Greetz, Alblaka
Updated to version 3.3:
Download: http://www.mediafire.com/?pxd026nqoqgw0
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels. An unsound argument is not the same as an invalid one. volatile in C++ does not mean thread-safe. Do not make APIs unnecessarily asynchronous. Make C++ operator > again Trump is an idiot. Thanks given by: YinYin
05-04-2013, 05:12 PM
okay so YinYin advised me to post in here:
I can't get this to work. What it does exactly? The console opens, quits and lf2 is not even starting, instead the lf2 symbol just disappears and everything is practically gone. I am running it on a OSX - System, here using basically Wine in a pretty box (that thing is called Crossover and is actually pretty neat). I have set the ddraw.dll as native in the Wine configs and thus got this problem. Earlie Lf2 did not start the console. So any ideas/advices on that?
[sig placeholder until my new sig is finished]
should totally allow people to be all trolley on their birthday
05-05-2013, 04:44 PM
No freaking clue. The way this works is by abusing specific windows internals. Wine may not emulate that stuff properly.
10 ʏᴇᴀʀs sɪɴᴄᴇ ɪʀᴄ ɢᴏᴏᴅ.ɪ ᴡᴀʟᴋ ᴛʜʀᴏᴜɢʜ ᴛʜᴇ ᴇᴍᴘᴛʏ sᴛʀᴇᴇᴛs ᴛʀʏɪɴɢ ᴛᴏ ᴛʜɪɴᴋ ᴏғ sᴏᴍᴇᴛʜɪɴɢ ᴇʟsᴇ ʙᴜᴛ ᴍʏ ᴘᴀᴛʜ ᴀʟᴡᴀʏs ʟᴇᴀᴅs ᴛᴏ ᴛʜᴇ ɪʀᴄ. ɪ sᴛᴀʀᴇ ᴀᴛ ᴛʜᴇ sᴄʀᴇᴇɴ ғᴏʀ ʜᴏᴜʀs ᴀɴᴅ ᴛʀʏ ᴛᴏ sᴜᴍᴍᴏɴ ᴛʜᴇ ɢᴏᴏᴅ ɪʀᴄ. ɪ ᴡᴀᴛᴄʜ ᴏᴛʜᴇʀ ɪʀᴄ ᴄʜᴀɴɴᴇʟs ʙᴜᴛ ɪᴛ ɪs ɴᴏ ɢᴏᴏᴅ. ɪ ᴘᴇsᴛᴇʀ ᴢᴏʀᴛ ᴀɴᴅ ᴛʀʏ ᴛᴏ ʀᴇsɪsᴛ ʜɪs sᴇxɪɴᴇss ʙᴜᴛ ɪᴛ ɪs ᴀʟʟ ᴍᴇᴀɴɪɴɢʟᴇss. ᴛʜᴇ ᴇɴᴅ ɪs ɴᴇᴀʀ.ɪ ᴛʜᴇɴ ᴜsᴜᴀʟʟʏ ʀᴇᴀᴅ sᴏᴍᴇ ᴏʟᴅ ɪʀᴄ ʟᴏɢs ᴀɴᴅ ᴄʀʏ ᴍʏsᴇʟғ ᴛᴏ sʟᴇᴇᴘ.
| ||
« Next Oldest | Next Newest »
|