Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Gustavo6046

Members
  • Content count

    1037
  • Joined

  • Last visited

Everything posted by Gustavo6046

  1. wtf I set up the gzdoom server and the scripts and everything yet nobody can play with me :/

  2. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    @Gez The "to" is optional; it just helps make the line between the property's name and its value clearer. One can easily just do set Gravity = 8; The set keyword just helps the parser discern between properties, flags, etc., without using a symbol hell (+, -, etc). Also, thanks for the compliment!
  3. ZDCode II: The language that compiles to compatible DECORATE! Take this example: class RunZombie inherits ZombieMan replaces ZombieMan #2055 { set Gravity to 0.4; // high up... set Speed to 0; is NOBLOCKMONST; set Speed to 0; label See { POSS AB 5 A_Recoil(-0.7); TNT1 A 0 A_Chase; POSS A 0 A_FaceTarget(); POSS AB 4 A_Recoil(-0.7); TNT1 A 0 A_Chase; POSS A 0 A_FaceTarget(); POSS ABCD 3 A_Recoil(-0.7); TNT1 A 0 A_Chase; POSS A 0 A_FaceTarget(); goto RunLoop; }; function Jump { while ( z == floorz ) { POSS A 5 [Bright]; POSS A 11 ThrustThingZ(0, 30, 0, 1); }; POSS AB 2 A_Chase; }; label RunLoop { x3 { POSS ABCD 2 A_Recoil(-0.7); TNT1 A 0 A_Chase; POSS A 0 A_FaceTarget(); }; if ( health > 5 ) call Jump; loop; }; } This is what happens when that beauty goes through ZDCode II: Actor _Call0 : Inventory {Inventory.MaxAmount 1} Actor RunZombie : ZombieMan replaces ZombieMan 2055 { Gravity 0.4 Speed 0.0 +NOBLOCKMONST States { F_Jump: _WhileBlock0: TNT1 A 0 A_JumpIf(!(z == floorz), 4) POSS A 5 Bright POSS A 11 ThrustThingZ(0.0, 30.0, 0.0, 1.0) TNT1 A 0 A_Jump(255, "_WhileBlock0") TNT1 A 0 POSS A 2 A_Chase POSS B 2 A_Chase See: POSS A 5 A_Recoil(-0.7) POSS B 5 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget POSS A 4 A_Recoil(-0.7) POSS B 4 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget POSS A 3 A_Recoil(-0.7) POSS B 3 A_Recoil(-0.7) POSS C 3 A_Recoil(-0.7) POSS D 3 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget goto RunLoop RunLoop: POSS A 2 A_Recoil(-0.7) POSS B 2 A_Recoil(-0.7) POSS C 2 A_Recoil(-0.7) POSS D 2 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget POSS A 2 A_Recoil(-0.7) POSS B 2 A_Recoil(-0.7) POSS C 2 A_Recoil(-0.7) POSS D 2 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget POSS A 2 A_Recoil(-0.7) POSS B 2 A_Recoil(-0.7) POSS C 2 A_Recoil(-0.7) POSS D 2 A_Recoil(-0.7) TNT1 A 0 A_Chase POSS A 0 A_FaceTarget TNT1 A 0 A_JumpIf(!(health > 5.0), 3) TNT1 A 0 A_GiveInventory("_Call0") Goto F_Jump _CLabel0: TNT1 A 0 A_TakeInventory("_Call0") TNT1 A 0 loop } } Yes, I know – the output code is quite cryptic, but you're not meant to touch that – just slap the output in your WAD and...look at what happens! Available on GitHub.
  4. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    Added sometimes statement, which makes a block (or single state) execute randomly, supplied a chance from 0 to 100%: label Death { sometimes 96 { TNT1 A 0 A_Log("RED ALERT: New high-level threat detected!"); TNT1 A 0 A_SpawnItemEx('MonSpawnR', 0, 0, floorz - z); }; x 5 sometimes 8 call Duplicate; x 20 call MakeParticle; TNT1 A 1; Stop; }; I now also have the else that goes along if statements.
  5. Gustavo6046

    what are you working on? I wanna see your wads.

    By the way, I'm not sure whether I keep working on my map.
    1. Show previous comments  1 more
    2. Gustavo6046

      Gustavo6046

      It's probably going to be down soon (temporary URLs, you know), but I'm working on making this Express website static (I'll probably use BitBalloon).

    3. bzzrak

      bzzrak

      Good night sweet prince. 

    4. Gustavo6046
  6. Gustavo6046

    How do you feel the vanilla game has aged?

    What I think
  7. I don't know why, but everytime I hear the name of the map "Dis", I think of one thing...

     

     

    OwO hours ago

     

  8. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    Indeed, I think another solution would be to create a GUI (or web page... Electron?) that allows graphical programming, something similar to (but more powerful than) Scratch. It would have to output ZDCode, which is probably not going to be a very easy task, but then again, if I went this far, what can't be done? Thank you all guys for the support you give for me to keep ZDCode running. You guys are awesome.
  9. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    I wanted a different syntax, to completely replace DECORATE. I'm not sure if that kind of confusion is common, but I wanted something easier than DECORATE; maybe eventually similar to what C is to Assembly (obviously not to the same extent - C was a complete revolution of programming, whereas this is just an utility language for when ZScript isn't available). Also, people need to learn how to program. My friend Madcat (from the SUN clan) refuses to learn programming things because no time is available to him. Really, it's all easy to learn the basics of programmer logic and structure otherwise. With just a bit of time, any one could try ZDCode, and with more timely investment, they could even fathom ZScript (and then Zandronum would not be supported).
  10. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    VS Code syntax highlighting! Get it now!
  11. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    Oh, and before someone asks me about ZScript, I have to clarify: this programming language targets older versions of ZDoom and ZDoom-derived source ports like Zandronum, most of which don't support ZScript. Thus, it is advised to use ZDCode only as a compatible alternative to DECORATE, not as a more flexible one (even though it is still more powerful).
  12. Sometimes I wish Doomworld members came together to create a comedy film...

    1. Memfis

      Memfis

      Sometimes I feel like Doomworld members are already doing it on a daily basis...

  13. I'm hosting a Telnet BBS.

     

    image.png.015e0701ab94fdbe27d519888f6a80da.png

     

    RB2Lkib.png

     

    image.png

  14. Gustavo6046

    what are you working on? I wanna see your wads.

    I only wish I was taught to judge automap picture quality at school. :/ They all look like cool line art, but I know it's not the point of the product!
  15. Let me embed Opus music, please!

  16. Gustavo6046

    ZDCode 2.0: DECORATE on steroids, for Grandmadronum!

    Exactly. You can also use the repeat keyword, if I recall correctly. I want it to seem intuitive, and adopted a syntax where you can choose your syntax better, to suit users' needs and preferences. As for properties, there is likely an alternate way, but the lexer I wrote is a bit messy, and the documentation is sub-optimal. Let me take a look.
  17. This is it, I wrote the best Node.JS module ever!

     

    function caseRep(letter, low, upp) { return letter.toLowerCase() == letter ? low : upp; }
    
    function furrify(word) {
        return word
            .replace(/(w)(h)/gi, (match, w, h) => caseRep(w, 'u', 'U') + caseRep(h, 'w', 'W'))
            .replace(/(g)([aeiou])/gi, (match, g, vowel) => caseRep(g, 'g', 'G') + caseRep(vowel, 'y', 'Y') + vowel)
            .replace(/(o)(u)/gi, (match, o, u) => caseRep(o, 'e', 'E') + caseRep(u, 'e', 'E'))
            .replace(/(l)(l)/gi, (match, t, h) => caseRep(t, 'w', 'W') + caseRep(h, 'w', 'W'))
            .replace(/(t)(h)/gi, (match, t, h) => caseRep(t, 'd', 'D') + caseRep(h, 'h', 'H'))
            .replace(/ph/g, 'f')
            .replace(/ph/gi, 'F')
            .replace(/(p)(p)/gi, (match, p1, p2) => caseRep(p1, 'p', 'P'))
            .replace(/([lL])([aeiouAEIOU])/gi, (match, l, vowel) => caseRep(l, 'w', 'W') + vowel)
            .replace(/y(?=[\.\,\;\:\?\!])|y^/gi, (y) => caseRep(y, 'ya', 'YA'))
            .replace(/r(?=[\.\,\;\:\?\!])|r^/gi, (r) => caseRep(r, 'y', 'Y'))
            .replace(/(r)/gi, (match, r) => caseRep(r, 'y', 'Y'))
            .replace(/y(?=!a)/gi, (y) => caseRep(y, 'ii', 'II'))
            .replace(/(i)(n)/gi, (match, i, n) => caseRep(i, 'iy', 'IY') + n);
    }
    
    module.exports = furrify

     

    Use case:

    $ node
    > var furrify = require('./furrify.js')
    undefined
    > furrify('Why did I write this?')
    'Uwy did I wyite dhis?'
    > furrify('Were I sober? Were I serious? Were I even myself?')
    'Weye I sobey? Weye I seyiees? Weye I even myself?'
    > furrify("Gah, I can't even think!")
    'Gyah, I can\'t even dhiynk!'
    > furrify('And I thought I had sanity enough to be the President of the Brazilian Republic.')
    'And I dheeght I had sanity eneegh to be dhe Pyesident of dhe Byaziwian Yepubwic.'
    > furrify('Oh, dreams, fleeing down the sinkhole...')
    'Oh, dyeams, fweeiyng down dhe siynkhowe...'
    >

     

  18. I made a language that compiles to DECORATE!

    mr5wJ85.gif

    https://github.com/Gustavo6046/ZDCode

    1. Show previous comments  2 more
    2. Gustavo6046

      Gustavo6046

      Anyway, shall I make a separate topic/thread for it?

    3. KVELLER

      KVELLER

      You should probably make a thread if you haven't already. Looks interesting.

    4. Voltcom9

      Voltcom9

      This looks really cool.

  19. Gustavo6046

    Horizontally "moving" 3D floors.

    Hello. I'm working on this experimental 3D floor garbage. GZDoom only, uses ACS and tag ranging. HORZPLAT.zipGood luck.
  20. Gustavo6046

    Horizontally "moving" 3D floors.

    That is an interesting implementation, and I'll be sure to take a look at it. Thank you!
  21. Gustavo6046

    Horizontally "moving" 3D floors.

    Not much, but I bet it's enough, for a map feature that is way too seldom used in ZDoom. :P
  22. Gustavo6046

    Horizontally "moving" 3D floors.

    Basically, it has 64 target sectors and 64 source sectors. Each source sector has one of its side walls set as a 3D floor linedef, that will set the corresponding target sector. All the source sectors are set to a height below the floor of the target sectors, so the 3D floors are invisible. Then, everytime a switch is pressed, the 3D platform "moves", as the back sectors' 3D floors disappear and the front ones appear, which simulates movement. I could try and create ACS-controlled wind in those sectors, to simulate the platforms moving the player.
×