Problem(error/warning): Ovako, imam problem, igraÄ kada se uloguje na server odma umre.
Dio skripte: [pawn]Koji treba?[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Posalji case DialogLogin tako se nekako zove
[pawn]case DIALOG_LOGIN:
{
if (!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pSifra])
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pNovac]);
new rand = random(sizeof(RandomSpawn2));
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], RandomSpawn2[rand][0], RandomSpawn2[rand][1], RandomSpawn2[rand][2], RandomSpawn2[rand][3], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
UlogovanProvjera[playerid] = 1;
new stringt[256];
format(stringt, sizeof(stringt),"{F3FF02}[IRP] Adm | {00BFFF}Igrac %s {ffffff}(%d) {00C0FF}je usao na server!!!",GetName(playerid), playerid);
Logovanje(-1,stringt,1);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""CRVENA"Unio si pogresnu sifru.\n"COL_WHITE"Upisi sifru ispod da se ulogujes.","Login","Odbij");
}
format(string,sizeof(string),"{FFF1AF}Dobrodosao %s na{FFFFFF} Imperial RolePlay.",GetName(playerid));
SCM(playerid,-1,string);
if(PlayerInfo[playerid][pAdmin] > 0)
{
SCM(playerid, -1," ");
SCMF(playerid, -1,"{F3FF02}Logovan si kao Administrator %d nivoa.", PlayerInfo[playerid][pAdmin]);
}
return 1;
}
}[/pawn]
fazon je sto sam ja imao setplayerhealth 0 to sam izbrisao i fiksalo mi se tako mi je bilo proveri u skripti da nemas gde setplayerhealth(playerid,0);
sem komande kill
Neće, može neko struÄniji da pomogne?
[pawn]case DIALOG_LOGIN:
{
if (!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pSifra])
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pNovac]);
SpawnPlayer(playerid);
SetPlayerHealth(playerid, 100);
SpawnIgraca(playerid);
UlogovanProvjera[playerid] = 1;
new stringt[256];
format(stringt, sizeof(stringt),"{F3FF02}[IRP] Adm | {00BFFF}Igrac %s {ffffff}(%d) {00C0FF}je usao na server!!!",GetName(playerid), playerid);
Logovanje(-1,stringt,1);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""CRVENA"Unio si pogresnu sifru.\n"COL_WHITE"Upisi sifru ispod da se ulogujes.","Login","Odbij");
}
format(string,sizeof(string),"{FFF1AF}Dobrodosao %s na{FFFFFF} Imperial RolePlay.",GetName(playerid));
SCM(playerid,-1,string);
if(PlayerInfo[playerid][pAdmin] > 0)
{
SCM(playerid, -1," ");
SCMF(playerid, -1,"{F3FF02}Logovan si kao Administrator %d nivoa.", PlayerInfo[playerid][pAdmin]);
}
return 1;
}
}[/pawn]
Probaj pod OnPlayerSpawn dodat da se setuje healt
dAJ onplayerspawn
Evo OnPlayerSpawn
[pawn]public OnPlayerSpawn(playerid)
{
SetPlayerSpawn(playerid);
SetTimerEx("sobietcheck", 100, 0, "i", playerid);
Timer[playerid] = SetTimerEx("CheckPing",1000,1,"i",playerid);
if(AdminVozilo[playerid] != -1) DestroyVehicle(AdminVozilo[playerid]), AdminVozilo[playerid] = -1;
if(IsPlayerConnected(playerid))
{
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
}
if(UlogovanProvjera[playerid] == 0)
{
Kick(playerid);
}
return 1;
}[/pawn]
A evo i SetPlayerSpawn
[pawn]public SetPlayerSpawn(playerid)
{
if(UlogovanProvjera[playerid] == 1)
{
if(PlayerInfo[playerid][pSpawnIzabran] == 1)
{
SetPlayerPosEx(playerid,-176.2580,1112.2136,19.7422);
SetPlayerHealth(playerid, 100);
return 1;
}
if(PlayerInfo[playerid][pSpawnIzabran] == 2)
{
SetPlayerPosEx(playerid,-217.8446,979.2046,19.5042);
SetPlayerHealth(playerid, 100);
return 1;
}
}
return 1;
}[/pawn]
ZnaÄi nema Å¡anse da ikako budem živ kad se ulogujem, umrem, i kad umrem opet mi se postavi health 0 i sve tako u krug
Citat: Armandooâ,,¢ poslato Januar 14, 2019, 00:08:20 PRE PODNE
Evo OnPlayerSpawn
[pawn]public OnPlayerSpawn(playerid)
{
SetPlayerSpawn(playerid);
SetTimerEx("sobietcheck", 100, 0, "i", playerid);
Timer[playerid] = SetTimerEx("CheckPing",1000,1,"i",playerid);
if(AdminVozilo[playerid] != -1) DestroyVehicle(AdminVozilo[playerid]), AdminVozilo[playerid] = -1;
if(IsPlayerConnected(playerid))
{
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
}
if(UlogovanProvjera[playerid] == 0)
{
Kick(playerid);
}
return 1;
}[/pawn]
A evo i SetPlayerSpawn
[pawn]public SetPlayerSpawn(playerid)
{
if(UlogovanProvjera[playerid] == 1)
{
if(PlayerInfo[playerid][pSpawnIzabran] == 1)
{
SetPlayerPosEx(playerid,-176.2580,1112.2136,19.7422);
SetPlayerHealth(playerid, 100);
return 1;
}
if(PlayerInfo[playerid][pSpawnIzabran] == 2)
{
SetPlayerPosEx(playerid,-217.8446,979.2046,19.5042);
SetPlayerHealth(playerid, 100);
return 1;
}
}
return 1;
}[/pawn]
ZnaÄi nema Å¡anse da ikako budem živ kad se ulogujem, umrem, i kad umrem opet mi se postavi health 0 i sve tako u krug
Nema nikakve sumnje, sta si zadnje radio na gmodu
Ma otkako sam ga poÄeo raditi imam ovaj bug, skini imperial roleplay sa balkan sampa objavio sam ga pa vidi :D
Dodaj na pocetak moda hook te funkcije SetPlayerHealth debuga je i vidi ako negdje poziva i seta hp na 0.
Pojasni kralju
#include <a_samp>
#include <kurac>
#include <palac>
stock debug_SetPlayerHealth(playerid, Float: health)
{
new const ret = SetPlayerHealth(playerid, health);
if (ret) printf("SPHP(%d, %.2f);", playerid, health);
return ret;
}
#if defined _ALS_SetPlayerHealth
#undef SetPlayerHealth
#else
#define _ALS_SetPlayerHealth
#endif
#define SetPlayerHealth debug_SetPlayerHealth
[join] Viserys_Targaryen has joined the server (0:127.0.0.1)
SPHP(0, 100.00);
SPHP(0, 100.00);
Eto šta mi izbacuje u konzolu
Pa onda ne umire igrac zbog setanja HP-a na 0...
edit.
Debugaj OnPlayerDeath killerid i reason
Napravio sam ovako debug ali mi ne izbacuje ništa u konzoli, gdje sam pogriješio
[pawn]stock debug_OnPlayerDeath(playerid, killerid, reason)
{
new const ret = OnPlayerDeath(playerid, killerid, reason);
if (ret) printf("SPHP(%d, %d, %s);", playerid, killerid, reason);
return ret;
}
#if defined _ALS_OnPlayerDeath
#undef OnPlayerDeath
#else
#define _ALS_OnPlayerDeath
#endif
#define OnPlayerDeath debug_OnPlayerDeath[/pawn]
haha ne tako vec samo dodaj ispod onplayerdeath postojeceg debug
public OnPlayerDeath(playerid, killerid, reason) {
printf("OnPlayerDeath(%d, %d, %d)", playerid, killerid, reason);
.... ostatak tvog koda
return 1;
}
Vidi jel imas ovo ako nemas ubaci ispod onplayerspawn
g_SetPlayerHealth(playerid, 99.0);
xunder
[pawn][join] Viserys_Targaryen has joined the server (0:127.0.0.1)
SPHP(0, 100.00);
SPHP(0, 100.00);
OnPlayerDeath(0, 65535, 255)
OnPlayerDeath(0, 65535, 255)
OnPlayerDeath(0, 65535, 255)
[/pawn]
RijeÅ¡io sam problem, ali imam problem kada se igraÄ loginuje ili registruje ne spawna ga, nego mu piÅ¡e dole ono spawn i to ...
Druze nisi sluzo mn probaj vako i nece te ubijat kad se loginujes ili spawnas
Vidi jel imas ovo ako nemas ubaci ispod onplayerspawn
g_SetPlayerHealth(playerid, 99.0);
Ama ima pod onplayerspawn da seta hp na 100 i kako ti misliš nekome pomoći kad vadiš iz UP moda g_SetPlayerHealth, kako ti znaš da ja imam taj callback ili šta već?
Taj sam ja problem riješio
Posalji ponovo onplayerspawn i gamemodeinit
Armando imas li SpawnPlayer(playerid); ?
i posalji celi taj public gde ga drzis da vidim tacno na kojoj poziciji je
OnPlayerRequestSpawn daj...
Ne znam sta da ti kazem :D
Citat: Armandooâ,,¢ poslato Januar 14, 2019, 13:52:12 POSLE PODNE
RijeÅ¡io sam problem, ali imam problem kada se igraÄ loginuje ili registruje ne spawna ga, nego mu piÅ¡e dole ono spawn i to ...
pa staviš SetSpawnInfo / SpawnPlayer hahah