The Dink Network

ChatGPT 3.5 and DinkC

March 12th, 09:24 PM
custom_simon.gif
SimonK
Peasant He/Him Australia
 
Yes I'm procrastinating...

So, similar inability with ChatGPT as Co-Pilot

Here is the tail end of the conversation, not the full one, as it is too long. I asked ChatGPT to create a script for a statue sprite that Dink interacts with by either talking to or hitting, and asked it to be funny while referring to a fantasy Church that focuses on strength and giving up belongings to the Church

User
sp_color() is not a valid DinkC command, I could not find it in the DinkC Reference, can you?
ChatGPT
You are correct, and I apologize for the oversight. sp_color() is not a valid command in DinkC. Instead, DinkC uses the sp_pframe to change the color palette of sprites. Let's revise the script accordingly:

c
Copy code
// Procedure for when Dink talks to the statue
void talk(void)
{
// Change the color of the text to the darkest color available
sp_pframe(&current_sprite, 1); // Dark color

say("`#Greetings, humble mortal. What brings you to the presence of the Almighty Statue?`nDo you seek the blessings of strength?", &current_sprite);
}

// Procedure for when Dink hits the statue
void hit(void)
{
// Change the color of the text to the darkest color available
sp_pframe(&current_sprite, 1); // Dark color

say("`#You dare strike the mighty statue of our revered deity!`nPrepare for divine retribution!", &current_sprite);
// You can add additional actions/effects here if you want
}
Now, I've replaced the invalid sp_color() command with sp_pframe() to change the color palette of the sprite. This should achieve the desired effect of making the text appear in the darkest color available. Thank you for your patience, and I apologize for any confusion.

User
No, you have a set of options for text color that start with the value of 1 and go to 9, then 0, then !, @, #, $, % - can you find this information in the DinkC Reference?
ChatGPT
I'm sorry for the confusion earlier. You're correct that DinkC doesn't have a direct command to change text color like that. Instead, it uses escape codes within the text itself to change the color. Here's the corrected script without the invalid command and using the escape codes for text color:

c
Copy code
// Procedure for when Dink talks to the statue
void talk(void)
{
say("`7Greetings, humble mortal. What brings you to the presence of the Almighty Statue?`nDo you seek the blessings of strength?", &current_sprite);
}

// Procedure for when Dink hits the statue
void hit(void)
{
say("`7You dare strike the mighty statue of our revered deity!`nPrepare for divine retribution!", &current_sprite);
// You can add additional actions/effects here if you want
}
In this script, I've used the escape code ``7` to set the text color to a dark shade. This should achieve the desired effect without relying on an invalid command. Thank you for your patience and bringing this to my attention.

User
Thanks, can you change the text being said to that of Dink character reacting to the statue, while still being funnny. And keep the dialogue to 7 words at most.
ChatGPT
Certainly! Here's the revised script with Dink's reactions to the statue, keeping the dialogue short and funny:

c
Copy code
// Procedure for when Dink talks to the statue
void talk(void)
{
say("`7Are you flexing? Because you're stoned.`", &current_sprite);
}

// Procedure for when Dink hits the statue
void hit(void)
{
say("`7Ouch! That's a rock-solid response!`", &current_sprite);
// You can add additional actions/effects here if you want
}
In this script, when Dink talks to the statue, he makes a pun about being "stoned" while the statue remains stoic. When Dink hits the statue, he remarks on the statue's "rock-solid response," which is both a pun and a recognition of the statue's firmness.

User
Almost there, just change the &current_sprite to a value of 1 so that it is Dink character who has the text response.
ChatGPT
Apologies for the oversight. Here's the corrected script with the dialogue attributed to Dink's character:

c
Copy code
// Procedure for when Dink talks to the statue
void talk(void)
{
say("`7Are you flexing? Because you're stoned.`", 1);
}

// Procedure for when Dink hits the statue
void hit(void)
{
say("`7Ouch! That's a rock-solid response!`", 1);
// You can add additional actions/effects here if you want
}
Now, both responses are attributed to Dink's character with the value of 1, so it's Dink who delivers the funny lines.

March 13th, 11:54 AM
goblins.gif
drone1400
Peasant He/Him Romania
C# nerd 
Hmmm, this reminds me of something! I don't know if you're familiar with the Discord chat app that's all the rage these days, but last year they were experimenting with AI themselves. Basically, they had an AI bot named Clyde that was available in some servers, and you could ask it questions and such.

It's now been discontinued, but I'm pretty sure it was based off ChatGPT or something like that.

Anyway, where I'm going with this is that on Soma's secret Dink Discord server, we were messing around with Clyde in various ways, and at some point someone tried to get Clyde to generate DinkC scripts. It seemed to recognize Dink Smallwood well enough and claimed it could generate DinkC scripts, but the actual results were not quite right

Here are some samples of what it was generating:

Prompt: drone: do you think you could write a script that warps the player to another screen in DinkC?
Result: Clyde: Sure, here's a simple DinkC script that warps the player to another screen:
void main()
{
    sp_x(1, 10);
    sp_y(1, 10);
    sp_touch_damage(1, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_seq(&current_sprite, 0);
    sp_brain(&current_sprite, 16);
    sp_touch(&current_sprite, 1);
    sp_nodraw(&current_sprite, 1);
    sp_hard(&current_sprite, 0);
    sp_que(&current_sprite, -500);
    sp_speed(&current_sprite, 1);
    sp_timing(&current_sprite, 0);
    sp_exp(&current_sprite, 0);
    sp_base_walk(&current_sprite, 70);
    sp_base_attack(&current_sprite, 70);
    sp_defense(&current_sprite, 0);
    sp_strength(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
    sp_touch_damage(&current_sprite, 0);
}


Prompt: Josko: Clyde, can you create a DinkC script that adds an NPC called drone the player can talk to and ask 3 random questions?
Result: Clyde: sure, here's a script that adds an NPC called "drone" and allows the player to ask 3 random questions:
void main()
{
    int question = rand(1, 3);
    if (question == 1)
    {
        say_stop("What is your favorite color?", 1);
        wait(500);
        say_stop("My favorite color is blue.", 1);
    }
    else if (question == 2)
    {
        say_stop("What is your favorite food?", 1);
        wait(500);
        say_stop("I love pizza!", 1);
    }
    else
    {
        say_stop("What is your favorite hobby?", 1);
        wait(500);
        say_stop("I enjoy playing video games.", 1);
    }
    wait(500);
    say_stop("Do you have any more questions?", 1);
    wait(500);
    say_stop("Feel free to ask!", 1);
}


Prompt: Josko: Write DinkC script that makes an npc called skorn run around very fast yelling Ponies!! In caps lock
Result: Clyde: This DinkC script will make an NPC named Skorn run around very fast, yelling "PONIES!!" in all caps. The NPC's movement speed is set to 5, and it continuously moves in a diagonal pattern across the screen. The x and y coordinates are incremented by 10 each time, and if they exceed 1000, they are reset to 0. The NPC will repeat this behavior indefinitely.
void main()
{
    int x = 0;
    int y = 0;
    int speed = 5;
    
    while(1)
    {
        move_stop(1);
        say_stop("PONIES!!", 1);
        move_speed(1, speed);
        move(1, x, y, 0);
        
        x += 10;
        y += 10;
        
        if (x > 1000)
            x = 0;
        if (y > 1000)
            y = 0;
        
        wait(100);
    }
}

March 13th, 07:11 PM
custom_simon.gif
SimonK
Peasant He/Him Australia
 
hmm, maybe if it is given enough examples, practice and correction it will get there

Another example of using ChatGPT

all the images

first pass script from ChatGPT
void main(void)
{
    int &goldFound = 0;

    // Check if Dink has already found the gold
    if (&goldFound == 1)
    {
        say("`3I already have the gold, you liar!", 1);
        kill_this_task();
    }

    // Display dialog with the nasty peasant
    say_stop("`3Hey you! Where's the gold?", 1);
    wait(500);
    say_stop("`5I don't know what you're talking about!", &current_sprite);
    wait(500);
    say_stop("`3Don't lie to me! Tell me where it is!", 1);
    wait(500);
    say_stop("`5Okay, okay! It's hidden in the old windmill east from here.", &current_sprite);
    wait(500);

    // Check if Dink hits the peasant
    freeze(1);
    if (hit == 1)
    {
        say_stop("`5Ouch! How dare you!", &current_sprite);
        wait(500);
        say_stop("`3You lied to me! That's what you get!", 1);
        wait(500);

        // Hurt Dink by 4 points
        sp_pframe(1, 3);
        wait(200);
        sp_pframe(1, 1);
        &life -= 4;
    }

    // Set goldFound to 1 to indicate Dink found the gold
    &goldFound = 1;

    unfreeze(1);
    kill_this_task();
}


end result script
// main procedure
void main(void)
{
    preload_seq(231); // Preload walk sequence for direction 1
    preload_seq(233); // Preload walk sequence for direction 3
    preload_seq(237); // Preload walk sequence for direction 7
    preload_seq(239); // Preload walk sequence for direction 9

    sp_brain(&current_sprite, 16); // Set the brain to 16
    sp_speed(&current_sprite, 2); // Set the speed to 2
    sp_base_walk(&current_sprite, 230); // Set the base walk to sprite 230 (old man)
}

// talk procedure
void talk(void)
{
    freeze(&current_sprite); // Freeze the peasant while talking
    freeze(1); // Freeze Dink while talking

    // Display dialog with the nasty peasant
    say_stop("Hey you! Where's the gold?", 1);
    wait(200);
    say_stop("I don't know what you're talking about!", &current_sprite);
    wait(200);
    say_stop("Don't lie to me! Tell me where it is!", 1);
    wait(200);
    say_stop("Okay, okay! It's hidden in the old windmill east from here.", &current_sprite);
    wait(200);

    unfreeze(&current_sprite); // Unfreeze the peasant after conversation
    unfreeze(1); // Unfreeze Dink after conversation
}

// hit procedure
void hit(void)
{
    freeze(&current_sprite); // Freeze the peasant while reacting to hit
    freeze(1); // Freeze Dink while reacting to hit

    say_stop("Ouch! How dare you!", &current_sprite);
    wait(200);
    say_stop("You lied to me! That's what you get!", 1);
    wait(200);

    // Hurt Dink by 4 points
    hurt(4);

    say_stop("Next time, think twice before messing with me!", &current_sprite);
    wait(200);

    unfreeze(&current_sprite); // Unfreeze the peasant after reacting to hit
    unfreeze(1); // Unfreeze Dink after reacting to hit
}
March 17th, 10:50 AM
duck.gif
toof
Peasant He/Him
I disagree. 
I did a little different thing...

write morally grey dmod story

Title: "Shadows of Ambivalence"

Plot Summary:
In the land of Ethereon, a kingdom torn apart by political intrigue and hidden agendas, our protagonist, Dink Smallwood, finds himself caught in the midst of a web of conflicting interests and moral ambiguity.

The story begins with Dink, a seasoned adventurer, being approached by two rival factions: the Royalists, loyalists to the reigning monarch, and the Rebels, seeking to overthrow the current regime. Each faction offers Dink a lucrative reward for aiding their cause, promising wealth, power, and influence.

Uncertain of where his loyalties lie, Dink reluctantly agrees to work for both sides, walking the delicate line between ally and mercenary. As he carries out missions for each faction, he witnesses the consequences of his actions firsthand: innocent lives lost, families torn apart, and communities ravaged by the ongoing conflict.

As Dink delves deeper into the shadowy underworld of Ethereon, he uncovers dark secrets and hidden agendas that blur the lines between right and wrong. He encounters morally ambiguous characters, each with their own motivations and justifications for their actions.

Amidst the chaos and uncertainty, Dink must grapple with his own moral compass, questioning whether the ends justify the means and whether he can truly make a difference in a world consumed by greed and power struggles.

Along the way, Dink forms unlikely alliances and confronts difficult choices that challenge his beliefs and principles. He must decide whether to continue playing both sides for personal gain or to take a stand and forge his own path, regardless of the consequences.

As the conflict escalates and tensions reach a boiling point, Dink finds himself faced with a choice that will shape the fate of Ethereon. Will he choose to perpetuate the cycle of violence and betrayal, or will he rise above the chaos and strive for a better future?

In the end, "Shadows of Ambivalence" explores the complexities of morality and the consequences of our choices in a world where right and wrong are not always black and white. It challenges players to confront their own beliefs and convictions, leaving them to ponder the true nature of heroism in a morally grey world.
March 17th, 05:15 PM
girl.gif
HelenW
Peasant She/Her United States
 
Wow, are you going to make this?
March 17th, 08:47 PM
custom_simon.gif
SimonK
Peasant He/Him Australia
 
Interesting. Now you just need ChatGPT to make the map, the scripts and we will have more new DMODs than ever...

If there was a way to use Python to make a map, ChatGPT might be able to do something, given it can apparently write Python code that creates 3D models in Blender - or so I saw somewhere on the interwebs.
March 17th, 11:41 PM
peasantmp.gif
Skurn
Peasant He/Him Equatorial Guinea duck bloop
can't flim flam the glim glam 
why have chatgpt generate bad dmods when im around?
March 18th, 09:30 AM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
@Skurn:
why have chatgpt generate bad dmods when im around?

That is an excellent point Skurn. When can we expect your magnum opus?
March 19th, 09:56 PM
peasantmp.gif
Skurn
Peasant He/Him Equatorial Guinea duck bloop
can't flim flam the glim glam 
hmm