View difference between Paste ID: 0pKtnMnK and QTgKYUSP
SHOW: | | - or go back to the newest paste.
1
//===================== Crédits =======================
2
//=====================================================
3
//====================== IGFE =========================
4
//=============== In Game File Editor =================
5
//=====================================================
6
//======================= par =========================
7
//==================== KonVict92x =====================
8
//=====================================================
9
10
//=====================================================
11
#include <a_samp>
12
#include <dini>
13
#if defined FILTERSCRIPT
14
#endif
15
16
//=============== OnPlayerCommandText =================
17
public OnPlayerCommandText(playerid, cmdtext[])
18
{
19
	new cmd[128], tmp[128], idx;
20
	cmd = strtok(cmdtext, idx);
21
	
22
	if(strcmp(cmd,"/file",true)==0)
23
	{
24-
	    if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xE60000F6, "Erreur, vous n'etes pas admin !");
24+
	    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xE60000F6, "Erreur, vous n'etes pas admin !");
25
	    new ligne[128], text[128], contenu[128], message[128], file[128];
26
	    tmp = strtok(cmdtext, idx);
27
	    text = strtok(cmdtext, idx);
28
	    ligne = strtok(cmdtext, idx);
29
	    contenu = strtok(cmdtext, idx);
30
	    format(file, sizeof(file), "%s.txt",text);
31
	    if(strlen(tmp) == 0) return SendClientMessage(playerid,0xE27507FF, "Usage : /file <CREATE/WRITE/REMOVE/FIND> <NOMDUFICHIER>");
32
		if(strlen(text) == 0) return SendClientMessage(playerid,0xE27507FF, "Usage : /file <CREATE/WRITE/REMOVE/FIND> <NOMDUFICHIER>");
33
		if(strlen(ligne) == 0 && strcmp(tmp,"write",true)==0) return SendClientMessage(playerid, 0xE60000F6, "Usage : /file write <NOMDUFICHIER> <NOMDELALIGNE> <CONTENU>");
34
		if(strlen(contenu) == 0 && strcmp(tmp,"write",true)==0) return SendClientMessage(playerid, 0xE60000F6, "Usage : /file write <NOMDUFICHIER> <NOMDELALIGNE> <CONTENU>");
35
  		if(strcmp(tmp,"remove",true)==0 && strlen(text) == 0) return SendClientMessage(playerid, 0xE60000F6, "Usage : /file remove <NOMDUFICHIER> <NOMDELALIGNE(Optionnel)>");
36
  		if(strcmp(tmp,"create",true)==0 && strlen(text) == 0) return SendClientMessage(playerid, 0xE60000F6, "Usage : /file create <NOMDUFICHIER>");
37
	    if(strcmp(tmp,"create",true)==0)
38
		{
39
			dini_Create(file);
40
			format(message,sizeof(message), "Le fichier %s.txt a bien été creer !", text);
41
			SendClientMessage(playerid, 0x33AA33AA, message);
42
		}
43
	    if(strcmp(tmp,"write",true)==0)
44
		{
45
			if(!dini_Isset(file,ligne)) format(message,sizeof(message), "La ligne %s a été creer dans le fichier %s avec comme contenu : %s", ligne, text, contenu);
46
			else format(message,sizeof(message), "%s a été integrer a la ligne %s du fichier %s.txt", contenu, ligne, text);
47
  			dini_Set(file,ligne,contenu);
48
			SendClientMessage(playerid, 0x33AA33AA, message);
49
		}
50
	    if(strcmp(tmp,"remove",true)==0)
51
		{
52
			if(strlen(ligne) == 0)
53
			{
54
				dini_Remove(file);
55
				format(message,sizeof(message), "Le fichier %s.txt a bien été supprimer !", text);
56
			}
57
			if(!dini_Isset(file,ligne)) return SendClientMessage(playerid, 0xE60000F6, "Erreur, la ligne entrée n'existe pas !");
58
			if(strlen(ligne) !=0)
59
			{
60
 				format(message,sizeof(message), "La ligne %s du fichier %s a bien été supprimée", ligne, text);
61
   				dini_Unset(file,ligne);
62
			}
63
			SendClientMessage(playerid, 0x33AA33AA, message);
64
		}
65
 	    if(strcmp(tmp,"find",true)==0)
66
 	    {
67
			if(strlen(ligne) == 0 && fexist(file)) format(message,sizeof(message), "Le fichier %s.txt est present.", text);
68
			if(!fexist(file)) format(message,sizeof(message), "Le fichier %s.txt n'est pas present.", text);
69
			if(strlen(ligne) != 0 && dini_Isset(file,ligne)) format(message,sizeof(message), "La ligne %s est presente dans le fichier %s.txt", ligne, text);
70
			if(strlen(ligne) != 0 && !dini_Isset(file,ligne)) format(message,sizeof(message), "La ligne %s n'est pas presente dans le fichier %s.txt", ligne, text);
71
   			if(fexist(file) && strlen(ligne) != 0 && !dini_Isset(file,ligne)) format(message, sizeof(message), "Le fichier %s existe mais la ligne %s n'existe pas", text, ligne);
72
			SendClientMessage(playerid, 0xE27507FF, message);
73
 	    }
74
	    return 1;
75
	}
76
	return 0;
77
}
78
79
80
//======= Ce code permet d'eviter d'inserer une include, ne surtout pas y toucher, sinon le code ne marcherai plus ===============
81
strtok(const string[], &index)
82
{
83
	new length = strlen(string);
84
	while ((index < length) && (string[index] <= ' '))
85
	{
86
		index++;
87
	}
88
89
	new offset = index;
90
	new result[20];
91
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
92
	{
93
		result[index - offset] = string[index];
94
		index++;
95
	}
96
	result[index - offset] = EOS;
97
	return result;
98
}
99
100
stock strrest(const string[], &index)
101
{
102
	new length = strlen(string);
103
	while ((index < length) && (string[index] <= ' '))
104
	{
105
		index++;
106
	}
107
	new offset = index;
108
	new result[128];
109
	while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
110
	{
111
		result[index - offset] = string[index];
112
		index++;
113
	}
114
	result[index - offset] = EOS;
115
	return result;
116
}