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.

