Üdv!
Annyi lenne a problémám, hogy amióta ismétlődő timerrel lekérdezésekkel frissítem a textdrawomat + információkkal mint előtte(azért kell a timer hogy váltakozzon), azóta a textlabelek illetve a materialtext-elt objektek elvesztik az ékezeteket, de csak azok amiken a behelyettesített tartalom szerepel a TEXTLABELEN, és ott is csak a behelyettesített tartalom. Ezt nem tudom másképp elmagyarázni, tudom elég hülyén sikerült de hoztam képeket.
Nem értem mi baj van egyébként, átnéztem a szkriptet, és semmi nincs ami miatt ez történhetne, na meg ilyenről még nem is hallottam. Hátha valaki okosabb mint én, ami mondjuk nem nehéz, mert a szövegműveletekhez sík hülye vagyok sampon. :)
E: Igen, én mindig összekeverem a labelt a drawval :D
SZÓVAL SEGÍTSÉG!!!
Na de: KÉPEK





Itt az előző verzió linkje (amin még ment az ékezetes dolog): https://sampforum.hu/index.php?topic=64767.0
A szkriptet meg nagy reménytelenségemben most akartam publikálni, tehát itt a TELJES kód:
#if defined asd
LSTKR v2
By Burst aka Peti134
===================================================================================================
Tartalom | Verziószám: 2.5
===================================================================================================
Menetrend szerint közlekedő járatok
-Adott időnként indul egy járat a végállomásról
-Adott időszakban közlekedik a járat (éjszakai járat is megoldható)
-Megállók között mentett menetidő
-Megállók felett textdlabel látható hogy adott járat körülbelül mikor érkezik
---------------------------------------------------------------------------------------------------
Garázsmenet szimuláció
-A buszok a garázsból jönnek ki járatra, és amennyiben lejár az üzemidő / admin közbeavatkozik,
végigmegy az adott meneten, aztán elindul a garázsba
---------------------------------------------------------------------------------------------------
Dinamikus rendszer
-A megállók illetve járatok is fájlokból vannak betöltve
-A megállók In-Game is testreszabhatók
---------------------------------------------------------------------------------------------------
Utastájékoztatás
-A járművekbe beszálláskor megjelenik egy monitor textdraw, amin a járat jelzése, végállomása
illetve 4 következő megállók láthatók
-Igény esetén hangos utastájékoztatás (\'következő megálló...XY\')
[Jelen verzióhoz nem tartozik alapértelmezetten]
-Járművek elején scrolling text \'kijelző\'
-Járművek felett felirat (textlabel)
---------------------------------------------------------------------------------------------------
Kezelhető NPC-k
-RCON adminisztrátorok tudják vezérelni az NPC-ket, illetve tudnak éppen nem közlekedő járatra
is lerakni NPC-t
---------------------------------------------------------------------------------------------------
Okos NPC-k
-A buszok nem ütnek el senkit, amennyiben valaki eléjük kerül, megáll,
viszont ha az illető AFK, vagy szórakozik, egy idő után továbbindul
---------------------------------------------------------------------------------------------------
Szándékos hibák (valóság-szimuláció)
-Buszok elején a \'kijelző\' véletlenszerűen megáll, hiányos, vagy téves információt ír
===================================================================================================
Ismert hibák
-Szerver lagg esetén nem biztos hogy megáll a busz valahol, a végállomáson vesztegel
amíg egy RCON admin nem reseteli
-/npc marad bizonyos esetekben nem működik
-Vonattal nem lett tesztelve a rendszer, valószínűleg nem, vagy nem megfelelően működik
-Buszok időnként összebuggolnak (Okos NPC-k pontban említett okok miatt)
-Megállók feletti textdraw néha több időt ír mint kéne, aztán nagyokat esik az idő
===================================================================================================
Licensz, egyebek
Módosítva publikálni csak engedéllyel. Saját használatra módosítható!
Az ismert hibák nagy része idő/kedv hiányában nem lett kijavítva.
Amennyiben javítasz egy hibát, azt feltétlenül küldd el nekem e-mailben!
===================================================================================================
Újdonságok a 2.6B (mint bugos) verzióban
===================================================================================================
-Utastájékoztató monitor írja az átszállásokat, illetve ha végállomás egy megálló
Itt kompromisszumra kellett jutnom a SA-MP-pal, ugyanis így bugosak az ékezetes megállónevek
(MEGOLDÁS ALATT)
===================================================================================================
Várható újdonságok
===================================================================================================
Vonat
Valóság-szimuláció bővülése:
-Véletlenszerű lerobbanások, vonatpótlás, lerobbant járművek garázsba juttatása, stb.
===================================================================================================
HAMAROSAN ANGOL NYELVEN IS! COMING SOON IN ENGLISH LANGUAGE!
Kapcsolat: burst99325@gmail.com >>> Tárgy: LSTKRv2
===================================================================================================
#endif
#define VERZIO \"v2.6B\"
#include <a_samp>
#include <a_angles>
#include <foreach>
#include <dini>
#include <streamer>
#include <zcmd>
#include <sscanf2>
#include <fixchars>
#pragma unused strtok
//VÁLTOZTATHATÓ DOLGOK - VÁLTOZTATHATÓ DOLGOK - VÁLTOZTATHATÓ DOLGOK - VÁLTOZTATHATÓ DOLGOK - VÁLTOZTATHATÓ DOLGOK
#define MEGALLO_IDO 13 //Jármű megállóban tartózkodási ideje másodpercben mérve
new bool:NPC_BusStopDebug = false;//Annyit tesz, hogy a megállók neve mellett ott lesz zárójelben az azonosító.
//#define BEMONDAS
#if defined BEMONDAS
new HANGOK_ELERHETOSEGE[128] = \"http://users.atw.hu/bpvkv/LSTKR2/\";//Bemondó hangok elérhetősége
#endif
#define SZERVERNEVE \"[LSTKR]\"//Szerver neve röviden, [ ] között
#define SZERVERNEVE2 \"LSTKR\"//Szerver neve röviden
#define SZERVERNEVEFULL \"Los Santos Tömegközlekedési Rendszer\"//Szerver neve hosszan, \"RolePlay\"-jel
#define SZERVERNEVEFULLRP \"Los Santos Tömegközl. Rendszer\"//Szerver neve hosszan, \"RP\"-vel
//VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE - VÉGE
////////////////////////////////////////////////////////////////////////////////////////Timer
#define tsecond(%1) \\
(%1 * 1000)
#define tminute(%1) \\
(tsecond(%1) * 60)
#define thour(%1) \\
(tminute(%1) * 60)
#define tday(%1) \\
(thour(%1) * 24)
////////////////////////////////////////////////////////////////////////////////////////
native IsValidVehicle(vehicleid);
////////////////////////////////////////////////////////////////////////////////////////Szinek
#define COLOR_INVISIBLE 0xFFFFFF00
#define COLOR_PIROS 0xFF0000FF
#define COLOR_PINK 0xFF80FFC7
#define COLOR_SKEK 0x2641FEAA
#define COLOR_LIGHTBROWN 0x8B4513FF
#define COLOR_ORANGE 0xFF8C00AA
#define COLOR_BLACK 0x050505AA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_RED2 0xAA0000AA
#define COLOR_BLUE 0x1373C1FF
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_ALLDEPT 0xFF8282AA
#define OBJECTIVE_COLOR 0x64000064
#define COLOR_ADD 0x63FF60AA
#define COLOR_ULTRAPIROS 0xE60000FF
#define Pink 0xFF00FFFF
#define Pink2 0xFF1493FF
#define COLOR_MEGALLO 0x9900FFFF
////////////////////////////////////////////////////////////////////////////////////////
stock bool:FALSE = false;
#define SCM SendClientMessage
#define SCMToAll SendClientMessageToAll
#define SendFormatMessage(%1,%2,%3,%4) do{new sendfstring[256];format(sendfstring,256,(%3),%4);Msg(%1,(%2),sendfstring,false);}while(FALSE)
#define SendFormatMessageToAll(%1,%2,%3) do{new sendfstring[256];format(sendfstring,256,(%2),%3);MsgToAll((%1),sendfstring,false);}while(FALSE)
#define SFMToAll(%1,%2,%3) do{new sendfstring[256];format(sendfstring,256,(%2),%3);MsgToAll((%1),sendfstring);}while(FALSE)
#define SFM(%1,%2,%3,%4) do{new sendfstring[256];format(sendfstring,256,(%3),%4);Msg(%1,(%2),sendfstring);}while(FALSE)
#define NINCS -1
#define NPC_AKCIO_START \"start\"
#define NPC_AKCIO_STOP \"stop\"
#define NPC_AKCIO_PAUSE \"szunet\"
#define NPC_AKCIO_RESUME \"folytat\"
#define MAX_JARAT 10
#define MAX_NPC 50
#define MAX_MEGALLO 50
#define TIPUS_BUSZ 0
#define TIPUS_VONAT 1
#define TIPUS_VILLAMOS 2
#define TIPUS_EJSZAKAI 3
#define MEGALLO 0
#define STOPPED 1
#define ASTOPPED 2
#define MEGALLONEV 0
#define KOVETKEZO 1
#define VEGALLOMAS 2
#define UDV 3
forward NPC_Start(id);
forward NPC_Stop(id);
forward NPC_Pause(id);
forward NPC_Resume(id);
forward NPCCheck(id);
forward MPTimer();
forward MonitorTimer(id);
forward JaratKovCheck(jid);
forward KijelzoLapozas();
forward MelyikMegallo(azonosito[]);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward Bemond(id,tipus);
forward Float:GetDistanceBetweenPlayers(p1,p2);
forward Float:GetDistanceToVehicle(playerid,vehicleid);
forward Float:GetDistanceToPoint(playerid,Float:x1,Float:y1,Float:z1);
forward Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2);
//Busz monitor
new Text:BK_Keret;
new Text:BK_Kijelzo;
new Text:BK_Vegallomas[MAX_NPC];
new Text:BK_Vonal;
new Text:BK_Pont1;
new Text:BK_Pont2;
new Text:BK_Pont3;
new Text:BK_Pont4;
new Text:BK_KovMeg[MAX_NPC];
new Text:BK_Megallo1[MAX_NPC];
new Text:BK_Megallo2[MAX_NPC];
new Text:BK_Megallo3[MAX_NPC];
new BK_Showed[MAX_PLAYERS] = NINCS;
//Vége
enum jaratinfo
{
bool:jVan,
jViszonylat[16],
jJarmuvekSzama,
jFileName[32],
jVegall[128],
jMegallokSzama,
jKovTimer,
jKovetesiPerc,
jKozlInterVallum[2],
bool:jEgyebSzovegVan,
jEgyebSzoveg[32],
jTipus,
jMenetIdo[MAX_MEGALLO]
};
new jInfo[1000][jaratinfo];
enum npcInfo
{
bool:nVan,
bool:nBemondta,
nPlayerID,
nJaratID,
nPlayerName[32],
nHolTart,
bool:nAll,
nAllasOka,
Text3D:nLabel,
nJarmu,
nKijelzoJSZ,
nKijelzo,
nKijelzoSzoveg[128],
nKijelzoState,
nCheckTimer,
nMonitorTimer,
nMonitorState,
nMennyitAllt,
nUjraMegallhat,
nMenetIdo,
nErkIdo,
nMenetAllapot,
nBug[3]
};
new nInfo[MAX_NPC][npcInfo];
new NPC_ID[MAX_PLAYERS] = -1;
enum megalloInfo
{
bool:mVan,
mAzonosito[128],
mNev[128],
Float:mPos[3],
Text3D:mLabel,
mHang[32],
mHangTime
};
new mInfo[MAX_MEGALLO][megalloInfo];
new NPC_Megallok[1000][MAX_MEGALLO][128];
public OnFilterScriptInit()
{
new h,mi,s,y,m,d;
getdate(y,m,d);
gettime(h,mi,s);
printf(\"[%d.%02d.%02d. %02d:%02d]: %s %s betöltése:\",y,m,d,h,mi,SZERVERNEVE2,VERZIO);
//Busz textdraw
BK_Keret = TextDrawCreate(558.000000, 344.000000, \" \");
TextDrawAlignment(BK_Keret, 2);
TextDrawBackgroundColor(BK_Keret, 255);
TextDrawFont(BK_Keret, 1);
TextDrawLetterSize(BK_Keret, 0.709999, 6.400000);
TextDrawColor(BK_Keret, -1);
TextDrawSetOutline(BK_Keret, 0);
TextDrawSetProportional(BK_Keret, 1);
TextDrawSetShadow(BK_Keret, 1);
TextDrawUseBox(BK_Keret, 1);
TextDrawBoxColor(BK_Keret, 255);
TextDrawTextSize(BK_Keret, 474.000000, 159.000000);
BK_Kijelzo = TextDrawCreate(558.000000, 348.000000, \" \");
TextDrawAlignment(BK_Kijelzo, 2);
TextDrawBackgroundColor(BK_Kijelzo, 255);
TextDrawFont(BK_Kijelzo, 1);
TextDrawLetterSize(BK_Kijelzo, 0.709999, 5.599999);
TextDrawColor(BK_Kijelzo, -1);
TextDrawSetOutline(BK_Kijelzo, 0);
TextDrawSetProportional(BK_Kijelzo, 1);
TextDrawSetShadow(BK_Kijelzo, 1);
TextDrawUseBox(BK_Kijelzo, 1);
TextDrawBoxColor(BK_Kijelzo, 65535);
TextDrawTextSize(BK_Kijelzo, 474.000000, 150.000000);
BK_Vonal = TextDrawCreate(489.000000, 365.000000, \" \");
TextDrawAlignment(BK_Vonal, 2);
TextDrawBackgroundColor(BK_Vonal, 255);
TextDrawFont(BK_Vonal, 1);
TextDrawLetterSize(BK_Vonal, 0.500000, 1.000000);
TextDrawColor(BK_Vonal, -1);
TextDrawSetOutline(BK_Vonal, 0);
TextDrawSetProportional(BK_Vonal, 1);
TextDrawSetShadow(BK_Vonal, 1);
TextDrawUseBox(BK_Vonal, 1);
TextDrawBoxColor(BK_Vonal, -1);
TextDrawTextSize(BK_Vonal, -4.000000, -3.000000);
BK_Pont1 = TextDrawCreate(489.000000, 359.000000, \"O\");
TextDrawAlignment(BK_Pont1, 2);
TextDrawBackgroundColor(BK_Pont1, 255);
TextDrawFont(BK_Pont1, 1);
TextDrawLetterSize(BK_Pont1, 0.300000, 1.000000);
TextDrawColor(BK_Pont1, -1);
TextDrawSetOutline(BK_Pont1, 0);
TextDrawSetProportional(BK_Pont1, 1);
TextDrawSetShadow(BK_Pont1, 0);
BK_Pont2 = TextDrawCreate(489.000000, 369.000000, \"O\");
TextDrawAlignment(BK_Pont2, 2);
TextDrawBackgroundColor(BK_Pont2, 255);
TextDrawFont(BK_Pont2, 1);
TextDrawLetterSize(BK_Pont2, 0.300000, 1.000000);
TextDrawColor(BK_Pont2, -1);
TextDrawSetOutline(BK_Pont2, 0);
TextDrawSetProportional(BK_Pont2, 1);
TextDrawSetShadow(BK_Pont2, 0);
BK_Pont3 = TextDrawCreate(489.000000, 379.000000, \"O\");
TextDrawAlignment(BK_Pont3, 2);
TextDrawBackgroundColor(BK_Pont3, 255);
TextDrawFont(BK_Pont3, 1);
TextDrawLetterSize(BK_Pont3, 0.300000, 1.000000);
TextDrawColor(BK_Pont3, -1);
TextDrawSetOutline(BK_Pont3, 0);
TextDrawSetProportional(BK_Pont3, 1);
TextDrawSetShadow(BK_Pont3, 0);
BK_Pont4 = TextDrawCreate(489.000000, 395.000000, \" \");
TextDrawAlignment(BK_Pont4, 2);
TextDrawBackgroundColor(BK_Pont4, 255);
TextDrawFont(BK_Pont4, 1);
TextDrawLetterSize(BK_Pont4, 0.500000, 1.000000);
TextDrawColor(BK_Pont4, -1);
TextDrawSetOutline(BK_Pont4, 0);
TextDrawSetProportional(BK_Pont4, 1);
TextDrawSetShadow(BK_Pont4, 1);
TextDrawUseBox(BK_Pont4, 1);
TextDrawBoxColor(BK_Pont4, -1);
TextDrawTextSize(BK_Pont4, -1.000000, 0.000000);
//Vége
MegalloBetoltes();
JaratBetoltes();
SetTimer(\"KijelzoLapozas\",200,true);
SetTimer(\"MPTimer\",1000,true);
printf(\"[%d.%02d.%02d. %02d:%02d]: %s %s betöltve\",y,m,d,h,mi,SZERVERNEVE2,VERZIO);
return 1;
}
public NPCCheck(id)
{
MonitorTimer(id);
new jid = nInfo[id][nJaratID];
if(!nInfo[id][nVan])return 1;
if(!NPC_VanElotteValaki(id))
{
nInfo[id][nUjraMegallhat]--;
if(nInfo[id][nUjraMegallhat] <0) nInfo[id][nUjraMegallhat]=0;
nInfo[id][nMennyitAllt] = 0;
}
if(nInfo[id][nAll])
{
if(nInfo[id][nAllasOka] == STOPPED)
{
if(!NPC_VanElotteValaki(id))
{
SCM(nInfo[id][nPlayerID],-1,NPC_AKCIO_RESUME);
nInfo[id][nAll] = false;
} else if(NPC_VanElotteValaki(id))
{
nInfo[id][nMennyitAllt]++;
if(nInfo[id][nMennyitAllt] >= 150)
{
SCM(nInfo[id][nPlayerID],-1,NPC_AKCIO_RESUME);
nInfo[id][nAll] = false;
nInfo[id][nUjraMegallhat]=30;
}
}
}
return 1;
}
new kovid = MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]]);
new Float:tavoda,Float:tavkettokozott;
new elozo = nInfo[id][nHolTart] - 1;
if(elozo < 0) elozo=0;
tavkettokozott = GetDistanceBetweenPoints(mInfo[kovid][mPos][0],mInfo[kovid][mPos][1],mInfo[kovid][mPos][2], mInfo[elozo][mPos][0],mInfo[elozo][mPos][1],mInfo[elozo][mPos][2]);
tavoda = GetDistanceToPoint(nInfo[id][nPlayerID], mInfo[kovid][mPos][0],mInfo[kovid][mPos][1],mInfo[kovid][mPos][2]);
if(IsPlayerInRangeOfPoint(nInfo[id][nPlayerID],7.0,mInfo[kovid][mPos][0],mInfo[kovid][mPos][1],mInfo[kovid][mPos][2]))
{
NPC_Pause(id);
}
if(tavoda <= (tavkettokozott / 2.0))
{
if(!nInfo[id][nBemondta])
{
nInfo[id][nBemondta] = true;
Bemond(id,KOVETKEZO);
}
}
if(NPC_VanElotteValaki(id))
{
new kiaz = NPC_KiVanElotte(id);
if(IsPlayerNPC(kiaz))
{
if(nInfo[id][nUjraMegallhat]< 1)
{
if(nInfo[NPC_ID[kiaz]][nAll])
{
SCM(nInfo[id][nPlayerID],-1,NPC_AKCIO_PAUSE);
nInfo[id][nAll] = true;
nInfo[id][nAllasOka] = STOPPED;
} else {
new Float:enezes,Float:onezes;
GetPlayerFacingAngle(nInfo[id][nPlayerID],enezes);
GetPlayerFacingAngle(kiaz,onezes);
if( (enezes -90) < onezes && onezes < (enezes +90) )
{
SCM(nInfo[id][nPlayerID],-1,NPC_AKCIO_PAUSE);
nInfo[id][nAll] = true;
nInfo[id][nAllasOka] = STOPPED;
}
}
}
} else {
SCM(nInfo[id][nPlayerID],-1,NPC_AKCIO_PAUSE);
nInfo[id][nAll] = true;
nInfo[id][nAllasOka] = STOPPED;
}
}
return 1;
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
public MPTimer()
{
new h,mi,s;
gettime(h,mi,s);
for(new i = 0; i<MAX_JARAT;i++)
{
new jarmuvek[MAX_NPC],jsz=0;
for(new x = 0; x<MAX_NPC;x++)
{
if(nInfo
- [nVan] && nInfo
- [nJaratID] == i)
{
jarmuvek[jsz] = x;
jsz++;
}
}
if(jInfo[jKozlInterVallum][0] > h || jInfo[jKozlInterVallum][1] <= h)
{
for(new x = 0; x<jsz;x++)
{
if(jInfo[jKozlInterVallum][0] > jInfo[jKozlInterVallum][1])
{
if(jInfo[jKozlInterVallum][1] <= h && h < jInfo[jKozlInterVallum][0])
{
if(nInfo[jarmuvek- ][nMenetAllapot] > 0 && nInfo[jarmuvek
- ][nMenetAllapot] < 3)
{
nInfo[jarmuvek
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[jarmuvek- ][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem, mert a járata csak %d-től %d-ig közlekedik(éjszakai)\",n,jInfo[jKozlInterVallum][0],jInfo[jKozlInterVallum][1]);
}
}
}else {
if(nInfo[jarmuvek- ][nMenetAllapot] > 0 && nInfo[jarmuvek
- ][nMenetAllapot] < 3)
{
nInfo[jarmuvek
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[jarmuvek- ][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem, mert a járata csak %d-től %d-ig közlekedik\",n,jInfo[jKozlInterVallum][0],jInfo[jKozlInterVallum][1]);
}
}
}
}
}
for(new id = 0; id<MAX_MEGALLO;id++)
{
if(mInfo[id][mVan])
{
new mtext[1024];
new jaratoktext[128]=\"Nincs\";
new bool:elso1=true;
new ejt[256]=\"\";
for(new i = 0; i<MAX_JARAT;i++)
{
for(new x = 0; x<jInfo[jMegallokSzama];x++)
{
if(!strcmp(NPC_Megallok- , mInfo[id][mAzonosito], true))
{
if(elso1)
{
format(jaratoktext,sizeof(jaratoktext),\"%s\",jInfo[jViszonylat]);
elso1 = false;
} else {
format(jaratoktext,sizeof(jaratoktext),\"%s, %s\",jaratoktext,jInfo[jViszonylat]);
}
}
}
new hanyadik = NINCS;
for(new y = 0; y<jInfo[jMegallokSzama];y++)
{
if(!strcmp(NPC_Megallok[y], mInfo[id][mAzonosito], true))
{
hanyadik = y;
}
}
new vegallomasid;
for(new a=0; a<jInfo[jMegallokSzama];a++)
{
if(!strcmp(NPC_Megallok[a], jInfo[jVegall], true))
{
vegallomasid = a;
}
}
if(hanyadik != NINCS)
{
for(new x = 0; x<MAX_NPC;x++)
{
if(nInfo
{
new erkido = 0;
new kovid = nInfo
if(kovid >= jInfo[nInfo- [nJaratID]][jMegallokSzama]) kovid = 0;
for(new k = kovid; k <= hanyadik; k++)
{
erkido += jInfo[jMenetIdo][k];
erkido += MEGALLO_IDO;
}
erkido += nInfo
new erktext[64];
if(erkido < 0)
format(erktext,sizeof(erktext),\"Késés: %d másodperc\",erkido * NINCS);
else
format(erktext,sizeof(erktext),\"%d másodperc\",erkido);
if(nInfo- [nJaratID] == i && nInfo
- [nHolTart] <= hanyadik)
{
if(nInfo- [nAll] && kovid != hanyadik) erkido -= MEGALLO_IDO;
if(nInfo- [nHolTart] <= vegallomasid && hanyadik < vegallomasid)
{
new vegallid= MelyikMegallo(jInfo[jVegall]);
format(ejt,sizeof(ejt),\"%s%s > %s | %s\\n\",ejt,jInfo[jViszonylat],mInfo[vegallid][mNev],erktext);
} else if(nInfo- [nHolTart] <= vegallomasid && hanyadik == vegallomasid)
{
new vegallid= MelyikMegallo(NPC_Megallok[0]);
format(ejt,sizeof(ejt),\"%s%s > %s | %s\\n\",ejt,jInfo[jViszonylat],mInfo[vegallid][mNev],erktext);
} else if(nInfo- [nHolTart] > vegallomasid && hanyadik > vegallomasid)
{
new vegallid= MelyikMegallo(NPC_Megallok[0]);
format(ejt,sizeof(ejt),\"%s%s > %s | %s\\n\",ejt,jInfo[jViszonylat],mInfo[vegallid][mNev],erktext);
}
}
if(nInfo- [nJaratID] == i && nInfo
- [nHolTart] > vegallomasid && hanyadik == 0)
{
new vegallid= MelyikMegallo(jInfo[jVegall]);
format(ejt,sizeof(ejt),\"%s%s > %s | ? másodperc\\n\",ejt,jInfo[jViszonylat],mInfo[vegallid][mNev]);
}
}
}
}
}
if(NPC_BusStopDebug) format(mtext,sizeof(mtext),\"[MEGÁLLÓ]\\n%s(%s)\\nJáratok: %s\\n============INDULÓ JÁRATOK============\\n%s\",mInfo[id][mNev],mInfo[id][mAzonosito],jaratoktext,ejt);
else format(mtext,sizeof(mtext),\"[MEGÁLLÓ]\\n%s\\nJáratok: %s\\n============INDULÓ JÁRATOK============\\n%s\",mInfo[id][mNev],jaratoktext,ejt);
UpdateDynamic3DTextLabelText(mInfo[id][mLabel], COLOR_MEGALLO, mtext);
}
}
for(new i = 0; i<MAX_NPC; i++)
{
if(nInfo[nVan])
{
nInfo[nErkIdo]--;
if(!nInfo[nAll]) nInfo[nMenetIdo]++;
}
}
for(new i = 0; i<MAX_PLAYERS;i++)
{
Streamer_Update(i);
new buszban = NINCS;
for(new id = 0; id<MAX_NPC; id++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
buszban = id;
if(BK_Showed != id)
{
if(BK_Showed != NINCS)
{
TextDrawHideForPlayer(i, BK_Keret);
TextDrawHideForPlayer(i, BK_Kijelzo);
TextDrawHideForPlayer(i, BK_Vegallomas[bK_Showed]);
TextDrawHideForPlayer(i, BK_Vonal);
TextDrawHideForPlayer(i, BK_Pont1);
TextDrawHideForPlayer(i, BK_Pont2);
TextDrawHideForPlayer(i, BK_Pont3);
TextDrawHideForPlayer(i, BK_Pont4);
TextDrawHideForPlayer(i, BK_KovMeg[bK_Showed]);
TextDrawHideForPlayer(i, BK_Megallo1[bK_Showed]);
TextDrawHideForPlayer(i, BK_Megallo2[bK_Showed]);
TextDrawHideForPlayer(i, BK_Megallo3[bK_Showed]);
}
TextDrawShowForPlayer(i, BK_Keret);
TextDrawShowForPlayer(i, BK_Kijelzo);
TextDrawShowForPlayer(i, BK_Vegallomas[id]);
TextDrawShowForPlayer(i, BK_Vonal);
TextDrawShowForPlayer(i, BK_Pont1);
TextDrawShowForPlayer(i, BK_Pont2);
TextDrawShowForPlayer(i, BK_Pont3);
TextDrawShowForPlayer(i, BK_Pont4);
TextDrawShowForPlayer(i, BK_KovMeg[id]);
TextDrawShowForPlayer(i, BK_Megallo1[id]);
TextDrawShowForPlayer(i, BK_Megallo2[id]);
TextDrawShowForPlayer(i, BK_Megallo3[id]);
BK_Showed = id;
}
}
}
if(buszban == NINCS)
{
if(BK_Showed != NINCS)
{
new id = BK_Showed;
TextDrawHideForPlayer(i, BK_Keret);
TextDrawHideForPlayer(i, BK_Kijelzo);
TextDrawHideForPlayer(i, BK_Vegallomas[id]);
TextDrawHideForPlayer(i, BK_Vonal);
TextDrawHideForPlayer(i, BK_Pont1);
TextDrawHideForPlayer(i, BK_Pont2);
TextDrawHideForPlayer(i, BK_Pont3);
TextDrawHideForPlayer(i, BK_Pont4);
TextDrawHideForPlayer(i, BK_KovMeg[id]);
TextDrawHideForPlayer(i, BK_Megallo1[id]);
TextDrawHideForPlayer(i, BK_Megallo2[id]);
TextDrawHideForPlayer(i, BK_Megallo3[id]);
}
BK_Showed = NINCS;
}
}
return 1;
}
public MonitorTimer(id)
{
new vegallid;
new string[128];
new vegallomasid;
new jid = nInfo[id][nJaratID];
new kovid = MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]]);
for(new a=0; a<jInfo[jid][jMegallokSzama];a++)
{
if(!strcmp(NPC_Megallok[jid][a], jInfo[jid][jVegall], true))
{
vegallomasid = a;
}
}
new m1=NINCS,m2=NINCS,m3=NINCS;
if(nInfo[id][nHolTart] < vegallomasid)
{
vegallid= MelyikMegallo(jInfo[jid][jVegall]);
if(nInfo[id][nHolTart]+1 <= vegallomasid) m1=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+1]); else m1=NINCS;
if(nInfo[id][nHolTart]+2 <= vegallomasid) m2=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+2]); else m2=NINCS;
if(nInfo[id][nHolTart]+3 <= vegallomasid) m3=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+3]); else m3=NINCS;
}
else
{
vegallid= MelyikMegallo(NPC_Megallok[jid][0]);
if(nInfo[id][nHolTart]+1 >= vegallomasid) m1=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+1]); else m1=NINCS;
if(nInfo[id][nHolTart]+2 >= vegallomasid) m2=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+2]); else m2=NINCS;
if(nInfo[id][nHolTart]+3 >= vegallomasid) m3=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]+3]); else m3=NINCS;
if(nInfo[id][nHolTart]+1 == jInfo[jid][jMegallokSzama]) m1=MelyikMegallo(NPC_Megallok[jid][0]);
if(nInfo[id][nHolTart]+2 == jInfo[jid][jMegallokSzama]) m2=MelyikMegallo(NPC_Megallok[jid][0]);
if(nInfo[id][nHolTart]+3 == jInfo[jid][jMegallokSzama]) m3=MelyikMegallo(NPC_Megallok[jid][0]);
}
format(string,sizeof(string),\"%s \", jInfo[jid][jViszonylat]);
if(nInfo[id][nBug][0] == 1)
SetDynamicObjectMaterialText(nInfo[id][nKijelzoJSZ],0,\" \",OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
else
SetDynamicObjectMaterialText(nInfo[id][nKijelzoJSZ],0,string,OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
if(nInfo[id][nMenetAllapot] == 0 || nInfo[id][nMenetAllapot] == 3)
format(string, sizeof(string), \"{FFFFFF}%s {0080FF}%s\", jInfo[jid][jViszonylat], jInfo[jid][jEgyebSzoveg]);
else
{
if(nInfo[id][nAll])
{
if(nInfo[id][nAllasOka] == MEGALLO)
format(string, sizeof(string), \"{FFFFFF}%s {0080FF}> {FFFFFF}%s\", jInfo[jid][jViszonylat], mInfo[vegallid][mNev]);
else
format(string, sizeof(string), \"{FFFFFF}%s {0080FF}> {FFFFFF}%s\\nKérlek ne akadályozd az NPC-t a közlekedésben!\", jInfo[jid][jViszonylat], mInfo[vegallid][mNev]);
}
else
format(string, sizeof(string), \"{FFFFFF}%s {0080FF}> {FFFFFF}%s\\n{0080FF}Következő megálló: {FFFFFF}%s\", jInfo[jid][jViszonylat], mInfo[vegallid][mNev], mInfo[kovid][mNev]);
}
UpdateDynamic3DTextLabelText(nInfo[id][nLabel], COLOR_WHITE, string);
format(nInfo[id][nKijelzoSzoveg],128,\"%s\", mInfo[vegallid][mNev]);
if(nInfo[id][nMonitorState] == 0)
{
format(string,sizeof(string),\"%s > %s\",jInfo[jid][jViszonylat],mInfo[vegallid][mNev]);
TextDrawSetString(BK_Vegallomas[id],string);
format(string,sizeof(string),\"%s\",mInfo[kovid][mNev]);
TextDrawSetString(BK_KovMeg[id],string);
if(m1!= NINCS)
{
format(string, sizeof(string), \"%s\", mInfo[m1][mNev]);
TextDrawSetString(BK_Megallo1[id],string);
} else TextDrawSetString(BK_Megallo1[id],\" \");
if(m2!= NINCS)
{
format(string, sizeof(string), \"%s\", mInfo[m2][mNev]);
TextDrawSetString(BK_Megallo2[id],string);
} else TextDrawSetString(BK_Megallo2[id],\" \");
if(m3!= NINCS)
{
format(string, sizeof(string), \"%s\", mInfo[m3][mNev]);
TextDrawSetString(BK_Megallo3[id],string);
} else TextDrawSetString(BK_Megallo3[id],\" \");
}
else if(nInfo[id][nMonitorState] == 1)
{
if(jInfo[jid][jEgyebSzovegVan])
format(string,sizeof(string),\"%s %s\",jInfo[jid][jViszonylat],jInfo[jid][jEgyebSzoveg]);
else
format(string,sizeof(string),\"%s > %s\",jInfo[jid][jViszonylat],mInfo[vegallid][mNev]);
TextDrawSetString(BK_Vegallomas[id],string);
if(nInfo[id][nHolTart] == vegallomasid || nInfo[id][nHolTart] == 0)
TextDrawSetString(BK_KovMeg[id],\"végállomás\");
else
TextDrawSetString(BK_KovMeg[id],mInfo[kovid][mNev]);
if(m1!= NINCS)
{
if(nInfo[id][nHolTart]+1 == vegallomasid || nInfo[id][nHolTart]+1 == jInfo[jid][jMegallokSzama]) TextDrawSetString(BK_Megallo1[id],\"végállomás\");
else
{
format(string,sizeof(string),\"%s\",mInfo[m1][mNev]);
TextDrawSetString(BK_Megallo1[id],string);
}
} else TextDrawSetString(BK_Megallo1[id],\" \");
if(m2!= NINCS)
{
if(nInfo[id][nHolTart]+2 == vegallomasid || nInfo[id][nHolTart]+2 == jInfo[jid][jMegallokSzama]) TextDrawSetString(BK_Megallo2[id],\"végállomás\");
else
{
format(string,sizeof(string),\"%s\",mInfo[m2][mNev]);
TextDrawSetString(BK_Megallo2[id],string);
}
} else TextDrawSetString(BK_Megallo2[id],\" \");
if(m3!= NINCS)
{
if(nInfo[id][nHolTart]+3 == vegallomasid || nInfo[id][nHolTart]+3 == jInfo[jid][jMegallokSzama]) TextDrawSetString(BK_Megallo3[id],\"végállomás\");
else
{
format(string,sizeof(string),\"%s\",mInfo[m3][mNev]);
TextDrawSetString(BK_Megallo3[id],string);
}
} else TextDrawSetString(BK_Megallo3[id],\" \");
}
else if(nInfo[id][nMonitorState] == 2)
{
format(string,sizeof(string),\"%s > %s\",jInfo[jid][jViszonylat],mInfo[vegallid][mNev]);
TextDrawSetString(BK_Vegallomas[id],string);
if(VanAtszallas(jid,kovid))
{
format(string,sizeof(string),\"%s\",Atszallasok(jid,kovid));
TextDrawSetString(BK_KovMeg[id],string);
}
else
{
format(string,sizeof(string),\"%s\",mInfo[kovid][mNev]);
TextDrawSetString(BK_KovMeg[id],string);
}
if(m1!= NINCS)
{
if(VanAtszallas(jid,m1))
{
format(string,sizeof(string),\"%s\",Atszallasok(jid,m1));
TextDrawSetString(BK_Megallo1[id],string);
}
else
{
format(string,sizeof(string),\"%s\",mInfo[m1][mNev]);
TextDrawSetString(BK_Megallo1[id],string);
}
} else TextDrawSetString(BK_Megallo1[id],\" \");
if(m2!= NINCS)
{
if(VanAtszallas(jid,m2))
{
format(string,sizeof(string),\"%s\",Atszallasok(jid,m2));
TextDrawSetString(BK_Megallo2[id],string);
}
else
{
format(string,sizeof(string),\"%s\",mInfo[m2][mNev]);
TextDrawSetString(BK_Megallo2[id],string);
}
} else TextDrawSetString(BK_Megallo2[id],\" \");
if(m3!= NINCS)
{
if(VanAtszallas(jid,m3))
{
format(string,sizeof(string),\"%s\",Atszallasok(jid,m3));
TextDrawSetString(BK_Megallo3[id],string);
}
else
{
format(string,sizeof(string),\"%s\",mInfo[m3][mNev]);
TextDrawSetString(BK_Megallo3[id],string);
}
} else TextDrawSetString(BK_Megallo3[id],\" \");
}
else if(nInfo[id][nMonitorState] == 3)
{
if(jInfo[jid][jEgyebSzovegVan])
format(string,sizeof(string),\"%s %s\",jInfo[jid][jViszonylat],jInfo[jid][jEgyebSzoveg]);
else
format(string,sizeof(string),\"%s > %s\",jInfo[jid][jViszonylat],mInfo[vegallid][mNev]);
TextDrawSetString(BK_Vegallomas[id],string);
format(string,sizeof(string),\"%s\",mInfo[kovid][mNev]);
TextDrawSetString(BK_KovMeg[id],string);
if(m1!= NINCS)
{
format(string,sizeof(string),\"%s\",mInfo[m1][mNev]);
TextDrawSetString(BK_Megallo1[id],string);
} else TextDrawSetString(BK_Megallo1[id],\" \");
if(m2!= NINCS)
{
format(string,sizeof(string),\"%s\",mInfo[m2][mNev]);
TextDrawSetString(BK_Megallo2[id],string);
} else TextDrawSetString(BK_Megallo2[id],\" \");
if(m3!= NINCS)
{
format(string,sizeof(string),\"%s\",mInfo[m3][mNev]);
TextDrawSetString(BK_Megallo3[id],string);
} else TextDrawSetString(BK_Megallo3[id],\" \");
}
nInfo[id][nMonitorState]++;
if(nInfo[id][nMonitorState] >=4)nInfo[id][nMonitorState] = 0;
return 1;
}
stock Atszallasok(jid,megalloid)
{
new h,mi,s;
gettime(h,mi,s);
new atszstr[32] = \"\";
new atsz=0;
new bool:volt[MAX_JARAT];
for(new i = 0; i<MAX_JARAT;i++)
{
if(i != jid)
{
for(new m = 0; m < jInfo[jMegallokSzama]; m++)
{
new megalloid2 = MelyikMegallo(NPC_Megallok[m]);
if(megalloid2 == megalloid || !strcmp(mInfo[megalloid][mNev], mInfo[megalloid2][mNev], true))
{
if(!volt)
{
if(jInfo[jKozlInterVallum][0] > jInfo[jKozlInterVallum][1])
{
if(jInfo[jKozlInterVallum][1] > h || h >= jInfo[jKozlInterVallum][0])
{
if(atsz <1) format(atszstr,32,\"Átsz: %s\",jInfo[jViszonylat]);
else format(atszstr,32,\"%s, %s\",atszstr, jInfo[jViszonylat]);
atsz++;
volt = true;
}
} else {
if(jInfo[jKozlInterVallum][0] <= h && jInfo[jKozlInterVallum][1] > h)
{
if(atsz <1) format(atszstr,32,\"Átsz: %s\",jInfo[jViszonylat]);
else format(atszstr,32,\"%s, %s\",atszstr, jInfo[jViszonylat]);
atsz++;
volt = true;
}
}
}
}
}
}
}
return atszstr;
}
forward VanAtszallas(jid,megalloid);
public VanAtszallas(jid,megalloid)
{
new h,mi,s;
gettime(h,mi,s);
new atsz=0;
new bool:volt[MAX_JARAT];
for(new i = 0; i<MAX_JARAT;i++)
{
if(i != jid)
{
for(new m = 0; m < jInfo[jMegallokSzama]; m++)
{
new megalloid2 = MelyikMegallo(NPC_Megallok[m]);
if(megalloid2 == megalloid || !strcmp(mInfo[megalloid][mNev], mInfo[megalloid2][mNev], true))
{
if(!volt)
{
if(jInfo[jKozlInterVallum][0] > jInfo[jKozlInterVallum][1])
{
if(jInfo[jKozlInterVallum][1] > h || h >= jInfo[jKozlInterVallum][0])
{
atsz++;
volt = true;
}
} else {
if(jInfo[jKozlInterVallum][0] <= h && jInfo[jKozlInterVallum][1] > h)
{
atsz++;
volt = true;
}
}
}
}
}
}
}
if(atsz>0) return true;
return false;
}
public JaratKovCheck(jid)
{
new h,mi,s,y,m,d;
getdate(y,m,d);
gettime(h,mi,s);
new van = false;
for(new i = 0; i<MAX_NPC;i++)
{
if(nInfo[nJaratID] == jid)
{
if(nInfo[nAll] && nInfo[nHolTart] == 0)
{
if(nInfo[nMenetAllapot] == 3)
{
new str[64];format(str,sizeof(str),\"9%d2\",jid);
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem\",n);
nInfo[nJaratID] = strval(str);
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",i);
} else {
van = true;
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",i);
for(new x = 0; x<MAX_NPC;x++)
{
if(nInfo- [nJaratID] == jid && x != i)
{
if(nInfo- [nAll] && nInfo
- [nHolTart] == 0 && nInfo
- [nMenetAllapot] != 0)
{
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo- [nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem, mert fölöslegessé vált\",n);
new str[64];
if(jid >=900)
{
if((jid-901) % 10 == 0 || jid-901 == 0)
format(str,sizeof(str),\"%d\",jid+1);
else format(str,sizeof(str),\"%d\",jid);
}
else format(str,sizeof(str),\"9%d2\",jid);
nInfo- [nJaratID] = strval(str);
nInfo
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",x);
}
}
}
return 1;
}
}
}
}
if(!van)
{
if(jInfo[jid][jKozlInterVallum][0] > jInfo[jid][jKozlInterVallum][1])
{
if(jInfo[jid][jKozlInterVallum][1] > h || h >= jInfo[jid][jKozlInterVallum][0])
{
NPCBetoltes(jid);
printf(\"[NPC] %s járatra betöltöttem egy NPC-t mert %d-től %d-ig közlekedik\",jInfo[jid][jViszonylat],jInfo[jid][jKozlInterVallum][0],jInfo[jid][jKozlInterVallum][1]);
}
} else {
if(jInfo[jid][jKozlInterVallum][0] <= h && jInfo[jid][jKozlInterVallum][1] > h)
{
NPCBetoltes(jid);
printf(\"[NPC] %s járatra betöltöttem egy NPC-t mert %d-től %d-ig közlekedik\",jInfo[jid][jViszonylat],jInfo[jid][jKozlInterVallum][0],jInfo[jid][jKozlInterVallum][1]);
}
}
}
return 1;
}
public KijelzoLapozas()
{
for(new id=0; id<MAX_NPC; id++)
{
if(nInfo[id][nVan])
{
new szoveg[512];
new jid=nInfo[id][nJaratID];
if(nInfo[id][nBug][1] == 1)
{
SetDynamicObjectMaterialText(nInfo[id][nKijelzo],0,\" \",OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
}else {
if(nInfo[id][nBug][2] == 1)
{
if(jInfo[jid][jEgyebSzovegVan])
{
if(nInfo[id][nMenetAllapot] == 0 || nInfo[id][nMenetAllapot] == 3)
format(szoveg,sizeof(szoveg),\" %s\",jInfo[jid][jEgyebSzoveg]);
else
format(szoveg,sizeof(szoveg),\" %s > %s\",jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg]);
} else {
format(szoveg,sizeof(szoveg),\" %s\",nInfo[id][nKijelzoSzoveg]);
}
}else{
if(jInfo[jid][jEgyebSzovegVan])
{
if(nInfo[id][nMenetAllapot] == 0 || nInfo[id][nMenetAllapot] == 3)
format(szoveg,sizeof(szoveg),\" %s %s %s %s %s %s %s %s %s %s\",jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg],jInfo[jid][jEgyebSzoveg]);
else
format(szoveg,sizeof(szoveg),\" %s > %s %s > %s %s > %s %s > %s %s > %s\",jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg],jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg],jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg],jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg],jInfo[jid][jEgyebSzoveg],nInfo[id][nKijelzoSzoveg]);
} else {
format(szoveg,sizeof(szoveg),\" %s %s %s %s %s %s %s %s %s %s\",nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg],nInfo[id][nKijelzoSzoveg]);
}
}
new hossza=strlen(szoveg),ujszov[128];
if(hossza >= 15)
{
if(nInfo[id][nBug][2] == 1)
{
strmid(ujszov,szoveg,0,15-strlen(jInfo[jid][jViszonylat]));
SetDynamicObjectMaterialText(nInfo[id][nKijelzo],0,ujszov,OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
}
else
{
if(nInfo[id][nKijelzoState] >= (hossza-15-strlen(jInfo[jid][jViszonylat])) || nInfo[id][nKijelzoState] < 0)
{
nInfo[id][nKijelzoState] = 0;
}
strmid(ujszov,szoveg,nInfo[id][nKijelzoState],(nInfo[id][nKijelzoState] + 16-strlen(jInfo[jid][jViszonylat])));
SetDynamicObjectMaterialText(nInfo[id][nKijelzo],0,ujszov,OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
nInfo[id][nKijelzoState]++;
}
} else {
SetDynamicObjectMaterialText(nInfo[id][nKijelzo],0,nInfo[id][nKijelzoSzoveg],OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
}
}
}
}
return 1;
}
public NPC_Start(id)
{
new jid = nInfo[id][nJaratID];
SCM(nInfo[id][nPlayerID],NINCS,jInfo[jid][jFileName]);
nInfo[id][nHolTart] = 1;
nInfo[id][nAll] = false;
if(nInfo[id][nMenetAllapot] != 0 && nInfo[id][nMenetAllapot] != 3)
{
nInfo[id][nMenetAllapot] = 1;
nInfo[id][nBug][0] = random(10);
nInfo[id][nBug][1] = random(10);
nInfo[id][nBug][2] = random(10);
}
SCM(nInfo[id][nPlayerID],NINCS,NPC_AKCIO_START);
nInfo[id][nMenetIdo] = 0;
nInfo[id][nErkIdo] = 0;
return 1;
}
public NPC_Pause(id)
{
new jid = nInfo[id][nJaratID];
nInfo[id][nAll] = true;
nInfo[id][nAllasOka] = MEGALLO;
SCM(nInfo[id][nPlayerID],NINCS,NPC_AKCIO_PAUSE);
if(jInfo[jid][jMenetIdo][nInfo[id][nHolTart]] > nInfo[id][nMenetIdo] || jInfo[jid][jMenetIdo][nInfo[id][nHolTart]] < 3 )
{
jInfo[jid][jMenetIdo][nInfo[id][nHolTart]] = nInfo[id][nMenetIdo];
new file[64];
format(file,sizeof(file),\"/LSTKRv2/Jaratok/%d.ini\",jid);
new temp[128];
format(temp,sizeof(temp),\"MenetIdo_%d\",nInfo[id][nHolTart]);
dini_IntSet(file,temp,jInfo[jid][jMenetIdo][nInfo[id][nHolTart]]);
}
nInfo[id][nMenetIdo] = MEGALLO_IDO;
new bool:tovabbmehet=true;
new vegallomasid;
for(new i=0; i<jInfo[jid][jMegallokSzama];i++)
{
if(!strcmp(NPC_Megallok[jid], jInfo[jid][jVegall], true))
{
vegallomasid = i;
}
}
if(nInfo[id][nHolTart] < vegallomasid)
{
if(nInfo[id][nMenetAllapot] == 2) nInfo[id][nMenetAllapot] = 1;
}
else if(nInfo[id][nHolTart] >= vegallomasid)
{
if(nInfo[id][nMenetAllapot] == 3 && (jid / 900) >= 1 && jid % 2 == 0)
{
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[id][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s beért a garázsba, kickeltem!\",n);
DestroyDynamic3DTextLabel(nInfo[id][nLabel]);
KillTimer(nInfo[id][nCheckTimer]);
KillTimer(nInfo[id][nMonitorTimer]);
SetDynamicObjectMaterialText(nInfo[id][nKijelzo],0,\"Garázsmenet\",OBJECT_MATERIAL_SIZE_256x128,\"Arial\",24,1,0xFFFFFFFF,0,1);
Kick(nInfo[id][nPlayerID]);
nInfo[id][nVan] = false;
}
else if(nInfo[id][nMenetAllapot] == 3 && (jid / 900) >= 1 && jid % 2 != 0)
{
new str[64];format(str,sizeof(str),\"%d\",jid+1);
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[id][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem\",n);
nInfo[id][nJaratID] = strval(str);
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",id);
}
else if(nInfo[id][nMenetAllapot] == 0 && (jid / 9) >= 1)
{
new a[32], b[32];
format(a,sizeof(a),\"%d\",nInfo[id][nJaratID]);
strmid(b,a,1,strlen(a)-1);
nInfo[id][nJaratID] = strval(b);
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[id][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t elindítottam a járatán, kiért a garázsból\",n);
nInfo[id][nMenetAllapot] = 1;
tovabbmehet = false;
nInfo[id][nHolTart] = 0;
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",id);
}
if(nInfo[id][nMenetAllapot] == 1) nInfo[id][nMenetAllapot] = 2;
}
if(nInfo[id][nHolTart] == 0)
{
if((nInfo[id][nMenetAllapot] == 3 || nInfo[id][nMenetAllapot] == 0) && nInfo[id][nJaratID] >= 900) tovabbmehet = false;
if(jInfo[nInfo[id][nJaratID]][jKovetesiPerc] > 0)
{
tovabbmehet = false;
}
if(nInfo[id][nMenetAllapot] == 3)
{
new str[64];format(str,sizeof(str),\"9%d2\",jid);
new n[MAX_PLAYER_NAME];
GetPlayerName(nInfo[id][nPlayerID],n,sizeof(n));
printf(\"[NPC] %s-t garázsba küldtem\",n);
nInfo[id][nJaratID] = strval(str);
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",id);
}
}
if(tovabbmehet && nInfo[id][nHolTart] != 0) SetTimerEx(\"NPC_Resume\",tsecond(MEGALLO_IDO),false,\"d\",id);
Bemond(id,MEGALLONEV);
nInfo[id][nBemondta]=true;
return 1;
}
public NPC_Resume(id)
{
if(nInfo[id][nMenetAllapot] == 3 && nInfo[id][nJaratID] >= 900) return 1;
new jid = nInfo[id][nJaratID];
nInfo[id][nAll] = false;
nInfo[id][nBemondta] = false;
new vegallomasid;
for(new i=0; i<jInfo[jid][jMegallokSzama];i++)
{
if(!strcmp(NPC_Megallok[jid], jInfo[jid][jVegall], true))
{
vegallomasid = i;
}
}
if(nInfo[id][nHolTart] == 0 || nInfo[id][nHolTart] == vegallomasid)
{
SetTimerEx(\"Bemond\",tsecond(3),false,\"dd\",id,UDV);
nInfo[id][nBemondta] = true;
}
nInfo[id][nHolTart]++;
if(nInfo[id][nHolTart] == 0 || nInfo[id][nHolTart] == vegallomasid)
{
SetTimerEx(\"Bemond\",tsecond(1),false,\"dd\",id,KOVETKEZO);
nInfo[id][nBemondta] = true;
}
if(nInfo[id][nHolTart] >= jInfo[jid][jMegallokSzama]) nInfo[id][nHolTart] = 0;
nInfo[id][nErkIdo] = jInfo[jid][jMenetIdo][nInfo[id][nHolTart]];
SCM(nInfo[id][nPlayerID],NINCS,NPC_AKCIO_RESUME);
return 1;
}
public Bemond(id,tipus)
{
#if defined BEMONDAS
new jid = nInfo[id][nJaratID],vegallomasid,kovid=MelyikMegallo(NPC_Megallok[jid][nInfo[id][nHolTart]]);
for(new i=0; i<jInfo[jid][jMegallokSzama];i++)
{
if(!strcmp(NPC_Megallok[jid], jInfo[jid][jVegall], true))
{
vegallomasid = i;
}
}
if(tipus==MEGALLONEV)
{
new str[300];
format(str,sizeof(str),\"%s%s\",HANGOK_ELERHETOSEGE,mInfo[kovid][mHang]);
if(nInfo[id][nHolTart] == vegallomasid || nInfo[id][nHolTart] == 0)
{
SetTimerEx(\"Bemond\",tsecond(mInfo[kovid][mHangTime]) + 200,false,\"dd\",id,VEGALLOMAS);
}
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
PlayAudioStreamForPlayer(i,str);
}
}
return 1;
}
else if(tipus==KOVETKEZO)
{
new str[300];
format(str,sizeof(str),\"%skov.mp3\",HANGOK_ELERHETOSEGE);
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
PlayAudioStreamForPlayer(i,str);
}
}
SetTimerEx(\"Bemond\",tsecond(3),false,\"dd\",id,MEGALLONEV);
return 1;
}
else if(tipus==UDV)
{
new str[300];
format(str,sizeof(str),\"%sudv.mp3\",HANGOK_ELERHETOSEGE);
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
PlayAudioStreamForPlayer(i,str);
}
}
SetTimerEx(\"Bemond\",tsecond(3),false,\"dd\",id,KOVETKEZO);
return 1;
}
else if(tipus==VEGALLOMAS)
{
new str[300];
if(nInfo[id][nAll])
{
format(str,sizeof(str),\"%svegallviszlat.mp3\",HANGOK_ELERHETOSEGE);
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
PlayAudioStreamForPlayer(i,str);
}
}
} else {
format(str,sizeof(str),\"%svegall.mp3\",HANGOK_ELERHETOSEGE);
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i,nInfo[id][nJarmu]))
{
PlayAudioStreamForPlayer(i,str);
}
}
}
return 1;
}
#endif
return 1;
}
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid))
{
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid,n,sizeof(n));
for(new i = 0; i<MAX_NPC;i++)
{
new ji = nInfo[nJaratID];
if(nInfo[nVan])
{
if(!strcmp(nInfo[nPlayerName], n, true))
{
nInfo[nPlayerID] = playerid;
printf(\"[NPC] %s csatlakozott | Viszonylat: %s\",n,jInfo[ji][jViszonylat]);
SpawnPlayer(playerid);
NPC_ID[playerid] = i;
}
}
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))
{
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid,n,sizeof(n));
for(new i = 0; i<MAX_NPC;i++)
{
new ji = nInfo[nJaratID];
if(nInfo[nVan])
{
if(!strcmp(nInfo[nPlayerName], n, true))
{
PutPlayerInVehicle(playerid,nInfo[nJarmu],0);
SCM(playerid,NINCS,jInfo[ji][jFileName]);
printf(\"[NPC] %s spawnolt | Viszonylat: %s\",n,jInfo[ji][jViszonylat]);
nInfo[nCheckTimer] = SetTimerEx(\"NPCCheck\",200,true,\"d\",i);
//nInfo[nMonitorTimer] = SetTimerEx(\"MonitorTimer\",2000,true,\"d\",i);
nInfo[nMenetAllapot] = 0;
new str[64];format(str,sizeof(str),\"9%d1\",ji);
nInfo[nJaratID] = strval(str);
SetTimerEx(\"NPC_Start\",tsecond(3),false,\"d\",i);
}
}
}
}
return 1;
}
public Float:GetDistanceToPoint(playerid, Float:x1, Float:y1, Float:z1)
{
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(playerid,x2,y2,z2);
return GetDistanceBetweenPoints(x1,y1,z1,x2,y2,z2);
}
public Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
return floatadd(floatadd(floatsqroot(floatpower(floatsub(x1,x2),2)),floatsqroot(floatpower(floatsub(y1,y2),2))),floatsqroot(floatpower(floatsub(z1,z2),2)));
}
stock MegalloBetoltes()
{
new h,mi,s,y,m,d;
for(new i = 0; i<MAX_MEGALLO;i++)
{
new file[64];
format(file,sizeof(file),\"/LSTKRv2/Megallok/%d.ini\",i);
if(dini_Exists(file))
{
mInfo[mVan] = true;
format(mInfo[mAzonosito],128,\"%s\",dini_Get(file,\"Azonosito\"));
format(mInfo[mHang],32,\"%s\",dini_Get(file,\"Hang\"));
format(mInfo[mNev],256,\"%s\",dini_Get(file,\"Nev\"));
mInfo[mHangTime] = dini_Int(file,\"HangTime\");
mInfo[mPos][0] = dini_Float(file,\"PosX\");
mInfo[mPos][1] = dini_Float(file,\"PosY\");
mInfo[mPos][2] = dini_Float(file,\"PosZ\");
new mtext[256]; format(mtext,sizeof(mtext),\"MEGÁLLÓ\\n%s\",mInfo[mNev]);
mInfo[mLabel] = CreateDynamic3DTextLabel(mtext, COLOR_MEGALLO, mInfo[mPos][0], mInfo[mPos][1], mInfo[mPos][2] + 7.5, 30.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID);
getdate(y,m,d);
gettime(h,mi,s);
printf(\"[%s %d.%02d.%02d. %02d:%02d]: Megálló %s[%s] betöltve\",SZERVERNEVE2,y,m,d,h,mi,mInfo[mNev],mInfo[mAzonosito]);
}
}
return 1;
}
stock MegalloMentes()
{
for(new id = 0; id<MAX_MEGALLO;id++)
{
if(mInfo[id][mVan])
{
new file[64];
format(file,sizeof(file),\"/LSTKRv2/Megallok/%d.ini\",id);
if(!dini_Exists(file))
{
dini_Create(file);
}
dini_Set(file,\"Azonosito\",mInfo[id][mAzonosito]);
dini_Set(file,\"Nev\",mInfo[id][mNev]);
dini_Set(file,\"Hang\",mInfo[id][mHang]);
dini_FloatSet(file,\"PosX\",mInfo[id][mPos][0]);
dini_FloatSet(file,\"PosY\",mInfo[id][mPos][1]);
dini_FloatSet(file,\"PosZ\",mInfo[id][mPos][2]);
dini_IntSet(file,\"HangTime\"