[Help] Weird outputs
#1

I made a register system
Код:
		if(strcmp(cmd, "/kaydol", true) == 0) // Kaydol
 		{
  				new Playername[MAX_PLAYER_NAME];
  			tmp = strtok(cmdtext, idx);
				GetPlayerName(playerid, Playername, sizeof(Playername));
  			if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "[Kullanım] /kaydol [Şifre]");
  			format(file,sizeof(file),"%s.ini",Playername);
  			if(!fexist(file))
                {
                    dini_Create(file);
                    dini_IntSet(file, "Password", udb_hash(tmp));
                    dini_IntSet(file,"AdminLevel", 0);
                    dini_IntSet(file,"Cash", 100);
                    dini_IntSet(file,"Skin", GetPlayerSkin(playerid));
                    dini_IntSet(file,"Tohum", 0);
                    dini_IntSet(file,"Hasat", 0);
                    dini_Set(file,"Faction","Yok");
                    dini_Set(file,"Rank","Yok");
                    SendClientMessage(playerid, MESSAGE_COLOR, "[Kayıt] Hesap aзıldı!");
                    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                    GetPlayerName(playerid, Playername, sizeof(Playername));
                    printf("%s has registered a account!", Playername);
                }else{
                    SendClientMessage(playerid, ERROR_COLOR, "[Hata] Hesap veritabanında bulundu!");
                    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                }
                return 1;
        }

        if(strcmp(cmd, "/girişyap", true) == 0) // Login
        {
            new PlayerName[24];
            tmp = strtok(cmdtext, idx);
            if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "[Kullanım] /girişyap [password]");
                new name[MAX_PLAYER_NAME];
                if(IsLogged[playerid] == 1)
                {
                        SendClientMessage(playerid, ERROR_COLOR, "[Hata] Zaten girdin!");
                        return 1;
                }else{
                        GetPlayerName(playerid, name, sizeof(name));
                        format(file,sizeof(file),"%s.ini",name);
                        if(fexist(file))
                        {
                            tmp2 = dini_Get(file, "Password");
                                if(udb_hash(tmp) != strval(tmp2))
                                {
                                        SendClientMessage(playerid, ERROR_COLOR, "[Hata] Giriş yapılamadı!");
                                    		GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
                                    		printf("%s has failed to login", name);
                                }else{
                                        IsLogged[playerid] = 1;
                                        SetPlayerMoney(playerid, dini_Int(file, "Cash"));
                                        SetPlayerSkin(playerid, dini_Int(file, "Skin"));
                                        PlayerInfo[playerid][Cash] = dini_Int(file, "Cash");
                                        PlayerInfo[playerid][Skin] = dini_Int(file, "Skin");
                                        PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                                        PlayerInfo[playerid][Tohum] = dini_Int(file, "Tohum");
                                        PlayerInfo[playerid][Hasat] = dini_Int(file, "Hasat");
                                        strmid(PlayerInfo[playerid][Faction], dini_Get(file, "Faction"), 0, 64, 255);
                                        strmid(PlayerInfo[playerid][Rank], dini_Get(file, "Rank"), 0, 64, 255);
                                        SendClientMessage(playerid, MESSAGE_COLOR, "[Kayıt] Hesaba giriş yapıldı!");
                                }
                        }
                }
                return 1;
        }

    if(strcmp("/env", cmd, true) == 0 || strcmp("/envanter", cmd, true) == 0) // Inventory
    {
            new StatLine1[128];
            new StatLine2[128];
            new StatLine3[128];
   					//if(IsLogged[playerid] == 1)
            //{
            format(StatLine1,128,"--Genel--Admin Seviyesi: %i Para: %i Skin: %i--",PlayerInfo[playerid][AdminLevel],PlayerInfo[playerid][Cash],PlayerInfo[playerid][Skin]);
            format(StatLine2,128,"--Envanter--Tohum: %i Hasat: %i--",PlayerInfo[playerid][Tohum],PlayerInfo[playerid][Hasat]);
						format(StatLine3,128,"--Grup--Grup: %s Rьtbe: %s--",PlayerInfo[playerid][Faction],PlayerInfo[playerid][Rank]);
   					SendClientMessage(playerid, DICE_COLOR, "-----Envanter/Statь-----");
        		SendClientMessage(playerid, MESSAGE_COLOR, StatLine1);
        		SendClientMessage(playerid, MESSAGE_COLOR, StatLine2);
        		SendClientMessage(playerid, MESSAGE_COLOR, StatLine3);
        		PlayerInfo[playerid][Tohum] = PlayerInfo[playerid][Tohum] - 1;
        		/*}else{
        		SendClientMessage(playerid, ERROR_COLOR, "[Hata] Giriş yapmadan gцremezsin!");
        		}*/
            return 1;
		}
It works fine and I see
Quote:

Password=150667920
AdminLevel=0
Cash=100
Skin=128
Tohum=0
Hasat=0
Faction=Yok
Rank=Yok

in my scriptfiles but when I type /env or /envanter I get

See? It gives me weird numbers for "Tohum" and "Hasat" and "YYok" then "YYnk" etc. for grup but others work w/o problems!

((PS: Tohum decreases cus I wrote PlayerInfo[playerid][Tohum] = PlayerInfo[playerid][Tohum] - 1; for testing))

Please help and if you dont understand Turkish say which word you didn't understand

Thanks
Reply
#2

I need help fast please, I checked the script but cant find any wrong!
Reply
#3

You used "%i" instead of "%s" and "%d"

%i - Integers
%s - strings
pawn Код:
if(strcmp("/env", cmd, true) == 0 || strcmp("/envanter", cmd, true) == 0) // Inventory
    {
            new StatLine1[128];
                    //if(IsLogged[playerid] == 1)
            //{
            format(StatLine1,128,"--Genel--Admin Seviyesi: %d Para: %d Skin: %d--",PlayerInfo[playerid][AdminLevel],PlayerInfo[playerid][Cash],PlayerInfo[playerid][Skin]);
SendClientMessage(playerid, MESSAGE_COLOR, StatLine1);
            format(StatLine2,128,"--Envanter--Tohum: %d Hasat: %d--",PlayerInfo[playerid][Tohum],PlayerInfo[playerid][Hasat]);
SendClientMessage(playerid, MESSAGE_COLOR, StatLine1);
                        format(StatLine3,128,"--Grup--Grup: %s Rьtbe: %s--",PlayerInfo[playerid][Faction],PlayerInfo[playerid][Rank]);
SendClientMessage(playerid, MESSAGE_COLOR, StatLine1);
                    SendClientMessage(playerid, DICE_COLOR, "-----Envanter/Statь-----");
                PlayerInfo[playerid][Tohum] = PlayerInfo[playerid][Tohum] - 1;
                /*}else{
                SendClientMessage(playerid, ERROR_COLOR, "[Hata] Giriş yapmadan gцremezsin!");
                }*/

            return 1;
        }
Kinda fcked up..

Also useless to create new strings for every single format
Reply
#4

No he doesn't. Tohum vars are integers and the faction vars are strings.
Reply
#5

Quote:
Originally Posted by juice.j
No he doesn't.
He doesn't what...?
Reply
#6

Sorry:

Quote:

You used "%i" instead of "%s" and "%d"

No he doesn't.
Reply
#7

Quote:
Originally Posted by juice.j
Sorry:

Quote:

You used "%i" instead of "%s" and "%d"

No he doesn't.
He DID.Look closer?

pawn Код:
if(strcmp("/env", cmd, true) == 0 || strcmp("/envanter", cmd, true) == 0) // Inventory
    {
            new StatLine1[128];
            new StatLine2[128];
            new StatLine3[128];
                    //if(IsLogged[playerid] == 1)
            //{
            format(StatLine1,128,"--Genel--Admin Seviyesi: %i Para: %i Skin: %i--",PlayerInfo[playerid][AdminLevel],PlayerInfo[playerid][Cash],PlayerInfo[playerid][Skin]);
            format(StatLine2,128,"--Envanter--Tohum: %i Hasat: %i--",PlayerInfo[playerid][Tohum],PlayerInfo[playerid][Hasat]);
                        format(StatLine3,128,"--Grup--Grup: %s Rьtbe: %s--",PlayerInfo[playerid][Faction],PlayerInfo[playerid][Rank]);
                    SendClientMessage(playerid, DICE_COLOR, "-----Envanter/Statь-----");
                SendClientMessage(playerid, MESSAGE_COLOR, StatLine1);
                SendClientMessage(playerid, MESSAGE_COLOR, StatLine2);
                SendClientMessage(playerid, MESSAGE_COLOR, StatLine3);
                PlayerInfo[playerid][Tohum] = PlayerInfo[playerid][Tohum] - 1;
                /*}else{
                SendClientMessage(playerid, ERROR_COLOR, "[Hata] Giriş yapmadan gцremezsin!");
                }*/

            return 1;
        }
Reply
#8

His three formats

format(StatLine1,128,"--Genel--Admin Seviyesi: %i Para: %i Skin: %i--",PlayerInfo[playerid][AdminLevel],PlayerInfo[playerid][Cash],PlayerInfo[playerid][Skin]);
format(StatLine2,128,"--Envanter--Tohum: %i Hasat: %i--",PlayerInfo[playerid][Tohum],PlayerInfo[playerid][Hasat]);
format(StatLine3,128,"--Grup--Grup: %s Rьtbe: %s--",PlayerInfo[playerid][Faction],PlayerInfo[playerid][Rank]);

are fine variable-wise seeing that PlayerInfo[playerid][Tohum] and PlayerInfo[playerid][Hasat] are integers and PlayerInfo[playerid][Faction] and PlayerInfo[playerid][Rank] are strings.
Reply
#9

%d or %s gives same output... Noone can fix it?
Reply
#10

Try without the strmid...?

pawn Код:
strmid(PlayerInfo[playerid][Faction], dini_Get(file, "Faction"), 0, 64, 255);
strmid(PlayerInfo[playerid][Rank], dini_Get(file, "Rank"), 0, 64, 255);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)