23.02.2015, 19:36
This is a tricky part of scripting for me.
I will try and explain it the best i can.
SO.
When i type /createquest <questname> It will create a .txt file of the name. I have done that part here.
Thats great. That works fine and it creates the file. The only problem i have is that i do not know how i can add text to that file.
As it works through a dialog system. I want it so the text file is created. When someone types in the Quest name from another dialog, it will add it to the Text file.
So what i have done here is. Create a dialog that asks for text input for a name.
Because the file FTW has been created under a command, it is not available to use under any other public. So on that part of code i have attempted to "Re open" the file and write in it. However that doesn't seem to work.
PS The reason why i did
underneath the CMD is because i want to be able to change the name of the text file when i first create it. E.G /createquest questname which will save as questname.txt
I hope i made sense and i would appreciate it if you guys could help or atleast try.
I will try and explain it the best i can.
SO.
When i type /createquest <questname> It will create a .txt file of the name. I have done that part here.
Код:
CMD:createquest(playerid, params[]) { new string[128]; if(isnull(params)) return SendClientMessage(playerid, COLOR_RED1, "ERROR: /createquest <questname>"); { format(string, sizeof(string), "Your quest will be saved as %s.txt", params); SendClientMessage(playerid, COLOR_RED1, string); format(savestring, sizeof(savestring), "%s.txt", params); new File:ftw=fopen(savestring, io_write); ShowPlayerDialog(playerid, DIALOG_START, DIALOG_STYLE_LIST, "Create Quest", "Quest Name\nQuest Start Position\nEnd Position\nSave", "Done", "Cancel"); return 1; } }
As it works through a dialog system. I want it so the text file is created. When someone types in the Quest name from another dialog, it will add it to the Text file.
Код:
if(dialogid == DIALOG_NAME) { if(!response) // { SendClientMessage(playerid, COLOR_RED1, "You didn't set a name"); } else { new string[128]; new namestring[128]; format(string, sizeof(string), "You named your Quest: %s", inputtext); SendClientMessage(playerid, COLOR_RED1, string); format(namestring, sizeof(namestring), "QuestName: %s", inputtext); new File:ftw=fopen(savestring, io_append); fwrite(ftw, namestring); return 1; }
Because the file FTW has been created under a command, it is not available to use under any other public. So on that part of code i have attempted to "Re open" the file and write in it. However that doesn't seem to work.
PS The reason why i did
Код:
new File:ftw=fopen(savestring, io_write);
I hope i made sense and i would appreciate it if you guys could help or atleast try.