Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
About
Team
Rules
Stats
Status
Sitemap
Chat
Downloads
Forum
News
Our Projects
Major Community Projects
Recent Posts
Unread Posts
Replies
Tools
SourceCoder3
Other Things...
Omnimaga Radio
TI-83 Plus ASM File Unsquisher
Z80 Conversion Tools
IES TI File Editor
Free RAM areas
Comprehensive Getkeyr table
URL Shortener
Online Axe Tilemap Editor
Help
Contact Us
Change Request
Report Issue/Bug
Team
Articles
Members
View the memberlist
Search For Members
Buddies
Login
Register
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
TI-BASIC
»
NPC dialogue?
« previous
next »
Print
Pages: [
1
]
2
Go Down
Author
Topic: NPC dialogue? (Read 4627 times)
0 Members and 1 Guest are viewing this topic.
TIfanx1999
ಠ_ಠ ( ͡° ͜ʖ ͡°)
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 6173
Rating: +191/-9
NPC dialogue?
«
on:
October 27, 2007, 06:03:00 am »
I was wondering what would be the quickest way to retrieve NPC dialouge in an RPG? For example; you are standing in front of an NPC and PRESS 2nd. The program checks and verifies that there is an NPC standing in front of you and then the subroutine determines what text is to be put on the screen is run. My quesion is what would be the most efficent way to determine what text the NPC you are talking to will say. The only way I can think of is ALOT of IF statments, but I don't want it to take longer and longer to retrive text the further you progess into the game, but i can't think of a way to keep the speed from degrading over time. Can some one help me out with this, Im probably over thinking this.
Logged
Halifax
LV9
Veteran (Next: 1337)
Posts: 1334
Rating: +2/-1
NPC dialogue?
«
Reply #1 on:
October 27, 2007, 06:43:00 am »
Well, this is how I used to solve it.
Have a string like this:
"/npc text 1/npc text 2/npc text 3" etc.
Then find out which NPC the player is talking to, and then from there you do an inString() look for the '/' that is NPC number. Does that make sense?
Logged
There are 10 types of people in this world-- those that can read binary, and those that can't.
Netham45
LV11
Super Veteran (Next: 3000)
Posts: 2103
Rating: +213/-4
*explodes*
NPC dialogue?
«
Reply #2 on:
October 27, 2007, 06:45:00 am »
idk, but mabye you could put all the text in a string, where every NPC has a static length of characters, then use the Sub( command to pull out that ones characters based on a number the NPC has been assigned.
Logged
Omnimaga Admin
Halifax
LV9
Veteran (Next: 1337)
Posts: 1334
Rating: +2/-1
NPC dialogue?
«
Reply #3 on:
October 27, 2007, 07:07:00 am »
Well I used the instring method
Goes like this(in pseudo code):
instring(1,SlashYouWant)->A
instring(A,1)->B
B-A->length
sub(Str, A, length)
pretty simple
Logged
There are 10 types of people in this world-- those that can read binary, and those that can't.
Netham45
LV11
Super Veteran (Next: 3000)
Posts: 2103
Rating: +213/-4
*explodes*
NPC dialogue?
«
Reply #4 on:
October 27, 2007, 07:29:00 am »
Ok, that will work too.
Logged
Omnimaga Admin
TIfanx1999
ಠ_ಠ ( ͡° ͜ʖ ͡°)
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 6173
Rating: +191/-9
NPC dialogue?
«
Reply #5 on:
October 27, 2007, 09:24:00 am »
I'm not familar with instring, what does it do and what arguments does it take on?
Here is what I was considering though, store all the game's text in one big string and use variables to determine start point of an npcs dialogue and then length. ie;
Where; A= text start point, B=length-1. P and Q are Y and X text coordinates respectivley.
code:
QUOTE
For I,A,B+A
Text(P,Q,sub(Str1,I,1
Q+4->Q
If sub(Str1,I,1=" "
Q-3->Q
If Q>=90
Then P+6->P
21->Q
End
End
Return
What I need Is somwhere withing the program structure to change the values of A and B depending on what NPC you are talking with, and i don't want to use for example;
Pseudcode;
QuoteBegin
-->
QUOTE
If NPC=1
1->A
2->B
If NPC=2
21->A
3->B
If NPC=3
52->A
25->B
ect...
That is what I am having trouble figuring out.
Logged
Halifax
LV9
Veteran (Next: 1337)
Posts: 1334
Rating: +2/-1
NPC dialogue?
«
Reply #6 on:
October 27, 2007, 09:37:00 am »
Don't you have a TI Handbook handy to look up inString()?
It is hard for me to explain.
Logged
There are 10 types of people in this world-- those that can read binary, and those that can't.
TIfanx1999
ಠ_ಠ ( ͡° ͜ʖ ͡°)
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 6173
Rating: +191/-9
NPC dialogue?
«
Reply #7 on:
October 27, 2007, 09:40:00 am »
No
old one got lost a long time ago
Edit: found it in my ti-89's book.
inString(source string,Substring,startpoint)
It basically searches for a substring within a string starting at a specifed point (If included).
Logged
tifreak
LV11
Super Veteran (Next: 3000)
Posts: 2708
Rating: +82/-3
My Kung Fu IS strong...
NPC dialogue?
«
Reply #8 on:
October 27, 2007, 01:38:00 pm »
get on irc.
http://tifreakware.net/irc
There, you can find help.
Logged
Projects: AOD Series: 75% | FFME: 80% | Pokemon: 18% | RPGSK: 60% | Star Trek: 70% | Star Trek 83+: 40% | TI-City: 5%
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
NPC dialogue?
«
Reply #9 on:
October 27, 2007, 01:56:00 pm »
usually in my RPGs I make events have an ID, which is the same than your char position. So for example if my char is at 99,57, in the event subprogram if there is a if condition that is like If N=9957 it will execute an event. I do this instead of making a huge NPC dialogue only database because I usually make talking to NPCs do more than displaying text sometimes, like for example if I want the NPC to walk to the next building and enter it I have code to animate him or stuff like this.
If your NPC interaction is only gonna be talking, nothing else, no special events like a boss fight, then i suggest storing your text like Halifax
Logged
Liazon
Guest
NPC dialogue?
«
Reply #10 on:
October 28, 2007, 06:57:00 am »
i wonder how Ranman organizes dialogue in UV since he said that there can be long conversations.
Logged
simplethinker
LV7
Elite (Next: 700)
Posts: 695
Rating: +16/-5
snjwffl
NPC dialogue?
«
Reply #11 on:
October 28, 2007, 12:08:00 pm »
You could also store the strings into a few sub programs and then do a couple If statements to decide which sub to open. Then you could just run the sub and return the string in Ans and extract what you wanted (so you don't have some massive string that takes forever to search).
I don't know if you use Asm libs or not, but you could also store the text in an archived program and have Celtic extract the line it's stored in. This is the least memory-intensive way to do it and would also be fairly fast, since if you numbered them like DJ Omnimaga does you would just read the Nth line.
Logged
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true." -- Professor Robert Silensky
Chip's Challenge: ħ%
TIfanx1999
ಠ_ಠ ( ͡° ͜ʖ ͡°)
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 6173
Rating: +191/-9
NPC dialogue?
«
Reply #12 on:
October 28, 2007, 12:09:00 pm »
QUOTE
If your NPC interaction is only gonna be talking, nothing else, no special events like a boss fight, then i suggest storing your text like Halifax
No, it will be more interactive as you were saying. That's more along the lines of how I'll implement it.
QuoteBegin
-->
QUOTE
i wonder how Ranman organizes dialogue in UV since he said that there can be long conversations.
Yea, I'd really like to know. That would be really useful
Logged
tifreak
LV11
Super Veteran (Next: 3000)
Posts: 2708
Rating: +82/-3
My Kung Fu IS strong...
NPC dialogue?
«
Reply #13 on:
October 28, 2007, 01:26:00 pm »
Well, my npc dialogues are stored in programs. I use If statements to figure out where the character is at, and which NPC he is talkin to, then store the data to a string, using / to designate a new line, + to pause for key, then clear and continue displaying, and +* to pause, then exit.
Works wonderfully. If you don't believe me, look at the pokemon screenshots.
Logged
Projects: AOD Series: 75% | FFME: 80% | Pokemon: 18% | RPGSK: 60% | Star Trek: 70% | Star Trek 83+: 40% | TI-City: 5%
TIfanx1999
ಠ_ಠ ( ͡° ͜ʖ ͡°)
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 6173
Rating: +191/-9
NPC dialogue?
«
Reply #14 on:
October 28, 2007, 01:53:00 pm »
Couldnt you just check the character's current positon on the map to tell where he is at without using ifs? Or am I misunderstanding you? Also, some source code for me to look at would be nice
.
Logged
Print
Pages: [
1
]
2
Go Up
« previous
next »
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
TI-BASIC
»
NPC dialogue?