Need to fix a Bug
#1

guys in our server there is a terrible bug
when you type /register which is the main bug all the server crashes!
so can some one fix it for free?
i am gonna add you to /credits as scripter and give you admin level 2 rank
contact me via PM or Skype anonymos_samp

P.S our server is already hosted and in 6 hours about we gonna be on hosted tab!
Код:
CMD:register(playerid,params[])
{
 if(PInfo[playerid][Logged] == 1)
     return SendClientMessage(playerid,COL_GREEN,"» "CWHITE"You are already registered and logged in!");

 new szPassword[24];
 if(sscanf(params,"s[24]",szPassword)) return SendClientMessage(playerid,COL_BLUE,"USAGE: "CWHITE"/register (password)");
 new szPass[24];
 mysql_real_escape_string(szPassword,szPass);

 new PIP[16],TempQuery[450], day, month, year, hour, minute, second;
 GetPlayerIp(playerid,PIP,16);

    getdate(year,month,day);
 gettime(hour,minute,second);
 format(TempQuery, sizeof TempQuery,"INSERT INTO `"Users_Table"` (Username, Password, IP, Money, Score, Level, NitroType, Autofix, Fightstyle, SkinID, SB, AcceptPM, Kills, Deaths, Hours, Mins, Goto, Regged, LastOn) VALUES ('%s', sha1('%s'), '%s', '%i', '%i', '0', '0', '0', '0', '-1', '1', '1', '%i', '%i', '0', '0', '%i', '%02d.%02d.%02d','%02d.%02d.%02d at %02d:%02d:%02d')",
 GetPName(playerid),szPass,PIP,GetPlayerMoney(playerid),GetPlayerScore(playerid), PInfo[playerid][Kills],PInfo[playerid][Deaths],
  PInfo[playerid][GotoToggle], day,month,year,day,month,year,hour,minute,second);

 if(mysql_query(TempQuery))
     SendClientMessage(playerid,COL_GREEN,"You have been successfully registered!"),PlaySound(playerid,1057);
 else
     SendClientMessage(playerid,COL_RED,"Some error occured while registering! Please contact the administrators.");

 PInfo[playerid][Logged] = 1;
 PInfo[playerid][Regged] = 1;
 PInfo[playerid][Skin] = -1;

 GameTextForPlayer(playerid,"~g~~h~You have received: ~n~~r~~h~+$5000 ~n~~r~~h~1000 score",5000,3);
 GivePlayerMoney(playerid,5000);
 SetPlayerScore(playerid,GetPlayerScore(playerid)+1000);

 ShowPlayerDialog(playerid,Emaildialog,1,"Email",""CWHITE"For security reason, we ask you to put in an email so you can recover your password in the future: \n","Accept","No Email");
 return 1;
}
Reply
#2

Showing us the part of the /register code is a fair start.
Reply
#3

pwn CODE here :
Reply
#4

Код:
CMD:register(playerid,params[])
{
 if(PInfo[playerid][Logged] == 1)
     return SendClientMessage(playerid,COL_GREEN,"» "CWHITE"You are already registered and logged in!");

 new szPassword[24];
 if(sscanf(params,"s[24]",szPassword)) return SendClientMessage(playerid,COL_BLUE,"USAGE: "CWHITE"/register (password)");
 new szPass[24];
 mysql_real_escape_string(szPassword,szPass);

 new PIP[16],TempQuery[450], day, month, year, hour, minute, second;
 GetPlayerIp(playerid,PIP,16);

    getdate(year,month,day);
 gettime(hour,minute,second);
 format(TempQuery, sizeof TempQuery,"INSERT INTO `"Users_Table"` (Username, Password, IP, Money, Score, Level, NitroType, Autofix, Fightstyle, SkinID, SB, AcceptPM, Kills, Deaths, Hours, Mins, Goto, Regged, LastOn) VALUES ('%s', sha1('%s'), '%s', '%i', '%i', '0', '0', '0', '0', '-1', '1', '1', '%i', '%i', '0', '0', '%i', '%02d.%02d.%02d','%02d.%02d.%02d at %02d:%02d:%02d')",
 GetPName(playerid),szPass,PIP,GetPlayerMoney(playerid),GetPlayerScore(playerid), PInfo[playerid][Kills],PInfo[playerid][Deaths],
  PInfo[playerid][GotoToggle], day,month,year,day,month,year,hour,minute,second);

 if(mysql_query(TempQuery))
     SendClientMessage(playerid,COL_GREEN,"You have been successfully registered!"),PlaySound(playerid,1057);
 else
     SendClientMessage(playerid,COL_RED,"Some error occured while registering! Please contact the administrators.");

 PInfo[playerid][Logged] = 1;
 PInfo[playerid][Regged] = 1;
 PInfo[playerid][Skin] = -1;

 GameTextForPlayer(playerid,"~g~~h~You have received: ~n~~r~~h~+$5000 ~n~~r~~h~1000 score",5000,3);
 GivePlayerMoney(playerid,5000);
 SetPlayerScore(playerid,GetPlayerScore(playerid)+1000);

 ShowPlayerDialog(playerid,Emaildialog,1,"Email",""CWHITE"For security reason, we ask you to put in an email so you can recover your password in the future: \n","Accept","No Email");
 return 1;
}
Reply
#5

try this n tell me if it worked :
PHP код:
if(strcmp(cmd"/register"true) == 0)
    {
        
tmp strtok(cmdtextidx);
        if(
strlen(tmp) == 0) return SendClientMessage(playeridERROR"Use: /register [PASSWORD]");
        
format(file,sizeof(file),"%s.ini"name);
        if(!
fexist(file))
        {
            
dini_Create(file);
            
dini_IntSet(file"Password"udb_hash(tmp));
            
dini_IntSet(file"Money"2500);
            
dini_IntSet(file"Score"1);
            
dini_IntSet(file"Bank"1000);
            
dini_IntSet(file"RobSkill"1);
            
dini_IntSet(file"TerSkill"1);
            
dini_IntSet(file"Admin"0);
            
dini_IntSet(file"Warnings"0);
            
dini_IntSet(file"WantedLevel"0);
            
dini_IntSet(file"Jail"0);
            
dini_IntSet(file"RentalOwner"0);
            
dini_IntSet(file"Drugs"0);
            
dini_IntSet(file"C4"0);
            
dini_IntSet(file"Skin"0);
            
SendClientMessage(playeridGREY"Thanks for registering!");
            
SendClientMessage(playeridGREY"You may now login.");
            
SendClientMessage(playeridGREY"To do so, type: /login [PASSWORD]");
            
GameTextForPlayer(playerid"~r~Registered!"30001);
        }
        else 
SendClientMessage(playeridERROR"This account is already registered in our system. Use: /login [PASSWORD]");
        return 
true;
    }
    if(
strcmp(cmd"/login"true) == 0)
    {
        new 
tmp2[256];
        
tmp strtok(cmdtextidx);
        if(
strlen(tmp) == 0) return SendClientMessage(playeridERROR"Use: /login [PASSWORD]");
        else
        {
            if(
IsPlayerLogged[playerid] == 1) return SendClientMessage(playeridERROR"You are already logged in.");
            else
            {
                if(
fexist(file))
                {
                    
tmp2 dini_Get(file"Password");
                      if(
udb_hash(tmp) != strval(tmp2)) return SendClientMessage(playeridERROR"Invalid password.");
                    else
                    {
                         
IsPlayerLogged[playerid] = 1;
                         
SetPlayerMoney(playeriddini_Int(file"Money"));
                         
SetPlayerScore(playeriddini_Int(file"Score"));
                        
PlayerSkin[playerid] = dini_Int(file,"Skin");
                         
SetPlayerWantedLevel(playeriddini_Int(file"WantedLevel"));
                        
SendClientMessage(playeridGREEN"You are now logged in.you have continue your stats has been automatique saved.");
                        
GameTextForPlayer(playerid"~r~Logged In!"30001);
                    }
                }
                else return 
SendClientMessage(playeridERROR"This username was not found on our database. Use: /register [PASSWORD]");
            }
        }
        return 
true;
    } 
Reply
#6

Quote:
Originally Posted by AmirRFCNR
Посмотреть сообщение
try this n tell me if it worked :
PHP код:
if(strcmp(cmd"/register"true) == 0)
    {
        
tmp strtok(cmdtextidx);
        if(
strlen(tmp) == 0) return SendClientMessage(playeridERROR"Use: /register [PASSWORD]");
        
format(file,sizeof(file),"%s.ini"name);
        if(!
fexist(file))
        {
            
dini_Create(file);
            
dini_IntSet(file"Password"udb_hash(tmp));
            
dini_IntSet(file"Money"2500);
            
dini_IntSet(file"Score"1);
            
dini_IntSet(file"Bank"1000);
            
dini_IntSet(file"RobSkill"1);
            
dini_IntSet(file"TerSkill"1);
            
dini_IntSet(file"Admin"0);
            
dini_IntSet(file"Warnings"0);
            
dini_IntSet(file"WantedLevel"0);
            
dini_IntSet(file"Jail"0);
            
dini_IntSet(file"RentalOwner"0);
            
dini_IntSet(file"Drugs"0);
            
dini_IntSet(file"C4"0);
            
dini_IntSet(file"Skin"0);
            
SendClientMessage(playeridGREY"Thanks for registering!");
            
SendClientMessage(playeridGREY"You may now login.");
            
SendClientMessage(playeridGREY"To do so, type: /login [PASSWORD]");
            
GameTextForPlayer(playerid"~r~Registered!"30001);
        }
        else 
SendClientMessage(playeridERROR"This account is already registered in our system. Use: /login [PASSWORD]");
        return 
true;
    }

    if(
strcmp(cmd"/login"true) == 0)
    {
        new 
tmp2[256];
        
tmp strtok(cmdtextidx);
        if(
strlen(tmp) == 0) return SendClientMessage(playeridERROR"Use: /login [PASSWORD]");
        else
        {
            if(
IsPlayerLogged[playerid] == 1) return SendClientMessage(playeridERROR"You are already logged in.");
            else
            {
                if(
fexist(file))
                {
                    
tmp2 dini_Get(file"Password");
                      if(
udb_hash(tmp) != strval(tmp2)) return SendClientMessage(playeridERROR"Invalid password.");
                    else
                    {
                         
IsPlayerLogged[playerid] = 1;
                         
SetPlayerMoney(playeriddini_Int(file"Money"));
                         
SetPlayerScore(playeriddini_Int(file"Score"));
                        
PlayerSkin[playerid] = dini_Int(file,"Skin");
                         
SetPlayerWantedLevel(playeriddini_Int(file"WantedLevel"));
                        
SendClientMessage(playeridGREEN"You are now logged in.you have continue your stats has been automatique saved.");
                        
GameTextForPlayer(playerid"~r~Logged In!"30001);
                    }
                }
                else return 
SendClientMessage(playeridERROR"This username was not found on our database. Use: /register [PASSWORD]");
            }
        }
        return 
true;
    } 
What are you doing with your life? Why would you convert a ZCMD command to a less reliable one? and second of all, you've clearly copy and pasted that code because he's using MySQL, not Dini.
Reply
#7

im using dini
Reply
#8

so Binx did he do right or wrong?
Reply
#9

Quote:
Originally Posted by AmirRFCNR
Посмотреть сообщение
im using dini
But he's not.
So what makes you think that your Dini code will work with MySQL code?

Edit: @Sniper, if you really think that Dini code will work with your MySQL system, you shouldn't be scripting.
Reply
#10

ok try this : https://sampforum.blast.hk/showthread.php?tid=273088
but with using Y_INI
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)