Код:
#include <a_samp>
#include <dini>
#include <dutils>
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOUR_GREEN 0x33AA33AA
#define COLOUR_RED 0xAA3333AA
#define COLOUR_YELLOW 0xFFFF00AA
#define COLOUR_LIGHTBLUE 0x33CCFFAA
#define COLOUR_ORANGE 0xFF9900AA
#define PlayerFile "AdminScript/Users/%s.ini"
#define SettingFile "AdminScript/Settings/MainSettings.ini"
#define CommandFile "AdminScript/Settings/Commands.ini"
public OnFilterScriptInit()
{
print("\n****************************************");
print("* Admin Filterscript by your name here *");
print("****************************************\n");
if(!fexist(SettingFile))
{
dini_Create(SettingFile);
dini_IntSet(SettingFile, "PocketMoney", 3000);
dini_IntSet(SettingFile, "JailCommands", 0);
dini_IntSet(SettingFile, "AnnounceSeconds", 3);
dini_IntSet(SettingFile, "PassMin", 3);
dini_IntSet(SettingFile, "PassMax", 15);
}
gSettings[POCKET_MONEY] = dini_Int(SettingFile, "PocketMoney");
gSettings[JAIL_COMMANDS] = dini_Int(SettingFile, "JailCommands");
gSettings[ANNOUNCE_SECONDS] = dini_Int(SettingFile, "AnnounceSeconds");
gSettings[PASS_MIN] = dini_Int(SettingFile, "PassMin");
gSettings[PASS_MAX] = dini_Int(SettingFile, "PassMax");
if(!fexist(CommandFile))
{
dini_Create(CommandFile);
dini_IntSet(CommandFile, "Akill", 6);
dini_IntSet(CommandFile, "Announce", 5);
dini_IntSet(CommandFile, "Armourall", 3);
dini_IntSet(CommandFile, "Ban", 9);
dini_IntSet(CommandFile, "Carhp", 4);
dini_IntSet(CommandFile, "Explode", 5);
dini_IntSet(CommandFile, "Goto", 4);
dini_IntSet(CommandFile, "Gethere", 5);
dini_IntSet(CommandFile, "Givearmour", 6);
dini_IntSet(CommandFile, "Givehealth", 6);
dini_IntSet(CommandFile, "Giveweapon", 7);
dini_IntSet(CommandFile, "God", 10);
dini_IntSet(CommandFile, "Healall", 7);
dini_IntSet(CommandFile, "Imitate", 8);
dini_IntSet(CommandFile, "Ip", 2);
dini_IntSet(CommandFile, "Kick", 7);
dini_IntSet(CommandFile, "Maxammo", 8);
dini_IntSet(CommandFile, "Ping", 1);
dini_IntSet(CommandFile, "Setlevel", 10);
dini_IntSet(CommandFile, "Setwanted", 6);
dini_IntSet(CommandFile, "Tban", 9);
dini_IntSet(CommandFile, "Time", 3);
dini_IntSet(CommandFile, "Weather", 3);
}
gCommands[AKILL] = dini_Int(CommandFile, "Akill");
gCommands[ANNOUNCE] = dini_Int(CommandFile, "Announce");
gCommands[ARMOURALL] = dini_Int(CommandFile, "Armourall");
gCommands[BAN] = dini_Int(CommandFile, "Ban");
gCommands[CARHP] = dini_Int(CommandFile, "Carhp");
gCommands[EXPLODE] = dini_Int(CommandFile, "Explode");
gCommands[GOTO] = dini_Int(CommandFile, "Goto");
gCommands[GETHERE] = dini_Int(CommandFile, "Gethere");
gCommands[GIVEARMOUR] = dini_Int(CommandFile, "Givearmour");
gCommands[GIVEHEALTH] = dini_Int(CommandFile, "Givehealth");
gCommands[GIVEWEAPON] = dini_Int(CommandFile, "Giveweapon");
gCommands[GOD] = dini_Int(CommandFile, "God");
gCommands[HEALALL] = dini_Int(CommandFile, "Healall");
gCommands[IMITATE] = dini_Int(CommandFile, "Imitate");
gCommands[IP] = dini_Int(CommandFile, "Ip");
gCommands[KICK] = dini_Int(CommandFile, "Kick");
gCommands[MAXAMMO] = dini_Int(CommandFile, "Maxammo");
gCommands[SETLEVEL] = dini_Int(CommandFile, "Setlevel");
gCommands[SETWANTED] = dini_Int(CommandFile, "Setwanted");
gCommands[TBAN] = dini_Int(CommandFile, "Tban");
gCommands[TIME] = dini_Int(CommandFile, "Time");
gCommands[WEATHER] = dini_Int(CommandFile, "Weather");
return 1;
}
dcmd_register(playerid, params[])
{
if(gPlayerInfo[playerid][PLAYER_REGGED] == 1)
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You have already registered!");
else if(!params[0])
return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /register [password]");
else if(strlen(params) < gSettings[PASS_MIN] || strlen(params) > gSettings[PASS_MAX])
{
new string[200];
format(string, sizeof(string), "ERROR: Password must be between %d and $d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);
return SendClientMessage(playerid, COLOUR_ORANGE, string);
}
else
{
new password = num_hash(params);
gPlayerInfo[playerid][PLAYER_PASS] = password;
gPlayerInfo[playerid][PLAYER_REGGED] = 1;
gPlayerInfo[playerid][PLAYER_LOGGED] = 1;
GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16);
new string[256]; format(string, sizeof(string), "You have successfully registered your account with the password \'%s\'. You have been automatically logged in.", params);
return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);
}
}
else if(strlen(params) < gSettings[PASS_MIN] || strlen(params) > gSettings[PASS_MAX])
{
new string[200];
format(string, sizeof(string), "ERROR: Password must be between %d and $d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);
return SendClientMessage(playerid, COLOUR_ORANGE, string);
}
dcmd_password(playerid, params[])
{
if(gPlayerInfo[playerid][PLAYER_REGGED] != 1)
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You must register first to do that! Use /register [password] to register and login.");
else if(gPlayerInfo[playerid][PLAYER_LOGGED] == 0)
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You must be logged-in to do that! Use /login [password] to login.");
else
{
new tmp[30],
tmp2[30],
index;
tmp = strtok(params, index);
if(!strlen(tmp))
return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /password [password] [new password]");
tmp2 = strtok(params, index);
if(!strlen(tmp2))
return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /password [password] [new password]");
new oldpassword = num_hash(tmp), newpassword = num_hash(tmp2);
if(gPlayerInfo[playerid][PLAYER_PASS] == oldpassword)
{
if(oldpassword == newpassword)
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Your old password can not be the same as your new password.");
else if(strlen(tmp2) < gSettings[PASS_MIN] || strlen(tmp2) > gSettings[PASS_MAX])
{
new string[100]; format(string, sizeof(string), "ERROR: Your new password must be between %d and %d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);
return SendClientMessage(playerid, COLOUR_ORANGE, string);
}
gPlayerInfo[playerid][PLAYER_PASS] = newpassword;
new string[256]; format(string, sizeof(string), "You have successfully changed your password from \'%s\' to \'%s\'.", tmp, tmp2);
return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);
}
else
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Incorrect password.");
}
}
else if(strlen(tmp2) < gSettings[PASS_MIN] || strlen(tmp2) > gSettings[PASS_MAX])
{
new string[100]; format(string, sizeof(string), "ERROR: Your new password must be between %d and %d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);
return SendClientMessage(playerid, COLOUR_ORANGE, string);
}
enum COMMANDS_MAIN {
AKILL,
ANNOUNCE,
ARMOURALL,
BAN,
CARHP,
EXPLODE,
FLIP,
GOTO,
GETHERE,
GIVEARMOUR,
GIVEHEALTH,
GIVEWEAPON,
GOD,
HEALALL,
IMITATE,
IP,
KICK,
MAXAMMO,
PING,
SETLEVEL,
SETWANTED,
TBAN,
TIME,
WEATHER
}
new gCommands[COMMANDS_MAIN];
C:\Users\james\Desktop\admin system.pwn(36) : error 017: undefined symbol "gSettings"
C:\Users\james\Desktop\admin system.pwn(36) : error 017: undefined symbol "POCKET_MONEY"
C:\Users\james\Desktop\admin system.pwn(36) : error 029: invalid expression, assumed zero
C:\Users\james\Desktop\admin system.pwn(36) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
4 Errors.
Nice you coppied it from the sa-mp wiki. Um you folowed the wiki and still you can't code it ? WTF? :P
Yeah, you copied from the wiki, If you would have read it, it tells you how to correct these issues.
I don't see why you are so rude? the admin script at the wiki is really a tutorial .. STEP BY STEP how to make it .. im sure iv'e read it 100 times before i found out how to code it without problems and without copypaste like you obviously didn't do .. Go ahead read it the 5th time READ closely
Um but there r some code which is not right I got it workin! But changed some code! And BTW when the guy finishes it all I will use it !