05.07.2010, 19:27
Hello,
My name is Kevin, I am kind of a noob here at the SAMP Forums... XD and I am also sort of a noob to the Pawno scripting.... anyways... I was using a filterscript i found here on the site to make a login and register for my server, and i get the following errors.....
Could you please help? I'm sorry.. i know i'm new here, but i am not new to SAMP itself.... so... ya. XD if you need the full script i could post it. but i am simply using a script that i found here. Thank you.
-Kevin
P.S. Sorry if this is the wrong section.
EDIT: I decided to post the script.... here it is.... Credits to Joe Torran C.
My name is Kevin, I am kind of a noob here at the SAMP Forums... XD and I am also sort of a noob to the Pawno scripting.... anyways... I was using a filterscript i found here on the site to make a login and register for my server, and i get the following errors.....
Код:
C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(45) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(45) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(47) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(53) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(53) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(55) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(57) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(58) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(59) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(63) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(68) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(68) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(71) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(78) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(78) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(82) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(83) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(84) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(97) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse") C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(109) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(112) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(118) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(119) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(120) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(122) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(123) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(123) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(127) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(130) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(135) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(138) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(143) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(145) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(149) : warning 217: loose indentation C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(149) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(151) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(159) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(163) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(164) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(165) : error 017: undefined symbol "SetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(183) : error 017: undefined symbol "GetPVarInt" C:\Users\owner\Desktop\my samp server\filterscripts\LoginandRegister.pwn(188) : error 017: undefined symbol "SetPVarInt" Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 26 Errors.
Could you please help? I'm sorry.. i know i'm new here, but i am not new to SAMP itself.... so... ya. XD if you need the full script i could post it. but i am simply using a script that i found here. Thank you.
-Kevin
P.S. Sorry if this is the wrong section.
EDIT: I decided to post the script.... here it is.... Credits to Joe Torran C.
Код:
// [FS] torran's Registration System v3 // Made by Joe Torran C // DO NOT REMOVE THESE CREDITS #include <a_samp> #include <dini> #include <dudb> #include <zcmd> #define SCRIPT_VERSION "v3" #define colorRed 0xFF0000FF #define colorGreen 0x008000FF #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 #define DIALOG_ACCOUNT 3 #define DIALOG_CHANGEPASS 4 #define DIALOG_CHANGENAME 5 #define DIALOG_VIEWSTATS 6 #define DIALOG_CHECKSTATS 7 #pragma unused ret_memcpy #pragma unused strtok forward UpdateTime(playerid); new str[128]; new file[128]; new playerIP[16]; new Update; public OnPlayerConnect(playerid) { format(file, 128, "/tReg/%s.ini", GetName(playerid)); GetPlayerIp(playerid, playerIP, 16); TogglePlayerSpectating(playerid, 1); if(!dini_Exists(file)) { format(str, 128, "Welcome %s \n\nPlease register your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Account Management", str, "Register", "Quit"); } if(dini_Exists(file)) { if(strcmp(playerIP, dini_Get(file, "IP"), true) == 0) { dini_Set(file, "IP", playerIP); SetPVarInt(playerid, "Logged", 1); SetPlayerCash(playerid, dini_Int(file, "Money")); SetPlayerScore(playerid, dini_Int(file, "Score")); SetPVarInt(playerid, "Kills", dini_Int(file, "Kills")); SetPVarInt(playerid, "Deaths", dini_Int(file, "Deaths")); SetPVarInt(playerid, "Time", dini_Int(file, "Minutes Ingame")); Update = SetTimerEx("UpdateTime", 60*1000, 1, "i", playerid); SendClientMessage(playerid, colorGreen, "You have been automatically logged in."); } else { format(str, 128, "Welcome %s \n\nPlease login to your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account Management", str, "Login", "Quit"); } } return 1; } public OnPlayerDisconnect(playerid, reason) { format(file, 128, "/tReg/%s.ini", GetName(playerid)); if(GetPVarInt(playerid, "Logged") == 1) { dini_IntSet(file, "Money", GetPlayerMoney(playerid)); dini_IntSet(file, "Score", GetPlayerScore(playerid)); dini_IntSet(file, "Kills", GetPVarInt(playerid, "Kills")); dini_IntSet(file, "Deaths", GetPVarInt(playerid, "Deaths")); dini_IntSet(file, "Minutes Ingame", GetPVarInt(playerid, "Time")); KillTimer(Update); } return 1; } public OnFilterScriptInit() { printf("\n [FS] torran's Registration System %s \n", SCRIPT_VERSION); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { format(file, 128, "/tReg/%s.ini", GetName(playerid)); if(dialogid == DIALOG_REGISTER) { if(!response) return Kick(playerid); if(response) { if(strlen(inputtext) == 0) { format(str, 128, "Welcome %s \n\nPlease register your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Account Management", str, "Register", "Quit"); return 0; } if(!dini_Exists(file)) { dini_Create(file); dini_IntSet(file, "Password", udb_hash(inputtext)); dini_IntSet(file, "Money", GetPlayerMoney(playerid)); dini_IntSet(file, "Score", GetPlayerScore(playerid)); dini_IntSet(file, "Kills", GetPVarInt(playerid, "Kills")); dini_IntSet(file, "Deaths", GetPVarInt(playerid, "Deaths")); dini_IntSet(file, "Minutes Ingame", GetPVarInt(playerid, "Time")); format(str, 128, "Account successfully Registered \n\n\nWelcome %s \n\nPlease login to your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account Management", str, "Login", "Quit"); } } } if(dialogid == DIALOG_LOGIN) { if(!response) return Kick(playerid); if(response) { if(strlen(inputtext) == 0) { format(str, 128, "Welcome %s \n\nPlease login to your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account Management", str, "Login", "Quit"); return 0; } if(fexist(file)) { new password = dini_Int(file, "Password"); if(udb_hash(inputtext) != password) { if(GetPVarInt(playerid, "Attempts") == 0) { SetPVarInt(playerid, "Attempts", 1); SendClientMessage(playerid, colorRed, "Incorrect password, You have 1 more attempt"); format(str, 128, "Welcome %s \n\nPlease login to your account", GetName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account Management", str, "Login", "Quit"); } else if(GetPVarInt(playerid, "Attempts") == 1) { SendClientMessage(playerid, colorRed, "Incorrect password, You do not have any attempts left"); Kick(playerid); } } else { SetPVarInt(playerid, "Logged", 1); SetPlayerCash(playerid, dini_Int(file, "Money")); SetPlayerScore(playerid, dini_Int(file, "Score")); SetPVarInt(playerid, "Kills", dini_Int(file, "Kills")); SetPVarInt(playerid, "Deaths", dini_Int(file, "Deaths")); SetPVarInt(playerid, "Time", dini_Int(file, "Minutes Ingame")); GetPlayerIp(playerid, playerIP, 16); dini_Set(file, "IP", playerIP); Update = SetTimerEx("UpdateTime", 60*1000, 1, "i", playerid); TogglePlayerSpectating(playerid, 0); SendClientMessage(playerid, colorGreen, "You have successfully logged in."); } } } } if(dialogid == DIALOG_CHANGEPASS) { if(response) { if(GetPVarInt(playerid, "PassStage") == 1) { new password = dini_Int(file, "Password"); if(udb_hash(inputtext) == password) { SetPVarInt(playerid, "PassStage", 2); ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_INPUT, "Account Management", "Please input your new password", "Change Pass", "Cancel"); } else { SendClientMessage(playerid, colorRed, "Incorrect password."); } } else if(GetPVarInt(playerid, "PassStage") == 2) { if(GetPVarInt(playerid, "Logged") == 1) { dini_IntSet(file, "Password", udb_hash(inputtext)); SendClientMessage(playerid, colorGreen, "Password successfully changed."); } } } } if(dialogid == DIALOG_CHANGENAME) { if(response) { if(GetPVarInt(playerid, "NameStage") == 1) { new password = dini_Int(file, "Password"); if(udb_hash(inputtext) == password) { SetPVarInt(playerid, "NameStage", 2); ShowPlayerDialog(playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Account Management", "Please input your new name", "Change", "Cancel"); } else { SendClientMessage(playerid, colorRed, "Incorrect password."); } } else if(GetPVarInt(playerid, "NameStage") == 2) { format(file, 128, "/tReg/%s.ini", inputtext); if(dini_Exists(file)) { SetPVarInt(playerid, "NameStage", 2); ShowPlayerDialog(playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Account Management", "A user has already registered with this name \nIf this is you please reconnect using that account\n\nElse please enter your new name", "Change", "Cancel"); } else { format(file, 128, "/tReg/%s.ini", GetName(playerid)); dini_Remove(file); format(file, 128, "/tReg/%s.ini", inputtext); dini_Create(file); dini_IntSet(file, "Password", udb_hash(inputtext)); dini_IntSet(file, "Money", GetPlayerMoney(playerid)); dini_IntSet(file, "Score", GetPlayerScore(playerid)); dini_IntSet(file, "Kills", GetPVarInt(playerid, "Kills")); dini_IntSet(file, "Deaths", GetPVarInt(playerid, "Deaths")); dini_IntSet(file, "Minutes Ingame", GetPVarInt(playerid, "Time")); SetPlayerName(playerid, inputtext); SendClientMessage(playerid, colorGreen, "Name successfully changed."); } } } } return 0; } public UpdateTime(playerid) { format(file, 128, "/tReg/%s.ini", GetName(playerid)); SetPVarInt(playerid, "Time", GetPVarInt(playerid, "Time")+1); return 1; } CMD:changepass(playerid, params[]) { if(GetPVarInt(playerid, "Logged") == 1) { SetPVarInt(playerid, "PassStage", 1); ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_INPUT, "Account Management", "Please input your current password for verification", "Continue", "Cancel"); } return 1; } CMD:changename(playerid, params[]) { if(GetPVarInt(playerid, "Logged") == 1) { SetPVarInt(playerid, "NameStage", 1); ShowPlayerDialog(playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Account Management", "Please input your password for verification", "Continue", "Cancel"); } return 1; } CMD:viewstats(playerid, params[]) { if(GetPVarInt(playerid, "Logged") == 1) { new Float:health; GetPlayerHealth(playerid, health); new Float:armour; GetPlayerArmour(playerid, armour); format(str, 128, "Name: %s\nHealth: %0.00f\nArmour: %0.00f\nMoney: %i\nScore: %i\nKills: %i\nDeaths: %i", GetName(playerid), health, armour, GetPlayerMoney(playerid), GetPlayerScore(playerid), GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths")); ShowPlayerDialog(playerid, DIALOG_VIEWSTATS, DIALOG_STYLE_MSGBOX, "Account Management", str, "Ok", "Cancel"); } return 1; } CMD:checkstats(playerid, params[]) { new targetid; if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, colorRed, "You need to be an RCON Admin to use this command."); if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, colorRed, "Usage: /checkstats [PlayerID/PartOfName]"); if(targetid == playerid) return SendClientMessage(playerid, colorRed, "You are trying to view the stats of you, To do this type: /viewstats"); if(targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, colorRed, "Player not Found"); if(GetPVarInt(playerid, "Logged") == 1) { new Float:health; GetPlayerHealth(targetid, health); new Float:armour; GetPlayerArmour(targetid, armour); format(str, 128, "Name: %s\nHealth: %0.00f\nArmour: %0.00f\nMoney: %i\nScore: %i\nKills: %i\nDeaths: %i", GetName(targetid), health, armour, GetPlayerMoney(targetid), GetPlayerScore(targetid), GetPVarInt(targetid, "Kills"), GetPVarInt(targetid, "Deaths")); ShowPlayerDialog(playerid, DIALOG_VIEWSTATS, DIALOG_STYLE_MSGBOX, "Account Management", str, "Ok", "Cancel"); } return 1; } stock GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof name); return name; } stock SetPlayerCash(playerid, amount) { ResetPlayerMoney(playerid); return GivePlayerMoney(playerid, amount); } stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; }