AI script - Page 2
Forum Index > BW General |
Yarertz
Djibouti1891 Posts
| ||
![]()
Liquid`Jinro
Sweden33719 Posts
![]() Regarsd FrozenArbiter | ||
Funktion
Australia156 Posts
On April 12 2003 06:23 NeX[CHaP]ReaPeR wrote: It's possible definitly. The scripts Blackman made aren't ameture shit. They are the real deal. The thing tho is that Blackman has a natural talent for playing and for programming. He was able to make scripts far beyond the level of the Blizzard ones that can adapt, use proper builds, etc. The one thing that I suspect with his scripts though is that they can only fight Z properly as he would only need them to be able to play against Zerg (which is Blackman's race). Last I checked Blackman has not released them. And I doubt he ever will unless we all ask really nice. Maybe someone which connections can wheedle them out of him, I dunno. lol Maybe the scripts were sent back from the future. Like in the movie Terminator. WHOAH! Anyway IF he ever used scripts it would be just used as a guide for build orders. He could get the comp to do a build and test out his timings etc. The level of "thought process" displayed by the computer your talking about would take much more than a person with "a natural talent". Like a Terminator...WHOAH! | ||
Inspire
132 Posts
BlackMan has got some AI scripts and I do not think that he post them anywhere or give it someone. I have seen his scripts but not all and it was 2 years ago. I've got some of them but now they are useless. I used SCAI and you can make for example 4 different build orders in 1 script and you have to set the possibility of using one of this script. If you are good it takes 1 week to do good script. I think it is better to play with human players than wasting time. | ||
Ace
United States16096 Posts
![]() | ||
RedMeat
United Kingdom490 Posts
Ilnp: I wasn't saying it would be easy to program that kind of AI ![]() ![]() EDIT: I think the reason go hasn't got the same kind of AI is that microsoft haven't tried to create a go AI. Deep Blue is well ahead of any commercially available programs (although I don't doubt some of them use ideas from Deep Blue's program) ![]() | ||
jtan
Sweden5891 Posts
It would just be great if someone could find them so I could download em ![]() | ||
LOBO
Poland80 Posts
About Blackman - do you think his brother is a close person to BM? Well, I was talking to him on WCG in Poland, and, if my memory serves well, he spoke something about the scripts. We were talking more about Blackmans play by the means of the technical point of view, like hotkeys etc. though. On the next WCG, I`ll do a full interview with both of them, so you`ll know the truth ![]() | ||
LOBO
Poland80 Posts
http://come.to/SCEditor | ||
RedMeat
United Kingdom490 Posts
![]() | ||
RaGe_banned
United States538 Posts
| ||
Clutch3
United States1344 Posts
As far as the AI goes, I think you can overcome a lot of the typical computer stupidity by utilizing the fact that the CPU can have perfect micro of multiple units. Just designing a clever micro script for each zergling in a 9-pool could put a lot of players in big trouble. Imagine, each zergling could be told to run away and heal (or attack a far-away building) when it got to low HPs. They could also be told to run from any zealot (unless there were a certain number of lings in the neighborhood or something). Once the CPU had 8-10 lings in your base, all of them in different places attacking different things, it could be very powerful, esp against a Z/P who has no ranged attack early game. And all this time, the CPU could be macroing perfectly to expo or make new lings. I think a well-designed ling AI could put a lot of players on the ropes (until they learned to defend against ling rush, then you'd have to add another BO to spice things up a bit). Of course, I have no idea how difficult this would be to implement, but it seems that if the scripting language is well-done, it shouldn't be too hard... | ||
Ion)Positive
Morocco1389 Posts
This is rather.. well.. blalant bs.. I mean sure average players now could school progamers if we went back in time to 99'.. But now its like.. You can NEVER make anymore strats, you can just add/change small things to make them better... Its like Grrr.. Said, BW has many many many many possiblities, but is not infinite.. Anyways, i'm in the process of programming an AI now.. Its easier then I expected, much easier then C++ which is quite easy in basics.. IE: The famous "Hello World!" code. Anyways.. If anyone would want to work with me, please tell me. I'm looking for a versitile AI that can adapt to all matchups, and won't try anything really stupid or impossible, but will be unprediticatable like FisheYe. | ||
hasuwar
7365 Posts
![]() | ||
hasuwar
7365 Posts
Check out the harass factors? I think you could write some pretty crazy AI shit with this... > ![]() Header commands farms_notiming Build necessary farms only when it hits the maximum supply available. farms_timing Build necessary farms with a correct timing, so nothing is paused by a maximum supply limit hit. start_areatown Starts the AI Script for area town management. start_campaign Starts the AI Script for Campaign. start_town Starts the AI Script for town management. Build/Attack/Defense order commands attack_add (byte) (military) Add %1(byte) %2(military) to the current attacking party. attack_clear Clear the attack data. attack_do Attack the enemy with the current attacking party. attack_prepare Prepare the attack. build (byte) (building) (byte) Build %2(building) until it commands %1(byte) of them, at priority %3(byte). defensebuild_aa (byte) (military) Build %1(byte) %2(military) to defend against enemy attacking air units, when air units are attacked. defensebuild_ag (byte) (military) Build %1(byte) %2(military) to defend against enemy attacking air units, when ground units are attacked. defensebuild_ga (byte) (military) Build %1(byte) %2(military) to defend against enemy attacking ground units, when air units are attacked. defensebuild_gg (byte) (military) Build %1(byte) %2(military) to defend against enemy attacking ground units, when ground units are attacked. defenseclear_aa Clear defense against enemy attacking air units, when air units are attacked. defenseclear_ag Clear defense against enemy attacking air units, when ground units are attacked. defenseclear_ga Clear defense against enemy attacking ground units, when air units are attacked. defenseclear_gg Clear defense against enemy attacking ground units, when ground units are attacked. defenseuse_aa (byte) (military) Use %1(byte) %2(military) to defend against enemy attacking air units, when air units are attacked. defenseuse_ag (byte) (military) Use %1(byte) %2(military) to defend against enemy attacking air units, when ground units are attacked. defenseuse_ga (byte) (military) Use %1(byte) %2(military) to defend against enemy attacking ground units, when air units are attacked. defenseuse_gg (byte) (military) Use %1(byte) %2(military) to defend against enemy attacking ground units, when ground units are attacked. guard_resources (military) Send units of type %1(military) to guard as many resources spots as possible(1 per spot). tech (tech) (byte) Research technology %1(technology), at priority %2(byte). train (byte) (military) Train %2(military) until it commands %1(byte) of them. upgrade (byte) (upgrade) (byte) Research upgrade %2(upgrade) up to level %1(byte), at priority %3(byte). wait (word) Wait for %1(word) tenths of second in normal game speed. wait_finishattack Wait until attacking party has finished to attack. wait_build (byte) (building) Wait until computer commands %1(byte) %2(building). wait_buildstart (byte) (unit) Wait until construction of %1(byte) %2(unit) has started. wait_train (byte) (building) Wait until computer commands %1(byte) %2(military). Flow control commands call (block) Call %1(block) as a sub-routine. enemyowns_jump (unit) (block) If enemy has a %1(unit), jump to %2(block). enemyresources_jump (word) (word) (block) If enemy has at least %1(word) minerals and %2(word) gas then jump in %3(block). goto (block) Jump to %1(block). groundmap_jump (block) If it is a ground map(in other words, if the enemy is reachable), jump to %1(block). killable Allows the current thread to be killed by another one. kill_thread Kill the current thread. notowns_jump (unit) (block) If computer doesn't have a %1(unit), jump to %2(block). race_jump (block) (block) (block) According to the enemy race, jump in %1(block) if enemy is Terran, %2(block) if Zerg or %3(block) if Protoss. random_jump (byte) (block) There is %1(byte) chances out of 256 to jump to %2(block). resources_jump (word) (word) (block) If computer has at least %1(word) minerals and %2(word) gas then jump in %3(block). return Return to the flow point of the call command. stop Stop script code execution. Often used to close script blocks called simultaneously. time_jump (byte) (block) Jumps to %2(block) if %1(byte) normal game minutes have passed in the game. Multiple threads commands expand (byte) (block) Run code at %2(block) for expansion number %1(byte) multirun (block) Run simultaneously code at %1(block). Miscellaneous commands create_nuke Create a nuke. Should only be used in campaign scripts. create_unit (unit) (word) (word) Create %1(unit) at map position (x,y) where x = %2(word) and y = %3(word). Should only be used in campaign scripts. debug (string) (block) Show debug string %2(string) and continue in %1(block). (UNSUPPORTED) define_max (byte) (unit) Define maximum number of %2(unit) to %1(byte). give_money Give 2000 ore and gas if owned resources are low. Should only be used in campaign scripts. nuke_pos (word) (word) Launch a nuke at map position (x,y) where x = %1(word) and y = %2(word). Should only be used in campaign scripts. send_suicide (byte) Send all units to suicide mission. %1(byte) determines which type: 0 = Strategic suicide; 1 = Random suicide. set_randomseed (word) (word) Set random seed to %1(word) %2(word) (The two words are transformed in a 32-bit integer). StarEdit commands disruption_web Disruption Web at selected location. (STAREDIT) enter_bunker Enter Bunker in selected location. (STAREDIT) enter_transport Enter in nearest Transport in selected location. (STAREDIT) exit_transport Exit Transport in selected location. (STAREDIT) harass_location AI Harass at selected location. (STAREDIT) junkyard_dog Junkyard Dog at selected location. (STAREDIT) make_patrol Make units patrol in selected location. (STAREDIT) move_dt Move Dark Templars to selected location. (STAREDIT) nuke_location Nuke at selected location. (STAREDIT) player_ally Make selected player ally. (STAREDIT) player_enemy Make selected player enemy. (STAREDIT) recall_location Recall at selected location. (STAREDIT) sharedvision_off Disable Shared Vision for selected player. (STAREDIT) sharedvision_on Enable Shared vision for selected player. (STAREDIT) value_area Value this area higher. (STAREDIT) Unknown purpose commands Note: These are the most interesting commands to make research on. With the accurate opcode name list, they're now easier to decipher, but many still don't act as expected, or are still too obscure. I've paused my research on them to release ScAIEdit 3.1 faster, meaning some might be quite easy to discover. allies_watch (byte) (block) The use of this command is unknown. Takes %1(byte) and %2(block) as parameters. capt_expand The use of this command is unknown. Takes no parameter. check_transports The use of this command is unknown. Takes no parameter. creep The use of this command is unknown. Takes %1(byte) as parameter. Blizzard always uses 3 and 4 for %1(byte), on Zerg and rarely Protoss. default_min (byte) The use of this command is unknown. Takes %1(byte) as parameter. defaultbuild_off The use of this command is unknown. Takes no parameter. do_morph The use of this command is unknown. Takes no parameters. fake_nuke The use of this command is unknown. Takes no parameters. get_oldpeons (byte) The use of this command is unknown. Takes %1(byte) as parameter. Seems to do nothing when called. (?!) guard_all The use of this command is unknown. Takes no parameters. if_owned (unit) (block) The use of this command is unknown. Takes %1(unit) and %2(block) as parameters. max_force (word) The use of this command is unknown. Takes %1(word) as parameter. nuke_rate (byte) The use of this command is unknown. Takes %1(byte) as parameter. panic (block) The use of this command is unknown. Takes %1(block) as parameter. place_guard (unit) (byte) The use of this command is unknown. Takes %1(unit) and %2(byte) as parameters. player_need (byte) (building) The use of this command is unknown. Takes %1(byte) and %2(building) as parameters. rush (byte) (block) The use of this command is unknown. Takes %1(byte) and %2(block) as parameters. scout_with (military) The use of this command is unknown. Takes %1(military) as parameter. Seems to do nothing when called. (?!) set_attacks (byte) The use of this command is unknown. Takes %1(byte) as parameter. target_expansion The use of this command is unknown. Takes no parameter. transports_off The use of this command is unknown. Takes no parameter. try_townpoint (byte) (block) The use of this command is unknown. Takes %1(byte) and %2(block) as parameters. wait_force (byte) (unit) The use of this command is unknown. Takes %1(byte) and %2(unit) as parameters. Undefined commands Note: Be VERY cautious when researching these. Their definition is unknown, and thus can very easily make StarCraft crash when using them. They should only be tested and researched by experts. build_bunkers The definition of this command is unknown. It is never used in Blizzard scripts. build_turrets The definition of this command is unknown. It is never used in Blizzard scripts. default_build The definition of this command is unknown. It is never used in Blizzard scripts. easy_attack The definition of this command is unknown. It is never used in Blizzard scripts. eval_harass The definition of this command is unknown. It is never used in Blizzard scripts. fatal_error The definition of this command is unknown. It is never used in Blizzard scripts. harass_factor The definition of this command is unknown. It is never used in Blizzard scripts. if_dif The definition of this command is unknown. It is never used in Blizzard scripts. if_towns The definition of this command is unknown. It is never used in Blizzard scripts. implode The definition of this command is unknown. It is never used in Blizzard scripts. prep_down The definition of this command is unknown. It is never used in Blizzard scripts. quick_attack The definition of this command is unknown. It is never used in Blizzard scripts. region_size The definition of this command is unknown. It is never used in Blizzard scripts. wait_bunkers The definition of this command is unknown. It is never used in Blizzard scripts. wait_secure The definition of this command is unknown. It is never used in Blizzard scripts. wait_turrets The definition of this command is unknown. It is never used in Blizzard scripts. wait_upgrades The definition of this command is unknown. It is never used in Blizzard scripts. | ||
hasuwar
7365 Posts
"Important note: You cannot modify the building placement, the way computer attacks and general behavior of the computer with its units. This is handled by the AI Interpreter located in the EXE file of StarCraft, and thus not modifiable. There is a few exceptions to this rule, as certain commands have a little influence on these points, but not enough to consider having full control on the situation." You could probably get some good practice off a fully functioning macro master though.. you'll notice one of the commands, "build farm so supply never stops" or something ^_^ | ||
hasuwar
7365 Posts
train 2 battlecruiser The computer will build everything required to get this unit if it doesn't have them all. For instance, it will build a Barracks, Factory, Starport, Control Tower, Science Facility and Physics Labs and then will train up to 2 battlecruisers. hey, this might not be too hard! Sorry I keep posting, this is just exciting to me for some reason ^_^ | ||
Ion)Positive
Morocco1389 Posts
| ||
hasuwar
7365 Posts
| ||
Casper...
Liberia4948 Posts
| ||
| ||