ID:2129454
 
(See the best response by Phat T.)
Alright so I have a game that is just getting started up and I need a way to document feedback but I don't know how to make a suggestion verb for players to use. And if I did, I wouldn't know how to make all of the reports get saved into one place. I would appreciate some help please and thank you.
Best response
var
list
reports = list(/*Phat T*/)


mob
admin
verb

View_Reports(/*Phat T*/)
var/html = {"<font size=3><b>Reports: </b></font size>
<hr>
<font color=black>
<font size=2>"}

if(length(reports))
for(var/r in reports) html+="[r]<br><br>"
else html+="<br><b>No Reports</b>"
html+="<br>---------------------------<br>"
usr<<browse(html,"window=who,size=550x600")
mob
verb


File_Report(/*Phat T*/)
set hidden = 1
var/reportcategory = input("Filing your report, go with whatever category your report is supposed to be in or is closest to.","File Report")\
in list("Bug","Map Error","Grammar Mistake","Admin Abuse","Player Abuse","Other","Cancel")
if(reportcategory == "Cancel")
return
var/reportname = input("Please name your report.","Report Name") as text | null
if(!reportname)
usr<<"<font color=red>Your report failed to send, because it has no name"
return
if(length(reportname) > 50)
usr<<"<font color=red>Your report failed to send, because it was longer than 50 character"
return
var/reportdesc = input("Now please explain your report\n- Your IP, Key, and Name are being logged","Explanation")
if(!reportdesc)
usr<<"<font color=red>Your report failed to send, because it had no explanation"
return
reports+="\
- <b>
[reportcategory]</b>\
[usr.client.address] - [usr] ([usr.key])\
<br><b><u>
[html_encode(reportname)]</u></b>\
<br>
[html_encode(reportdesc)]\
<br>---"

usr<<"<font color=red>Your report has been sent, thank you"
Admin_Alert("<font color=red>Admin Alert: <font color=#0F79D0>[usr] ([usr.key]) - {[usr.client.address ? "usr.client.address" : "Unknown Address"]} has filled out a report")


proc
Admin_Alert(message)
for(var/mob/player/M in world)
if(M.admin)
M<<"[message]"


world
New()

if(fexists("Save Files/Reports.sav"))
var/savefile/F = new("Save Files/Reports.sav")
F["reports"] >> reports
..()
Del()
var/savefile/r = new("Save Files/Reports.sav")
r["reports"] << reports


Here is an example how I handle it. Hope it helps
In response to Phat T
Thanks!