Jump to content
  • 0

Problema Rp Mysql R33-Ideal Pt Rpg


WiDuAlK

Question

Problemă întâlnită (descriere):Am facut un payday + am incercat sa fac level pe RespectPoints.Face conexiunea, imi modific 6 rp din phpmyadmin si imi da pe server.Imi iau level 2 si imi scade rp de la 6 la 0.Problema e atunci cand dau relog am din nou lvl 1 si 6 RP. Nu ramane salvat. Unde am gresit

Ero(area / rile) / warning-(ul / urile):Niciuna

Liniile de cod / sursa / script-ul:

[pawn]/////////////////////////////////Include-ul ACCOUNTS/////////////////////////////

#define pExpu 20

enum pInfo

{

pPassword[128], pLevel, pAdmin, pHelper, pCash, pAccount, pEmail, pRegistred, pTutorial, pSex, pAge, pPhoneNumber, pPremiumAccount, pBanned, pWarns,

pLeader, pMember, pRank, pSkin, pInterior, pExp// asta am adaugat, pIP, pLastLogin[100]

};

case pExpu:

{

mysql_format(handle, string, sizeof(string), "UPDATE `players` SET `pExp`='%d' WHERE `username`='%e'", PlayerInfo[playerid][pExp], playerName);

mysql_query(handle, string);

}[/pawn]

 

Acum in GM:

 

[pawn]public PayDay()

{

for(new i = 0; i < MAX_PLAYERS; i++)

{

if(IsPlayerConnected(i))

{

new h, m; gettime(h, m);

if(m >= 50)

{

PlayerInfo[pExp] ++; // aici

GivePlayerCash(i,500);

}

}

}

return 1;

}

cache_get_field_content(0, "Skin", temp), PlayerInfo[playerid][pSkin] = strval(temp);

cache_get_field_content(0, "RespectPoint", temp), PlayerInfo[playerid][pExp] = strval(temp);

cache_get_field_content(0, "IP", temp), PlayerInfo[playerid][pIP] = strval(temp);

PlayerInfo[playerid][pLevel] = 1;

Update(playerid, pLevelu);

PlayerInfo[playerid][pExp] = 1;

Update(playerid, pExpu);

CMD:buylevel( playerid )

{

new iLevelCost = PlayerInfo[playerid][pLevel] * 6;

if( PlayerInfo[playerid][pExp] < iLevelCost )

return SendClientMessage( playerid, -1, "ERROR: Nu ai destule puncte de respect" );

PlayerInfo[ playerid ][ pLevel ] ++;

PlayerInfo[playerid][pExp] = ( PlayerInfo[ playerid ][ pPremiumAccount ] > 0 ) ? ( PlayerInfo[ playerid ][ pExp ] - iLevelCost ) : ( 0 );

SendClientMessage( playerid, -1, "LevelUP" );

return 1;

}

public ShowStats(playerid, targetid)

{

if(IsPlayerConnected(targetid))

{

new pName[MAX_PLAYER_NAME];

GetPlayerName(targetid, pName, sizeof(pName));

new string[256];

new level = PlayerInfo[targetid][pLevel];

new sex[8];

if(PlayerInfo[targetid][pSex] == 1)

{

sex = "Male";

}

else if(PlayerInfo[targetid][pSex] == 2)

{

sex = "Female";

}

new RP = PlayerInfo[targetid][pExp];

new age = PlayerInfo[targetid]


;

new cash = GetPlayerCash(targetid);

new account = PlayerInfo[targetid][pAccount];

new phonenumber = PlayerInfo[targetid][pPhoneNumber];

new premiumaccount[4];

if(PlayerInfo[targetid][pPremiumAccount] == 1)

{

premiumaccount = "Yes";

}

else

{

premiumaccount = "No";

}

new factiontext[128];

if(PlayerInfo[targetid][pMember] == 1 || PlayerInfo[targetid][pLeader] == 1)

{

factiontext = "Los Santos Police Department";

}

if(PlayerInfo[targetid][pMember] == 2 || PlayerInfo[targetid][pLeader] == 2)

{

factiontext = "Las Venturas Police Department";

}

if(PlayerInfo[targetid][pMember] == 3 || PlayerInfo[targetid][pLeader] == 3)

{

factiontext = "San Fierro Police Department";

}

else if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4)

{

factiontext = "Federal Bureau of Investigations";

}

else if(PlayerInfo[targetid][pMember] == 5 || PlayerInfo[targetid][pLeader] == 5)

{

factiontext = "National Guard";

}

new ranktext[128];

if(PlayerInfo[targetid][pMember] == 1 || PlayerInfo[targetid][pLeader] == 1 || PlayerInfo[targetid][pMember] == 2 || PlayerInfo[targetid][pLeader] == 2 || PlayerInfo[targetid][pMember] == 3 || PlayerInfo[targetid][pLeader] == 3)// Los Santos Police Department Ranks || Las Venturas Police Department Ranks || San Fierro Police Department Ranks

{

if(PlayerInfo[targetid][pRank] == 1)

{

ranktext = "Cadet";

}

else if(PlayerInfo[targetid][pRank] == 2)

{

ranktext = "Officer";

}

else if(PlayerInfo[targetid][pRank] == 3)

{

ranktext = "Sergent";

}

else if(PlayerInfo[targetid][pRank] == 4)

{

ranktext = "Lieutenant";

}

else if(PlayerInfo[targetid][pRank] == 5)

{

ranktext = "Captain";

}

else if(PlayerInfo[targetid][pRank] == 6)

{

ranktext = "Chief";

}

else

{

ranktext = "Cadet";

}

}

else if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4)// FBI Ranks

{

if(PlayerInfo[targetid][pRank] == 1)

{

ranktext = "Professional Staff";

}

else if(PlayerInfo[targetid][pRank] == 2)

{

ranktext = "Special Agent Trainee";

}

else if(PlayerInfo[targetid][pRank] == 3)

{

ranktext = "Special Agent";

}

else if(PlayerInfo[targetid][pRank] == 4)

{

ranktext = "Special Agent in Charge";

}

else if(PlayerInfo[targetid][pRank] == 5)

{

ranktext = "Assistant Director in Charge";

}

else if(PlayerInfo[targetid][pRank] == 6)

{

ranktext = "Director";

}

else

{

ranktext = "Professional Staff";

}

}

else if(PlayerInfo[targetid][pMember] == 5 || PlayerInfo[targetid][pLeader] == 5)// National Guard Ranks

{

if(PlayerInfo[targetid][pRank] == 1)

{

ranktext = "Private";

}

else if(PlayerInfo[targetid][pRank] == 2)

{

ranktext = "Mayor";

}

else if(PlayerInfo[targetid][pRank] == 3)

{

ranktext = "Sergent";

}

else if(PlayerInfo[targetid][pRank] == 4)

{

ranktext = "Lieutenant";

}

else if(PlayerInfo[targetid][pRank] == 5)

{

ranktext = "Captain";

}

else if(PlayerInfo[targetid][pRank] == 6)

{

ranktext = "General";

}

else

{

ranktext = "Private";

}

}

SendClientMessage(playerid, COLOR_SERVER_GREEN,"_______________________________________");

format(string, sizeof(string), "%s's Stats", pName);

SendClientMessage(playerid, COLOR_WHITE, string);

format(string, sizeof(string), "Level:[%d] Sex:[%s] Age:[%d] RespectPoint:[%d] Cash:[$%s] Bank:[$%s] Phone:[%s]", level, sex, age, RP, FormatNumber(cash), FormatNumber(account), PhoneFormat(phonenumber));

SendClientMessage(playerid, COLOR_WHITE,string);

format(string, sizeof(string), "Premium Account:[%s]", premiumaccount);

SendClientMessage(playerid, COLOR_WHITE,string);

format(string, sizeof(string), "Faction:[%s] Rank:[%s]", factiontext, ranktext);

SendClientMessage(playerid, COLOR_WHITE,string);

SendClientMessage(playerid, COLOR_SERVER_GREEN,"_______________________________________");

}

return 1;

}

else if(TutorialTime == 5)

{

SendClientMessage(i, COLOR_WHITE, "Edit Here");

TutorialTime = 0; PlayerInfo[pTutorial] = 1;

Update(i, pTutorialu);

PlayerInfo[pLevel] = 1;

Update(i, pLevelu);

PlayerInfo[pExp] = 1;

Update(i, pExpu);

PlayerInfo[pRegistred] = 1;

Update(i, pRegistredu);

PlayerInfo[pAdmin] = 0;

Update(i, pAdminu);[/pawn]

Imagini / Video (optional):

Aţi încercat să rezolvaţi singur?:Normal

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

Unde ai[pawn]PlayerInfo[playerid][pLevel] = 1;
Update(playerid, pLevelu);

PlayerInfo[playerid][pExp] = 1;
Update(playerid, pExpu);[/pawn]

Inainte de CMD:buylevel?

 

P.S: Vezi ca la buylevel nu iti faci update in baza de date la Level si Experenta.

Link to comment
Share on other sites

inainte de buylevel , si cum fac buylevel cum trb?

CMD:buylevel( playerid )

{

new iLevelCost = PlayerInfo[playerid][pLevel] * 6;

if( PlayerInfo[playerid][pExp] < iLevelCost )

return SendClientMessage( playerid, -1, "ERROR: Nu ai destule puncte de respect" );

PlayerInfo[ playerid ][ pLevel ] ++;

PlayerInfo[playerid][pExp] = ( PlayerInfo[ playerid ][ pPremiumAccount ] > 0 ) ? ( PlayerInfo[ playerid ][ pExp ] - iLevelCost ) : ( 0 );

SendClientMessage( playerid, -1, "LevelUP" );

return 1;

}

am facut

CMD:buylevel( playerid )
{
new targetid;
new iLevelCost = PlayerInfo[playerid][pLevel] * 6;
if( PlayerInfo[playerid][pExp] < iLevelCost )
return SendClientMessage( playerid, -1, "ERROR: Nu ai destule puncte de respect" );
PlayerInfo[ playerid ][ pLevel ] ++;
PlayerInfo[playerid][pExp] = ( PlayerInfo[ playerid ][ pPremiumAccount ] > 0 ) ? ( PlayerInfo[ playerid ][ pExp ] - iLevelCost ) : ( 0 );

Update(targetid, pExpu);
Update(targetid, pLevelu);

SendClientMessage( playerid, -1, "LevelUP" );

return 1;
}

dar acum nu mi se updateaza pExp... , nici la payday nu mi se actualizeaza... , cum rezolv?

public PayDay()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new m; gettime(m);
new targetid;
if(m >= 1)
{
PlayerInfo[i][pExp] ++;
Update(targetid, pExpu);
GivePlayerCash(i,500);

SendClientMessage(i,-1,"Ai primit payday");
}
}
}
return 1;
}

Edited by WopsS
Link to comment
Share on other sites

nu , nu este asta , da am rezolvat oricum.

da warning la payday daca pun asta , asa ca las doar targedid, si la buylevel merge si cu targedid.

am gresit uite:

 

PlayerInfo[i][pExp] ++;
Update(targetid, pExpu);

am inlocuit cu

 

PlayerInfo[pExp] += 1;
Update(targetid, pExpu);

 

 

iar la buylevel:


CMD:buylevel( playerid )
{
new iLevelCost = PlayerInfo[playerid][pLevel] * 6;
if( PlayerInfo[playerid][pExp] < iLevelCost )
return SendClientMessage( playerid, -1, "ERROR: Nu ai destule puncte de respect" );
PlayerInfo[ playerid ][ pLevel ] += 1;
PlayerInfo[playerid][pExp] = 0;
Update(playerid, pLevelu);
Update(playerid, pExpu);
SendClientMessage( playerid, -1, "LevelUP" );

return 1;
}

si merge perfect T/C

 

P.S.

Repare pawn de la forum. eu am folosit acum " code] "si "/code"]

"

Edited by WiDuAlK.SaMp
Link to comment
Share on other sites

Tu esti singur pe server?

 

Daca da, targetid este mereu 0 si de aia se actualizeaza. Ce warning iti da?

 

Ce vrei sa spui?

eu il testez din pc la mn si da is singur pe server. Acum am vz ca era never used targetid, si am sters chestia cu targetid, si am pus "i". Ce am vrut sa spun cu forumul uite aici comanda prin "["  "code"  "]" si  "["  "/code"  "]"

public PayDay()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            new m; gettime(m);
            if(m >= 1)
            {
                PlayerInfo[pExp] ++;
                Update(i, pExpu);
                GivePlayerCash(i,500);

                SendClientMessage(i,-1,"Ai primit payday");
            }
        }
    }
    return 1;
}
si uite pe ["  "pawn"  "]" si  "["  "/pawn"  "]"

[pawn]public PayDay()

{

for(new i = 0; i < MAX_PLAYERS; i++)

{

if(IsPlayerConnected(i))

{

new m; gettime(m);

if(m >= 1)

{

PlayerInfo[pExp] ++;

Update(i, pExpu);

GivePlayerCash(i,500);

SendClientMessage(i,-1,"Ai primit payday");

}

}

}

return 1;

}[/pawn]

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.