GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Sheet - 2010. november 22. - 20:08:07

Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 22. - 20:08:07
Hali
Azt hogy lehet megcsinálni hogy mérje a player szerveren töltött idejét, de relog után is.
Maga a regisztrációs rendszerem megvan, csak ezt nem tudom.
Választ elõre kössz
Cím: Szerveren töltött idõ
Írta: TengeriMalac - 2010. november 23. - 19:31:17
Ilyesmit már írtam... Az a szerver futási idejét mérte..
Keresdmeg, írd át.
Ha nemm1, akkor szólj, és írok egyet.. De terheli a szervert..
Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 23. - 19:37:46
Megpróbálnám átirni de nem találom a scriptet :S
Cím: Szerveren töltött idõ
Írta: TengeriMalac - 2010. november 23. - 20:00:21
http://sampforum.hu/index.php?topic=7734.msg90434#msg90434
Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 23. - 20:07:39
Hát nem nagyon megy :(
Megirnád nekem légyszives? lehetõleg kódba és ne fs-be.
Elõre kössz.
Cím: Szerveren töltött idõ
Írta: Luciano - 2010. november 23. - 21:28:45
ien nekem is kéne=)
Cím: Szerveren töltött idõ
Írta: Depi - 2010. november 23. - 21:39:01
Be lett linkelve...
Cím: Szerveren töltött idõ
Írta: TengeriMalac - 2010. november 23. - 23:03:47
Neki olyan kell, hogy szerón töltött idõ, amit playerenként számol, és elment..
EDIT: Milyen adminscriptet használsz?
Csak hogy tudjam, h hova menti az accountokat.
Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 24. - 13:37:30
Sajátot...
 

if(dialogid == ReGiStEr)
{
        if(response)
        {
          new file[128];
          new string[128];
          new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   if(strlen(inputtext) == 0)
   {
      format(string, sizeof string, \"Regisztráció \\n\\nÜdv %s! \\nTe még nem vagy regisztrálva! \\n\\nKérjük regisztrálj.\", name);
      ShowPlayerDialog(playerid, ReGiStEr, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Register\", \"Cancel.\");
      return 0;
   }
   format(file,sizeof(file),\"%s.ini\",name);
   if(!fexist(file))
   {
      dini_Create(file);
      dini_IntSet(file,\"Password\", udb_hash(inputtext));
      dini_IntSet(file,\"pScore\", GetPlayerScore(playerid));
      dini_IntSet(file,\"pMoney\", GetPlayerMoney(playerid));
      dini_IntSet(file,\"pDeaths\", PlayerInfo[playerid][pDeaths]);
       dini_IntSet(file,\"pKills\", PlayerInfo[playerid][pKills]);
       dini_IntSet(file,\"pAdmin\", PlayerInfo[playerid][pAdmin]);
      format(string, sizeof string,\"Bejelentkezés \\n\\nÜdv %s! \\nTe regisztrálva vagy! \\n\\nKérjük jelentkezz be.\", name);
      ShowPlayerDialog(playerid, LoGiN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Login\", \"Cancel.\");
      PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
      GetPlayerName(playerid, name, sizeof(name));
      printf(\"%s sikeresen regisztrált!\", name);
      SendClientMessage(playerid, COLOR_GRAD1, \"Csatlakoztál a szerverre, kilépéskor a változások mentõdnek!\");
   }
}
if(!response) return Kick(playerid);
}
Cím: Szerveren töltött idõ
Írta: TengeriMalac - 2010. november 24. - 15:52:33
Reg Systemhez
dini_IntSet(file, Seconds\", 0);
dini_IntSet(file, Minutes\", 0);
dini_IntSet(file, Hours\", 0);
dini_IntSet(file, Days\", 0);
 
#include <a_samp>
enum pTime
{
Seconds,
Minutes,
Hours,
Days
};
new PlayerTime[MAX_PLAYERS][pTime];
new PlayerTimer[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new file[100];
format(file, sizeof(file), \"%s.ini\", PlayerName(playerid));
PlayerTime[playerid][seconds] = dini_Int(file, \"Seconds\");
PlayerTime[playerid][Minutes] = dini_Int(file, \"Minutes\");
PlayerTime[playerid][Hours] = dini_Int(file, \"Hours\");
PlayerTime[playerid][Days] = dini_Int(file, \"Days\");
PlayerTimer[playerid] = SetTimer(\"PlayedTime\", 1000, 1, \"%d\", playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
dini_IntSet(file, \"Seconds\", PlayerTime[playerid][seconds]);
dini_IntSet(file, \"Minutes\", PlayerTime[playerid][Minutes]);
dini_IntSet(file, \"Hours\", PlayerTime[playerid][Hours]);
dini_IntSet(file, \"Days\", PlayerTime[playerid][Days]);
KillTimer(PlayerTimer[playerid]);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
if(strcmp(cmdtext, \"/played\", true) == 0)
{
format(string, sizeof(string), \"Played Time: %d days, %d hours, %d minutes, %d seconds..\", PlayerTime[playerid][Days], PlayerTime[playerid][Hours], PlayerTime[playerid][Minutes], PlayerTime[playerid][seconds]);
SendClientMessage(playerid, 0xFFFFFFFF, string);
return 1;
}
return 0;
}
forward PlayedTime(playerid);
public PlayedTime(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
PlayerTime[playerid][seconds]++;
if(PlayerTime[playerid][seconds] == 60)
{
    PlayerTime[playerid][Minutes]++;
PlayerTime[playerid][seconds] = 0;
}
if(PlayerTime[playerid][Minutes] == 60)
{
    PlayerTime[playerid][Hours]++;
PlayerTime[playerid][Minutes] = 0;
}
if(PlayerTime[playerid][Hours] == 24)
{
    PlayerTime[playerid][Days]++;
PlayerTime[playerid][Hours] = 0;
}
return 1;
}
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}

 
Lehet, hogy valaki jobban is meg tudná oldani, de nekem most ez jutott eszembe..
Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 24. - 16:48:47
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\rendormode.pwn(427) : warning 202: number of arguments does not match definition
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\rendormode.pwn(427) : warning 202: number of arguments does not match definition
ezt irja a timerre
a többivel nincs baja
Cím: Szerveren töltött idõ
Írta: TengeriMalac - 2010. november 24. - 17:16:51
De megszoktam a sima timert.
nem
SetTimer

 hanem
SetTimerEx
Cím: Szerveren töltött idõ
Írta: Sheet - 2010. november 24. - 17:23:22
Mûködik.
Köszönöm
Témát Zárom.