HNO3 Tekstiseikkailuengine on tehokas tekstiseikkailupeleille tarkoitettu peliengine joka käyttää kompaktia ja yksinkertaista TH-skriptikieltä. Engine on PUBLIC DOMAIN:ia eli voit käyttää sitä omissa produktioissasi kuten parhaaksi näet!
HNO3 Tekstiseikkailuenginen lähdekoodin lisäksi tulee kaksi esimerkkipeliä. Peli 2 on tejeezin tekemä ja se demonstroi muun muassa suosituista ZORK-tekstiseikkailupeleistä tuttua ASCII-grafiikkaa HNO3 Tekstiseikkailuenginen kanssa.
Koodin toiminta:
HNO3 Tekstiseikkailuengine toimii niin että se lukee TH-skriptitiedostosta ensin tilannekuvauksen rivimäärän (tästälähtien A) , sitten A riviä tilannekuvausta ja tulostaa sen konsolille.
Sitten HNO3 Tekstiseikkailuengine lukee tiedostosta etenemisvaihtoehtojen määrän (tästälähtien B) sekä oikean vaihtoehdon (tästälähtien C). Nyt HNO3 Tekstiseikkailuengine lukee tiedostosta B riviä jotka ovat vaihtoehdot. (HNO3 Tekstiseikkailuengine lisää itse numerot vaihtoehdoille!)
Nyt käyttäjältä kysytään mitä tehdään ja kysymys pystyy ikuisessa loopissa kunnes annettu vaihtoehto on väliltä 1 - B. Validin vaihtoehdon saamisen jälkeen HNO3 Tekstiseikkailuengine lukee tiedostosta taas B riviä ja näyttää sen rivin joka vastasi valitsemaasi vaihtoehtoa.
Nyt HNO3 Tekstiseikkailuengine tarkistaa että jos antamasi vaihtoehto oli C niin siirrytään seuraavaan kysymykseen (sama rujanssi alusta) ja jos se oli jotain muuta, peli loppuu. Kun TH-skriptitiedosto loppuu, näytetään viesti jossa onnitellaan pelin läpäisemisestä.
tekstiseikkailuengine.cpp
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
FILE *f=NULL;
char BUFFERI[200];
int juttu,himo,wamma,korpi;
f = fopen(argv[1],"r");
if (!f)
{
cout << "tiedostoa ei ole." << endl;
return(1);
}
ALUSTxD:;
fseek(f,0,SEEK_SET);
while (fgets(BUFFERI,200,f))
{
himo = atoi(BUFFERI);
for (juttu=0;juttu<himo;juttu++)
{
fgets(BUFFERI,200,f);
cout << BUFFERI;
}
fgets(BUFFERI,200,f);
himo = atoi(BUFFERI);
fgets(BUFFERI,200,f);
wamma = atoi(BUFFERI);
for (juttu=0;juttu<himo;juttu++)
{
fgets(BUFFERI,200,f);
cout << (juttu+1) << ". " << BUFFERI;
}
korpi = -1;
while(!(korpi >= 1 && korpi <= himo))
{
cout << "-> -> -> ??? ";
cin >> korpi;
}
for (juttu=0;juttu<himo;juttu++)
{
fgets(BUFFERI,200,f);
if (korpi==(juttu+1)) cout << BUFFERI;
}
cout << endl << endl;
if (korpi != wamma) goto KUALLU;
}
goto MAGGARA;
KUALLU:;
cout << "haha luuseri kuolit!!!!! :D :D :D" << endl;
cout << "kirjota 5 jos haluut uusixxxx!!!" << endl;
cin >> juttu;
if (juttu==5) goto ALUSTxD;
fclose(f);
return(1);
MAGGARA:;
fclose(f);
cout << "VOITIT...........! :-o :-o" << endl;
return(0);
}mummoseikkailu.ths (esimerkkipeli 1)
20 Olet viemärissä. Menetkö..? 3 3 Munalle Ravintolaan rAutakauppaan ei saa munata! oot jo valmiix laeski!!!!!!!!!!!!!!!!!1 vautsi sä keksit tän jutu n juoanoen! 3 Olet rautakaupassa, mieleesi tulee perverssi juttu Nauran jutulle yksinäsi. Kauppias katsoo sinua oudosti. Mitä haluat ostaa? 3 1 Liisteriä Nauloja Tomaatteja jännää! kiihoittavaa! ;) 1 Olet siis ostanut liisteriä koska päätit juuri..? 5 3 Tapetoida seinäsi Tapetoida naapurin seinän Tapetoida mummosi seinään Syödä liisteriä mutsis ootko läski luuseri ootko luuseri joka on läski that's teh point!! yummy ;---------D MULLON MUNA..........MÄGGÄRÄ! 3 Heh! Keksit tapetoida mummosi seinään! Menet mummolaan ja mummo onkin kuollut aivokuppaan! Mitä teet mummosta? 4 4 Juusto Fodue Kebab Porkkanaraaste Kansaneläkelaitos NAM! :D YUMMY :D YUMMU YUMSTERS :D hyi!!!!!! :--------oooooooooooooooooooooooooo
kebabravintolaseikkailu (esimerkkipeli 2 - kiitos tejeez!)
9
seikkailu
__
/ /_ ____ _ ___
/ / / __/ // / / /
/ /\ \ / __ //__ /__/ /__
/_/ \_\ /___ /___/ / / /__/
ravintolassa
TERVE tuloo teksti pelii :D:D:DD:D:
haaluuks pelaa :D:D:D
2
1
joo
ei
moi
homo
2
nyt sä oot kebab ravintolassa :D:D
mitä tillaat
2
2
pitaleipä kebab
keba ranskalaisil
haha pita leipä kebabii ei oo haha
hii
2
nyt sul on ranxalaiskebab
mttä teet
3
1
syön sen
heitän kaverin naamale :D:D
lähen ulos
söit kebabin
kaveri suuttu
hei hei
1
mitä teet
2
2
lyöt kaverias
lähet kotii
kaveri ei tykäbny
lähit kotiiParas tekstiseikkailuengine jota oon nähny! :D
Tää olis ehkä jopa saatettu julkaista ilman tuota esimerkkipeliä. ;)
Hieno moottori...
Aihe on jo aika vanha, joten et voi enää vastata siihen.