stock ClearVars(playerid)
{
Password[playerid] = 0;
};
Reset all variables when a player joins, when a player joins in my script I have a stock like. (setting everything to the number 0).
pawn Код:
|
new Password[MAX_PLAYERS][129]
Password[playerid][0] = EOS;
for(new i=0; i<MAX_PLAYERS; i++) strcpy(Password[i], "");
stock strcpy(dest[], source[])
{
new len = strlen(source), i;
for (i = 0; i < len; i ++) dest[i] = source[i];
return 1;
}
Password[playerid][0] = '\0';
Sorry, I missread your question, do;
pawn Код:
|
That is really strange, as it should work, ask in the Y_Ini topic, or PM ****** as he is the author of yini.
(this works for me, I use mysql, I hear from other people using dini that this is how they do it aswell). |
There is simply no reason why this should be the case! Are you CERTAIN that it's not taking new values? And more to the point are you CERTAIN that the code to store the new values is not called? Could you post full example code which shows this issue, including any files you are attempting to load?
|
#define COLOR_WHITE 0xFFFFFFFF
#include <a_samp>
#include <YSI/y_ini>
#include "../include/loginsystem.inc"
main()
{
print("AnteinoServer started.");
return 1;
}
public OnPlayerSpawn(playerid)
{
if(GetPVarInt(playerid, "logstatus") == 0){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Kicked for teleporting from login.");
Kick(playerid);
return 1;
}
SetPlayerPos(playerid, 1754.0000, -1893.9800, 14.5000);
SetPlayerFacingAngle(playerid, 270);
SetCameraBehindPlayer(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
SetupPlayerForClassSelection(playerid)
{
PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetupPlayerForClassSelection(playerid);
return 1;
}
public OnGameModeInit()
{
SetGameModeText("Amsterdam Roleplay");
ShowPlayerMarkers(1);
ShowNameTags(1);
EnableStuntBonusForAll(0);
return 1;
}
new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME], Password[MAX_PLAYERS][MAX_PASSWORD], gPass[MAX_PASSWORD];
INI:playerlist[](playerid, name[], value[])
{
INI_String(PlayerName[playerid], gPass, MAX_PASSWORD);
return 0;
}
stock CheckPlayer(playerid){
GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
INI_Load("playerlist.ini", true, playerid); // if set to true, playerid will be passed over to INI:playerlist[...
strpack(Password[playerid], gPass);
SendClientMessage(playerid, COLOR_WHITE, PlayerName[playerid]);
SendClientMessage(playerid, COLOR_WHITE, Password[playerid]);
if(strlen(Password[playerid]) == 0){
ShowPlayerDialog(playerid, 30, 1, "Register", "To register you must first give in the first name of your character.", "OK", "");
return 1;
}
else{
ShowPlayerDialog(playerid, 33, 1, "Login", "Please give in your password.", "OK", "");
return 1;
}
}
stock CheckForSymbols(inputtext[], &error){
if(strfind(inputtext, "/") != -1) error = true;
if(strfind(inputtext, "~") != -1) error = true;
if(strfind(inputtext, "`") != -1) error = true;
if(strfind(inputtext, "!") != -1) error = true;
if(strfind(inputtext, "@") != -1) error = true;
if(strfind(inputtext, "#") != -1) error = true;
if(strfind(inputtext, "$") != -1) error = true;
if(strfind(inputtext, "%") != -1) error = true;
if(strfind(inputtext, "^") != -1) error = true;
if(strfind(inputtext, "&") != -1) error = true;
if(strfind(inputtext, "*") != -1) error = true;
if(strfind(inputtext, "(") != -1) error = true;
if(strfind(inputtext, ")") != -1) error = true;
if(strfind(inputtext, "-") != -1) error = true;
if(strfind(inputtext, "+") != -1) error = true;
if(strfind(inputtext, "=") != -1) error = true;
if(strfind(inputtext, "|") != -1) error = true;
if(strfind(inputtext, "1") != -1) error = true;
if(strfind(inputtext, "2") != -1) error = true;
if(strfind(inputtext, "3") != -1) error = true;
if(strfind(inputtext, "4") != -1) error = true;
if(strfind(inputtext, "5") != -1) error = true;
if(strfind(inputtext, "6") != -1) error = true;
if(strfind(inputtext, "7") != -1) error = true;
if(strfind(inputtext, "8") != -1) error = true;
if(strfind(inputtext, "9") != -1) error = true;
if(strfind(inputtext, "0") != -1) error = true;
if(strfind(inputtext, ",") != -1) error = true;
if(strfind(inputtext, ".") != -1) error = true;
if(strfind(inputtext, ";") != -1) error = true;
if(strfind(inputtext, ":") != -1) error = true;
if(strfind(inputtext, "'") != -1) error = true;
if(strfind(inputtext, "\"") != -1) error = true;
if(strfind(inputtext, "[") != -1) error = true;
if(strfind(inputtext, "]") != -1) error = true;
if(strfind(inputtext, "{") != -1) error = true;
if(strfind(inputtext, "}") != -1) error = true;
if(strfind(inputtext, "?") != -1) error = true;
if(strfind(inputtext, "_") != -1) error = true;
if(strfind(inputtext, " ") != -1) error = true;
return 1;
}
public OnPlayerConnect(playerid){
SetPVarInt(playerid, "logstatus", 0);
CheckPlayer(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(response == 0){
if(dialogid >= 30 && dialogid <= 33){
CheckPlayer(playerid);
return 0;
}
}
if(response){
switch(dialogid){
case 30:{
new bool:error;
CheckForSymbols(inputtext, error);
if(error == true){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Don't use symbols.");
ShowPlayerDialog(playerid, 30, 1, "Register", "Please give in the first name of your character.", "OK", "");
return 0;
}
if(strlen(inputtext) < 2){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: That firstname is too short.");
ShowPlayerDialog(playerid, 30, 1, "Register", "Please give in the first name of your character.", "OK", "");
return 0;
}
SetPVarString(playerid, "FirstName", inputtext);
ShowPlayerDialog(playerid, 31, 1, "Register", "Please give in the last name of your character.", "OK", "Back");
return 0;
}
case 31:{
new bool:error, msg[128], name;
CheckForSymbols(inputtext, error);
if(error == true){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Don't use symbols.");
ShowPlayerDialog(playerid, 31, 1, "Register", "Please give in the last name of your character.", "OK", "Back");
return 0;
}
if(strlen(inputtext) < 2){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: That lastname is too short.");
ShowPlayerDialog(playerid, 31, 1, "Register", "Please give in the last name of your character.", "OK", "");
return 0;
}
SetPVarString(playerid, "LastName", inputtext);
name = GetPVarString(playerid, "FirstName", msg, sizeof(msg)) + GetPVarString(playerid, "LastName", msg, sizeof(msg));
if(name > 23 || name < 5){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Your character's total name is either too long or too short.");
ShowPlayerDialog(playerid, 31, 1, "Register", "Please give in the last name of your character.", "OK", "Back");
return 0;
}
format(msg, sizeof(msg), "Please give in a password between 5 and %d characters.", MAX_PASSWORD);
ShowPlayerDialog(playerid, 32, 1, "Register", msg, "OK", "Back");
return 0;
}
case 32:{
if(strlen(inputtext) < 5 || strlen(inputtext) > MAX_PASSWORD){
new msg[128];
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Your password is either too long or too short.");
format(msg, sizeof(msg), "Please give in a password between 5 and %d characters.", MAX_PASSWORD);
ShowPlayerDialog(playerid, 32, 1, "Register", msg, "OK", "Back");
return 0;
}
new FirstName[MAX_PLAYER_NAME - 4], LastName[MAX_PLAYER_NAME - 4], FullName[MAX_PLAYER_NAME], msg[128];
GetPVarString(playerid, "FirstName", FirstName, sizeof(FirstName));
GetPVarString(playerid, "LastName", LastName, sizeof(LastName));
format(msg, sizeof(msg), "SERVER: You can now login with username %s_%s.", FirstName, LastName);
SendClientMessage(playerid, COLOR_WHITE, msg);
format(FullName, sizeof(FullName), "%s_%s", FirstName, LastName);
new INI:playerlist = INI_Open("playerlist.ini");
INI_WriteString(playerlist, FullName, inputtext);
INI_Close(playerlist);
SetPlayerName(playerid, FullName);
SetPVarInt(playerid, "logstatus", 1);
return 0;
}
case 33:{
if(strlen(inputtext) == 0){
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Wrong password.");
ShowPlayerDialog(playerid, 33, 1, "Login", "Please give in your password.", "OK", "");
return 0;
}
if(strcmp(Password[playerid], inputtext, false) == 0){
SetPVarInt(playerid, "logstatus", 1);
return 0;
}
else{
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Wrong password.");
ShowPlayerDialog(playerid, 33, 1, "Login", "Please give in your password.", "OK", "");
return 0;
}
}
}
}
return 0;
}
Max_Havelaar = mypass
Har_Levis = mypass3
Lead_Admin = mypass67