Szasztok!
Van két elég érdekes problémám.
1.
Az egyik timer aminek foylamatosan ismétlödnie kell mindaddig mig a szerver fut van hogy egy hosszabb müködés után cska ugy magátol leáll.
OnGamemodeInit nél inditom el ismétlés be van kapcsolva másodpercenként kellene lefutnia.
Ez pár órán söt akár napokon keresztül is megy, de van hogy egyszerüen megáll. Gyanakodtam KillTimerekre hogy van egy ami akkor is Kikapcsol egy timert ha az már kivan kapcsolva és helyette ezt kapcsolja ki, de ez nem valószinû mert már többször átnyálaztam a módot ilyen hiba nem léphet fel.
[pawn]KillTimer(RendorGateCloseTimer);RendorGateCloseTimer = 0;//egy példa hogyan is kapcoslok ki egy timert[/pawn]
Fontos megemlitenem hogy ezt a timert inditom el legeslegelõször, tehát ennek van a legkisebb ID je
2.
szintén hosszabb mûködés után van hogy az OnPlayerConnect függvény egyszerüen mintha kikapcsolódna vagy nem hivodna meg soha itt van hátha ki tudtok szedni belõle valamit:
[pawn]public OnPlayerConnect(playerid)
{
format(query,sizeof(query),\"DELETE FROM `Ban` WHERE `UnbanDate` <= %d\",gettime()+7200);
mysql_query(query);
TogglePlayerSpectating(playerid,0);
SetPVarInt(playerid,\"SpectatingPlayerid\",-1);
SetPVarInt(playerid,\"MinigameGameSpawned\",-1);
SetPVarInt(playerid,\"HouseID\",-1);
GetPlayerIp(playerid,IP,sizeof(IP));
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),\"SELECT * FROM `Ban` WHERE `IP` = \'%s\' OR `Name` = \'%s\'\",IP,name);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0) // Ha a sor nem üres
{
mysql_fetch_row(Line);
mysql_free_result();
new RegID,reason[100],bandate[50],admin[24],unbantime;
new year,month,day, hour,minute,second;
sscanf(Line,\"p<|>ds[24]s[100]s[50]s[24]s[16]d\",RegID,name,reason,bandate,admin,IP,unbantime);
SendClientMessagef(playerid,COLOR_GREEN,\"==========================================================\");
SendClientMessagef(playerid,COLOR_GREEN,\"Banolva vagy a szerverrõl.\");
SendClientMessagef(playerid,COLOR_GREEN,\"RegID: %d\",RegID);
if(unbantime != 99999999999999999999)
{
date(unbantime, day, month, year, hour, minute, second);
SendClientMessagef(playerid,COLOR_GREEN,\"Unban dátum: %d/%d/%d %d:%d\",year,month,day,hour,minute);
}
else
{
SendClientMessagef(playerid,COLOR_GREEN,\"Unban dátum: nincs\");
}
SendClientMessagef(playerid,COLOR_GREEN,\"Admin neve: %s\",admin);
SendClientMessagef(playerid,COLOR_GREEN,\"Indok: %s\",reason);
date(gettime()+7200, day, month, year, hour, minute, second);
SendClientMessagef(playerid,COLOR_GREEN,\"Dátum: %d/%d/%d %d:%d\",year,month,day,hour,minute);
SendClientMessagef(playerid,COLOR_GREEN,\"==========================================================\");
Kick(playerid);
return 1;
}
else
{
mysql_free_result();
}
if(!GetPVarInt(playerid,\"Requesting\"))
{
PlayAudioStreamForPlayer(playerid, \"
http://www.youtube-mp3.org/get?video_id=uQfQOKuTq54&&h=6472e42a125900c82b9b4a5db81330ce\");
SetPVarInt(playerid,\"Requesting\",1);
}
GetPlayerName(playerid,name,sizeof(name));
if(!fexist(\"adatbazis/logs/aka.log\"))
{
dini_Create(\"adatbazis/logs/aka.log\");
}
if(fexist(\"adatbazis/logs/aka.log\"))
{
GetPlayerIp(playerid, IP, sizeof(IP));
if(!strlen(dini_Get(\"adatbazis/logs/aka.log\", IP)))
{
dini_Set(\"adatbazis/logs/aka.log\", IP, name);
}
else
{
if(strfind(dini_Get(\"adatbazis/logs/aka.log\", IP), name, true) == -1 )
{
new i_str[800];
if(strlen(dini_Get(\"adatbazis/logs/aka.log\", IP))+30 < sizeof(i_str))
{
format(i_str, strlen(dini_Get(\"adatbazis/logs/aka.log\", IP))+30, \"%s %s\", dini_Get(\"adatbazis/logs/aka.log\", IP), name);
dini_Set(\"adatbazis/logs/aka.log\", IP, i_str);
}
}
}
}
Streamer_UpdateEx(playerid,-3364.463623,-2926.443359,87.995620);
ToltodoCsik[playerid] = CreateProgressBar(279.00, 395.00, 86.50, 10.19, 65433, 105.0);
ToltodoCsik[playerid] = CreateProgressBar(279.00, 395.00, 86.50, 10.19, 65433, 105.0);
TextDrawShowForPlayer(playerid,logo);
TextDrawShowForPlayer(playerid,vonal1);
TextDrawShowForPlayer(playerid,vonal2);
SetPVarInt(playerid,\"Clock\",1);
if(!IsPlayerNPC(playerid))
{
SetPVarInt(playerid, \"LoggedIn\", 0);
SetPVarInt(playerid, \"RegID\", -1);
SetPlayerColor(playerid,PlayerColors[random(sizeof (PlayerColors))]);
new MyRegID;
// Autologin
format(query, sizeof(query), \"SELECT * FROM `players` WHERE `Name` = \'%s\' AND `Ip` = \'%s\'\", Name(playerid), IP);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0) // Ha a sor nem üres
{
mysql_fetch_row(Line);
mysql_free_result();
sscanf(Line, \"p<|>d{s[24]s[16]s[30]s[24]s[24]d}\", MyRegID);
SetPVarInt(playerid, \"RegID\", MyRegID);
LoginPlayer(playerid, Line);
if(GetPVarInt(playerid,\"Level\") >= 1) SetPVarInt(playerid,\"readcmds\",1);
SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél.\");
}
else // Ha üres, akkor itt lesz free_result mer az elõzõ részünk akkor nem fut le és nem lesz neki ott free_result
{
mysql_free_result();
}
if(!GetPVarInt(playerid, \"LoggedIn\")) // Ha nincs bejelentkezve, ez a lekérés ide nagyon fontos mert minden gobnyomásnál felmutatná a skiválasztóban.
{
format(query, sizeof(query), \"SELECT * FROM `players` WHERE `Name` = \'%s\'\", Name(playerid)); // Kiválasztjuk, a játékos nevét
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0) // Ha a sorok száma nem 0 ( nem üres )
{
LoginDialog(playerid); // Akkor login
}
else // Ellentétben
{
RegisterDialog(playerid); // Register
}
mysql_free_result();
}
}
format(str,sizeof(str),\"*** %s%s {\"HEXCOLOR_GREEN\"}csatlakozott! ***\",GetPlayerColorInHex(playerid),name);
foreach(Player,i)
{
if(i != playerid)
SendClientMessage(i,COLOR_GREEN,str);
}
SetPlayerVirtualWorld(playerid,2);OnPlayerWorldChange(playerid);
SetPlayerPos(playerid,-2681.8884,1344.3270,16.9978);
Streamer_UpdateEx(playerid,-2681.8884,1344.3270,16.9978);
SetPlayerFacingAngle(playerid,269.9227);
SetPlayerCameraPos(playerid,-2678.412597, 1344.407226, 17.2698);
SetPlayerCameraLookAt(playerid,-2700.1948,1343.8145,20.3360);
ApplyAnimation(playerid,\"DANCING\",\"DNCE_M_A\",4.0,1,0,0,0,-1);
SetPlayerTime(playerid,24,0);
SendDeathMessage(0xFFFF,playerid,200);
CreatePlayerTextdraw(playerid);
return 1;
}[/pawn]
ennyi lenne ha bármelyiknél van ötlete valakinek az irja le lécci elõre is köszi