Solved

Visual Studio 2008 Generating Custom Code Off Of a User Interface from User Input

Posted on 2009-03-30
7
242 Views
Last Modified: 2013-11-26
Hello,  I am trying to figure out how to generate code from user input. In Visual Studio 2008, Visual Basic
I am new to this so I will try to explain the best I can. Thank you.
My script always begins with:

function Init(Quest)

Then from here a user would input a quest name, type and zone in a interface.

Ex:
RegisterQuest(Quest, "Kill Zombies", "Heritage", "Firestorm")
end

This part a user would enter in his interface what would an NPC say if accepted.

Ex:
function Accepted(Quest, QuestGiver, Player)
      if QuestGiver ~= nil then
            if GetDistance(Player, QuestGiver) < 30 then
                  FaceTarget(QuestGiver, Player)
                  Say(QuestGiver, "Thank you for accepting this task " .. GetName(Player) .. ".  Please return to me when you have completed it.")
                  Emote(QuestGiver, " thanks you warmly.", Player)
            end
      end
end

If the quest is denied

Ex:
function Declined(Quest, QuestGiver, Player)
      if QuestGiver ~= nil then
            if GetDistance(Player, QuestGiver) < 30 then
                  FaceTarget(QuestGiver, Player)
                  Say(QuestGiver, "If you change your mind " .. GetName(Player) .. ", you know where to find me.")
                  Emote(QuestGiver, " glares at you.", Player)
            end
      end
end

Last if the quest is completed

Ex:
function KilledAllCrabs(Quest, QuestGiver, Player)
      UpdateQuestStepDescription(Quest, 1, "I killed the zombies as Daniel requested.")
      UpdateQuestDescription(Quest, "I killed some of the zombies in the tomb.  Return to Daniel for your reward.")
end

What I need is a few text boxs that a user can input "Kill Zombies" or whatever they like and when they push a generate button it will create a file with a .quest extension.
All of the code remains the same except for the quotes that would be the user input from the interface.

Basically everything in quotes can be changed by the user in an interface.
I have created my own functions for when a user accepts, denys and completes a quest.
The user just needs to input what should happen then click a generate button to throw it all together as a .quest file to be saved in his or her quest folder for the server to call on later.

I also have many other functions like:
AddQuestRewardFaction --- (Quest, Faction ID, Amount)
AddQuestRewardCoin --- (Quest, Copper, Silver, Gold, Plat)
AddQuestStepObtainItem --- (Quest, Step ID, Description, Quantity, Percentage, TaskGroupText, Item ID(s))
Etc
Etc
I would also like to have these available on the UI but wont generate unless a user checks a box to add them or there is a box already for them but wont step into the code unless the user enters something into the box.

Is there anyone that can explain how I would go about doing this. Or maybe some kind of visual studio plugin that will help me out.  

Thank you again for taking the time to read.  I hope I explained my substitution well enough.
0
Comment
Question by:Daniel112
  • 4
  • 3
7 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24027434
Are you asking for a way to add dynamic TextBox controls to a form, and place them relative to other controls?
0
 

Author Comment

by:Daniel112
ID: 24033653
What im asking is how do I add a txtbox to a windows form to only edit what is in the "quoted" text of my script while keeping the code untouched.
This way when a user generates a .quest file it will have only edited the quoted text while keeping the script template intact.


0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24034815
How is the script executed?  It sounds like you might want to use variables, instead of hard-coded strings...

0
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 

Author Comment

by:Daniel112
ID: 24035926
The script is LUA as far as how it is excuted I dont know.  I dont do server side stuff.  Im just trying to create a program for my team to create quests without having to copy and paste the same script over and over and only edit the whats in the quotes.

I am wanting to create a form that, when filled out, and when a button is pushed, will write a file out to disk for you.

If its more helpful I think I will be using
String.Format
File.WriteAllText

0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24038706
That was what I was thinking--I meant macro expandable text before, not variables...
0
 

Author Comment

by:Daniel112
ID: 24045227
So would something like this work?

Dim s As String = "function Init(Quest)" & Environment.NewLine

Then based on the users values:
s &= "RegisterQuest(Quest, " & txtQuest.Text & ", " & txtType.Text & ", " & txtZone.Text & ")" & Environment.NewLine
s &= "end" & Environment.NewLine
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 24048506
Hmmm...I heard String.Format...but, that will work...

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question