• 0

    posted a message on Blizzard's letter about Nexus Word Wars

    @Keyeszx: Go

    If things that refer to anatomy or religion can be considered offensive, its gonna be impossible to filter that list. They have more resources, they should provide a list of approved words.

    Posted in: General Chat
  • 0

    posted a message on So abandon our projects, or abuse pop system?

    Front page of popularity system is flooded with low-quality, rushed out, unimaginative crap. Some maps don't even work, they're in beta still.

    I was continuing my project despite a horrible popularity system ONLY because they said that it would improve in the future, that they'd fix battle.net custom games lobby. At this years Blizzcon 2010, it appeared as thought they did not see a problem with the popularity system. One response was essentially "L2advertise".

    It now appears that we should look forward to embracing the pop system as it is right now. Make maps that last exactly 5 minutes long and only allow 2 players, as those have the greatest chance of staying popular after achieving popularity, but first you have to become popular by botting.

    I now know that the project I was working on has zero chance of ever being appreciated. That project is canceled and deleted.

    Now I'm considering just moving on and going to design dungeons for torchlight 2 perhaps, or making a map project that is a play on the popularity system. I'd probably call it [Popularity Wars], and it would revolve around making a map. Dynamics would include familiarity, visibility, *boosting*, and quality. The idea would be to point out how quality without visibility is worthless. The map would ironically be a 2 player game and last exactly 5 minutes. Maybe even add some loyalty to the map with some kind of persisting RPG elements. Then maybe we all boost the map in objection to the system lol.

    Idk, probably just stop sc2 dev altogether. The devs are out of touch because they get to cheat and feature their own maps. I'm disgusted.

    Posted in: General Chat
  • 0

    posted a message on How to make boosting effective?
    Quote from RileyStarcraft: Go

    You could try just making something really good that people want to play and doing some simply publicity work like asking reviewers/commentators to play your map. That's significantly more effective than boosting in the long run anyway.

    No it isn't. People don't goto map forums to look for maps anymore because you can't download them and host them. You need visibility to become popular. Well, in battle.net 2.0 you need to be popular to have visibility. Self fulfilling prophecy.

    Posted in: General Chat
  • 0

    posted a message on [Library] STARCODE v1.4

    @s3rius: Go

    Ok thanks, appreciate it.

    Heres the test I'm running:

    init
        Events
            Game - Map initialization
        Local Variables
        Conditions
        Actions
            Bank - Preload and synchronize bank "a" for player 1
            Bank - Open bank "a" for player 1
            Variable - Set bank1[1] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 2
            Bank - Open bank "a" for player 2
            Variable - Set bank1[2] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 3
            Bank - Open bank "a" for player 3
            Variable - Set bank1[3] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 4
            Bank - Open bank "a" for player 4
            Variable - Set bank1[4] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 5
            Bank - Open bank "a" for player 5
            Variable - Set bank1[5] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 6
            Bank - Open bank "a" for player 6
            Variable - Set bank1[6] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 7
            Bank - Open bank "a" for player 7
            Variable - Set bank1[7] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 8
            Bank - Open bank "a" for player 8
            Variable - Set bank1[8] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 9
            Bank - Open bank "a" for player 9
            Variable - Set bank1[9] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 10
            Bank - Open bank "a" for player 10
            Variable - Set bank1[10] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 11
            Bank - Open bank "a" for player 11
            Variable - Set bank1[11] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 12
            Bank - Open bank "a" for player 12
            Variable - Set bank1[12] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 13
            Bank - Open bank "a" for player 13
            Variable - Set bank1[13] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 14
            Bank - Open bank "a" for player 14
            Variable - Set bank1[14] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 15
            Bank - Open bank "a" for player 15
            Variable - Set bank1[15] = (Last opened bank)
    
    
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    save
        Events
            Game - Player Any Player types a chat message containing "-", matching Partially
        Local Variables
            i = 0 <Integer>
            tempString = "" <String>
            tempString2 = "" <String>
        Conditions
            ((Entered chat string) contains "-save" at Beginning (Insensitive to case)) == true
        Actions
            General - Custom Script: 
    
    lv_tempString = "";
    lv_i = 0;
    while(lv_i < 156){
        lv_tempString += "&'\"<>";
        lv_i += 1;
    }
    lv_tempString += "&";
    lv_tempString2 = "";
    lv_i = 0;
    while(lv_i < 13){
        lv_tempString2 += "&'\"<>";
        lv_i += 1;
    }
    lv_tempString2 += "&'\"";
    BankValueSetFromString(gv_bank1[EventPlayer()], "b", "c", lv_tempString);
    BankValueSetFromString(gv_bank1[EventPlayer()], "b", "d", lv_tempString2);
    BankSave(gv_bank1[EventPlayer()]);
    UIDisplayMessage(PlayerGroupAll(), c_messageAreaChat, StringToText("Saving. String length = " + IntToString(StringLength(lv_tempString) + StringLength(lv_tempString2))));
    
    
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    load
        Events
            Game - Player Any Player types a chat message containing "-", matching Partially
        Local Variables
            tempString = "" <String>
            tempString2 = "" <String>
        Conditions
            ((Entered chat string) contains "-load" at Beginning (Insensitive to case)) == true
        Actions
            General - Custom Script: 
    
    lv_tempString = BankValueGetAsString(gv_bank1[EventPlayer()], "b", "c");
    lv_tempString2 = BankValueGetAsString(gv_bank1[EventPlayer()], "b", "d");
    UIDisplayMessage(PlayerGroupAll(), c_messageAreaChat, StringToText("Loading. String length = " + IntToString(StringLength(lv_tempString) + StringLength(lv_tempString2))));
    
    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on [Library] STARCODE v1.4

    @s3rius: Go

    Thats strange indeed, could the EU version of the game actually be different than the US version?

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on [Library] STARCODE v1.4
    Quote from SouLCarveRR: Go

    @s3rius: Go

    350 lines of code doesnt sound bad at all and I like the check sum modification check. I think Ill make use of this just need some time to figure it out I guess. Thanks for the answers.

    I too am interested in this checksum. It is definitely a part of starcode thats highly valuable even if you don't intend to use the integer encoding. With it you could save compressed data without encryption and still have a good level of security.

    I use base 92 integers and currently sum the entire save string with 3 characters at the front, but its actually easier to break than a random hash sampling.

    Now I'm thinking... Max base size times the max character's store-able minus 3 characters for checksum. (95 * 846 = 80370)

    3 characters in base 64. (64^3 = 262144)

    So if you summed the entire save string, serialized it in base 64 as a bool[18], you could apply 64 bitwise encryption to just the sum.

    I had a 64bit xor encryption lib that I deleted because it increased the size of the save string by 17%~ , but 80370 has to be stored with 3 characters regardless of base 44 or base 284. Sacrificing 3 characters for 64bit encryption doesn't seem like too bad an idea. Now, where'd i put that library...

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on [Library] STARCODE v1.4

    @s3rius: Go

    Oh well the 5 characters that I'm talking about are Html encoded. &amp; &apos; &quot; &lt; and &gt;

    I can save 849 html encoded characters and load them back up. What I meant was that no matter if the character is saved as "a" or "&apos;" in the xml file, they both only count as 1 toward the 849 character limit in this example. Tested by the below bank named "a.SC2Bank". The name of the bank has to be 1 character long in order for this bank to load.

    <?xml version="1.0" encoding="utf-8"?>
    <Bank version="1">
        <Section name="b">
            <Key name="d">
                <Value string="&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;"/>
            </Key>
            <Key name="c">
                <Value string="&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;&apos;&quot;&lt;&gt;&amp;"/>
            </Key>
        </Section>
    </Bank>
    

    I've got a couple of people in the states that can help me test my boring ass bank-testing maps now, shouldn't be too long before I figure out the true science behind the limitations of the bank.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on Chrono Triggercraft!

    This is absolutely amazing, the soundtrack brought back childhood memories. :')

    I can't wait to see what amazing stuff people do with this technology!

    Posted in: Project Workplace
  • 0

    posted a message on [Library] STARCODE v1.4

    @s3rius: Go

    I don't know what I said that made you think that we could use more than the 95 printable ascii character, but I'm interested! Hows that coming along?

    I wouldn't know how you could get the extended ascii alphabet into galaxy editor. It wouldn't let me paste them in as a string and I don't know of a way to caste them to a string, other than perhaps having to load them from a preset bank, if thats even possible.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on Pseudo-Dynamic Arrays

    @s3rius: Go

    How did I miss that... Welp, learn something new everyday I suppose. Thanks! :D

    Posted in: Galaxy Scripting
  • 0

    posted a message on Pseudo-Dynamic Arrays

    @TheSecretArts: Go

    I actually don't know how to declare a data table, if anyone could please share~ :D I'm only using banks cause thats the only data table I know how to declare and access.

    Posted in: Galaxy Scripting
  • 0

    posted a message on Pseudo-Dynamic Arrays

    @TheSecretArts: Go

    Just remember not to save the bank!

    I played an RPG recently that junked up my bank folder with like 30 bank files and didn't even load the next time I tried to play it.

    Separate your temp storage banks and DON'T SAVE THEM! :)

    Posted in: Galaxy Scripting
  • 0

    posted a message on Pseudo-Dynamic Arrays

    @s3rius: Go

    Yeah what he said.

    BankValueSetFromFixed(gv_Session, "RealArray", IntToString(lv_i), 524277.01318359375);

    lv_bankReal = BankValueGetAsFixed(gv_Session, "RealArray", IntToString(lv_i));

    There are versions for bools, ints, points, strings, text, units, and reals.

    Posted in: Galaxy Scripting
  • 0

    posted a message on Pseudo-Dynamic Arrays

    @SouLCarveRR: Go

    I also make use of splitting strings with the word functionality, but its probably one of the slower ways of accessing data. You're parsing a string everytime you're fetching a value, and in that its only a very slow 1d array.

    Just use the bank for dynamic sizes. Its a data table / dictionary, they're fast and, I think, more powerful because you can access values by name.

    You can also technically pass a collection of values by section name now that I think about it...

    Bank name = "Session";
    Section name = "CollectionName";
    Key name = IntToString(i); value = value;
    i+=1;
    Key name = IntToString(i); value = value;
    i+=1;
    Key name = IntToString(i); value = value;
    i+=1;
    Key name = "length"; value = i;
    
    string collectionString = CollectionToString(string sectionName)
    

    edit: bolded a profound realization.. iit i might be able to pass collections and objects by using section names, accessible in a way similar to how you access attributes in jQuery...

    Posted in: Galaxy Scripting
  • 0

    posted a message on Pseudo-Dynamic Arrays

    You can use the bank as a dynamic allocation, thats the only collection of variable size that i'm aware of. It is essentially a dictionary that is saved to a file, when you say to.

    But you need to be careful when using banks for dynamic storage to not save them or you junk up the bank directory like crazy. If the map saves and loads data from previous plays, and you also want to use a bank as a form of "Session" dictionary, then set the banks to a global variable at map init.

            Bank - Preload and synchronize bank "a" for player 1
            Bank - Open bank "a" for player 1
            Variable - Set bank1[1] = (Last opened bank)
            Bank - Preload and synchronize bank "a" for player 2
            Bank - Open bank "a" for player 2
            Variable - Set bank1[2] = (Last opened bank)
            -etc until all players banks are loaded
    
            Bank - Open bank "Session" for player 0
            Variable - Set Session = (Last opened bank)
    

    Then instead of using (Last opened bank) for everything, use the variables.

    Now make some accessor methods for your "Session" bank and use it like an asp.net Session data dictionary.

    void StoreInt(string key, int value);
    int GetInt(string key);
    void StoreString(string key, string value);
    string GetString(string key);
    void StorePoint(string key, point value);
    point GetPoint(string key);
    void StoreReal(string key, fixed value);
    fixed GetReal(string key);//lol
    void StoreBool(string key, bool value);
    bool GetBool(string key);
    void StoreUnit(string key, unit value);
    unit GetUnit(string key);
    void StoreText(string key, text value);
    text GetText(string key);
    

    Unfortunately theres no overloading a function in galaxy so you have to specify the type to store and get data back.

    Posted in: Galaxy Scripting
  • To post a comment, please or register a new account.