Problem(error/warning): Ovako zanima me kako da napravim da se na svakih 1h odnosno svaki put kad stigne plata da se neaktivnost na kuci i firmi poveca za 1
Dio skripte: [ pawn ]dacu sta treba[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Pomoc za dodavanje neaktivnosti
739
pregleda
14
postova
pre 7 godina
#include
#define MAX_KUCA 6
#define KUCE_FILE "/Kuce/%d.ini"
enum kucee { kVlasnik,kVlasnikIG,kNeaktivnost };
new KucaInfo;
public OnFilterScriptInit()
{
SetTimer("NeaktivnostTimer",60*1000*60,true);
return 1;
}
forward NeaktivnostTimer();
public NeaktivnostTimer()
{
new kuceprovj;
for(new id = 0; id < MAX_KUCA; id++)
{
format(kuceprovj,sizeof(kuceprovj),KUCE_FILE,id);
if(!fexist(kuceprovj)) continue;
if(KucaInfo==0)
{
KucaInfo+=1;
printf("HTest -> Kuca ID:%d, Neaktivnost %d sati",id,KucaInfo);
}
}
return 1;
}evo ti primjer za toga s tim da sam ja napravio timer svakih 60min ( 1 sat ) da se pokrece i da pregledava primjer za neaktivnost kuca,ti samo postavi ovo kad se logira igrac
if(PlayerInfo!=-1)
{
if(KucaInfo!=0)
{
KucaInfo[PlayerInfo] = 0;
}
KucaInfo[PlayerInfo] = 1;
}te u public OnPlayerDisconnect
if(PlayerInfo!=-1)
{
KucaInfo[PlayerInfo] = 0;
}
pre 7 godina
forward PayDay(i);
public PayDay(i)
{
if(!IsPlayerConnected(i) || UlogovanProvera == 0) return 1;
new stariiznos = PlayerInfo;
if(PlayerInfo != -1)
{
if(PlayerInfo < KucaInfo[PlayerInfo])
{
PlayerInfo = -1;
PlayerInfo = SPAWN_NORMAL;
SCM(i, -1, ""SIVA"Niste imali da platiti kiriju za kucu, iseljeni ste!");
}
PlayerInfo -= KucaInfo[PlayerInfo];
}
if(PlayerInfo < 40)
{
new string;
strcat(string, "Niste igrali dovoljno dugo da biste dobili platu!(Minimum 40min od 60min)", sizeof(string));
SPD(i, AH_DIALOG, DIALOG_STYLE_MSGBOX, "Obavestenje:", string, "U redu", "");
DobioPay = 1;
return 1;
}
pre 7 godina
ja sam pokusavao nesto i napravio sam ovo:
forward NeaktivnostFirme(i);
public NeaktivnostFirme(i)
{
new gFile[ 50 ];
format(gFile, sizeof(gFile), FIRMA_FILE, i);
if(fexist(gFile))
{
if(FirmaInfo == 1 )
{
FirmaInfo++;
if(FirmaInfo >= 750 )
{
new string1;
format(string1, sizeof(string1), ""RCRVENA" Firma ID: %d je prodata zbog neaktivnosti !", i);
SCMTA(-1, string1);
FirmaInfo = 0;
FirmaInfo = 0;
strmid(FirmaInfo, "Niko", 0, strlen("Niko"), 32);
// KuceLP( i );
}
SacuvajFirmu(i);
// FirmeLP(i);
}
}
if( i+1 < MAX_FIRMI) SetTimerEx( "NeaktivnostFirme", 10, false, "d", i+1 );
return 1;
}
pre 7 godina
Nidza wrote on December 16, 2018, 3:08 pm:
jel je moguce nekako da se to izvede da kad god dodje plata i neaktivnost se poveca za 1
to jest
if(KucaInfo == 0) continue;i
NeaktivnostTimer(); dodas tu gdje je funkcija plate ... i tjt onda ne koristi SetTimerNidza wrote on December 16, 2018, 3:16 pm:
forward PayDay(i);
public PayDay(i)
{
if(!IsPlayerConnected(i) || UlogovanProvera == 0) return 1;
new stariiznos = PlayerInfo;
if(PlayerInfo != -1)
{
if(PlayerInfo < KucaInfo[PlayerInfo])
{
PlayerInfo = -1;
PlayerInfo = SPAWN_NORMAL;
SCM(i, -1, ""SIVA"Niste imali da platiti kiriju za kucu, iseljeni ste!");
}
PlayerInfo -= KucaInfo[PlayerInfo];
}
if(PlayerInfo < 40)
{
new string;
strcat(string, "Niste igrali dovoljno dugo da biste dobili platu!(Minimum 40min od 60min)", sizeof(string));
SPD(i, AH_DIALOG, DIALOG_STYLE_MSGBOX, "Obavestenje:", string, "U redu", "");
DobioPay = 1;
return 1;
}NeaktivnostTimer(); gdje ispise da je dobio platu sto znaci da je to ispod posto vidim ovo da ti ima niste igrali dovoljno dugo da biste dobili platu ... ako zelis i tak da ti racuna onda ispod if(!IsPlayerConnected(i) || UlogovanProvera == 0) return 1;dodas NeaktivnostTimer(); , a ako ne ako samo kad se dobije plata
onda dodas ispod teksta tu u PayDay funkciji gdje ispise da je dobio platu
NeaktivnostTimer();
pre 7 godina
#include
#define MAX_KUCA 6
#define KUCE_FILE "/Kuce/%d.ini"
enum kucee { kKupljena,kVlasnik,kVlasnikIG,kNeaktivnost };
new KucaInfo;
forward NeaktivnostTimer();
public NeaktivnostTimer()
{
new kuceprovj; new string1;
for(new id = 0; id < MAX_KUCA; id++)
{
format(kuceprovj,sizeof(kuceprovj),KUCE_FILE,id);
if(!fexist(kuceprovj)) continue;
if(KucaInfo==0) continue;
if(KucaInfo==0)
{
KucaInfo+=1;
printf("HTest -> Kuca ID:%d, Neaktivnost %d sati",id,KucaInfo);
if(KucaInfo==750)
{
KucaInfo = 0;
KucaInfo = 0;
format(KucaInfo,24,"Niko");
SacuvajKucu(id); KuceLP(id);
format(string1, sizeof(string1), ""RCRVENA" Kuca ID: %d je prodata zbog neaktivnosti !",id);
SCMTA(-1, string1);
}
}
}
return 1;
}
//----------------------------------------------------------
if(PlayerInfo!=-1) // kad se logira dodas ovo
{
if(KucaInfo!=0)
{
KucaInfo[PlayerInfo] = 0;
}
KucaInfo[PlayerInfo] = 1;
}
if(PlayerInfo!=-1) // u OnPlayerDisconnect
{
KucaInfo[PlayerInfo] = 0;
}
// dodas u PayDay funkciju ovo:
//--------------------------------------
NeaktivnostTimer();
//--------------------------------------
evo ti primjer i samo primijenis svojoj skripti tosve sto ti treba jest da dodas u enum od Kuca
kVlasnikIG
i da spojis to sto sam ti poslao / napisao / ispravio malo prema tvojoj skripti
i da stavis da kod kupovine kuce stavlja da je vlasnik IG
KucaInfo[PlayerInfo] = 1;i kad se proda kuca -- prije setanja igracu kuce na id -1 (prodan)
KucaInfo[PlayerInfo] = 0;i tako isto napravis i za firme npr..
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava