SA-MP Forums Archive
How to save score!?!? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: How to save score!?!? (/showthread.php?tid=166069)



How to save score!?!? - Criss_Angel - 07.08.2010

okay, so my script basically.When player kills other player the killers clan/team gets +1 point, how do i do that with variables and how do i save the clanpoints?


Re: How to save score!?!? - Niixie - 07.08.2010

Well, if i remember right, theres a rule that says somthing like.
Thread title most not be like "OMG HELP ME WITH THIS!" or "SOMETHING SOMETHING ??!?!?!"

But, do you use dini and what command proccesor?


Re: How to save score!?!? - Criss_Angel - 07.08.2010

i use dini, command processor? come again?


Re: How to save score!?!? - Criss_Angel - 07.08.2010

thank you agent obvious


Re: How to save score!?!? - Claude - 07.08.2010

You have to use GetPlayerTeam and SetPlayerTeam, together your save score thing would be like:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason);
{
    if(GetPlayerTeam(playerid) != GetPlayerTeam(killerid)
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(GetPlayerTeam(i) == GetPlayerTeam(killerid)
            {
                SetPlayerScore(i, GetPlayerScore(i)+1);
                return 1;
            }
        }
    }
}
Also use
pawn Код:
#include <dini>
(must download the include from DracoBlue)

pawn Код:
public OnPlayerDisconnect(playerid)
{
    dini_IntSet(playerid, "Score", GetPlayerScore(playerid);
    return 1;
}

public OnPlayerConnect(playerid);
{
    SetPlayerScore(playerid, dini_Int(playerid, "Score");
    return 1;
}
Not tested, but might work


Re: How to save score!?!? - Criss_Angel - 07.08.2010

public OnPlayerDeath(playerid, killerid, reason)
{
new pTeam;
pTeam = gTeam[playerid];
new pname[MAX_PLAYER_NAME], kname[MAX_PLAYER_NAME];
new string1[127], string2[128];
GetPlayerName(killerid, kname, sizeof(kname));
GetPlayerName(playerid, pname, sizeof(pname));
format(string1, sizeof(string1),"%s Has killed %s (%s)", kname, pname, reason);
format(string2, sizeof(string2),"%s Earns 1 point (%s +1)",kname, pTeam);
SendClientMessageToAll(COLOR_RED, string1);
SendClientMessageToAll(COLOR_GREEN, string2);
SendDeathMessage(killerid, playerid, reason);
pInfo[pKills][killerid] = ++;
pInfo[pDeath][playerid] = ++;
cInfo[Clanpoints] = ++;
SavePlayer(playerid);
return 1;
}

This is another pice of code, but its giving me errors on the pInfo shit whats the prob it says expected ; but found ] etc


Re: How to save score!?!? - Criss_Angel - 07.08.2010

Quote:
Originally Posted by Claude
Посмотреть сообщение
You have to use GetPlayerTeam and SetPlayerTeam, together your save score thing would be like:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason);
{
    if(GetPlayerTeam(playerid) != GetPlayerTeam(killerid)
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(GetPlayerTeam(i) == GetPlayerTeam(killerid)
            {
                SetPlayerScore(i, GetPlayerScore(i)+1);
                return 1;
            }
        }
    }
}
Also use
pawn Код:
#include <dini>
(must download the include from DracoBlue)

pawn Код:
public OnPlayerDisconnect(playerid)
{
    dini_IntSet(playerid, "Score", GetPlayerScore(playerid);
    return 1;
}

public OnPlayerConnect(playerid);
{
    SetPlayerScore(playerid, dini_Int(playerid, "Score");
    return 1;
}
Not tested, but might work
1) does this save the CLANS SCORE, it looks like it just saves the players score :/
2) if it does save the CLANS SCORE, then can you explain what it does and how?


Re: How to save score!?!? - Claude - 07.08.2010

Quote:
Originally Posted by Criss_Angel
Посмотреть сообщение
1) does this save the CLANS SCORE, it looks like it just saves the players score :/
2) if it does save the CLANS SCORE, then can you explain what it does and how?
There is and never exists a SetClanScore or SetTeamScore (told by Hiddos )
It works simply:

When you die, it checks the variables if the player is NOT in the killerid, if the player is in the killerid's team, it means he won't get any score because it is teamkill, when he is not then it checks if players are in the team of the killerid (MAX_PLAYERS defines to all players = 500), if they are, all players in that team gets a score up, the dini just saves it, if you don't got it and if you can't find it, you can use

pawn Код:
public OnPlayerDisconnect(playerid)
{
    SetPVarInt(playerid, "Score", GetPlayerScore(playerid));
    return 1;
}

public OnPlayerConnect(playerid)
{
    SetPlayerScore(playerid, GetPVarInt(playerid, "Score"));
    return 1;
}
---------------------------------------------------------------------------------------------------------------
Edit


MAX_PLAYERS defines to 500, and "i" defines to MAX_PLAYERS, means ALL players in the team, thats why it is SetPlayerScore, also normally its 'SetPlayerScore(playerid, score);' - but because "i" defines to MAX_PLAYERS it is 'SetPlayerScore(i, score);'


Re: How to save score!?!? - Criss_Angel - 07.08.2010

NOOO.i dont want all the players to get the points!i just want a file with the team name which shows the total clan points!!!!


Re: How to save score!?!? - Niixie - 08.08.2010

Quote:
Originally Posted by Claude
Посмотреть сообщение
You have to use GetPlayerTeam and SetPlayerTeam, together your save score thing would be like:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason);
{
    if(GetPlayerTeam(playerid) != GetPlayerTeam(killerid)
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(GetPlayerTeam(i) == GetPlayerTeam(killerid)
            {
                SetPlayerScore(i, GetPlayerScore(i)+1);
                return 1;
            }
        }
    }
}
Also use
pawn Код:
#include <dini>
(must download the include from DracoBlue)

pawn Код:
public OnPlayerDisconnect(playerid)
{
    dini_IntSet(playerid, "Score", GetPlayerScore(playerid);
    return 1;
}

public OnPlayerConnect(playerid);
{
    SetPlayerScore(playerid, dini_Int(playerid, "Score");
    return 1;
}
Not tested, but might work
Some of your code would not work, because.
When you use dini, its not dini_intset(playerid, "score", getplayersc...) its a string insted of playerid.
therefore,
format(string, sizeof(string), "path", parameters) before dini code, then it'll be 100% right