Problem(error/warning): Pa kad kreiram PD bude mi onaj default int iz gta sa, kako da ga promenim
Dio skripte: [ pawn ]//[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
Odakle poceti, pre svega, uzmes koordinate interijera policije, tacnije ulaza.
Odes ispred PD-a, kucas /save PolicijaIntUlaz
Zatim udjes u map editor, otvoris svoju mapu interijera i kliknes dugmence "Test"(tako nesto), zatim nadjes ulaz i kucas /save PolicijaIntIzlaz
Otvoris Documents->Gta San Andreas User Files->SAMP->savedpositions.txt
Tu bi trebalo videti nesto ovako :
[pawn]
AddPlayerClass(294,-1697.8481,328.0593,1443.5740,5.1780,0,0,0,0,0,0); // PolicijaIntUlaz //Prve 3 koordinate(-1697.8481 prva) su ti X,Y i Z, znaci pozicija gde si kuca /save
AddPlayerClass(294,-1698.5164,363.0300,1438.5709,18.6723,0,0,0,0,0,0); // PolicijaIntIzlaz //Ovo su neke moje koordinate za nesto drugo, primer samo :)
[/pawn]
Sada si spreman da udjes u skriptu, pre svega, valjalo bi odraditi 3D label na PolicijaIntUlaz, ono tipa klikni "nesto" da bi usao
[pawn]Create3DTextLabel("[POLICIJA]\nKoristi tipku F", BOJA_LABELA, PDIntUlazX, PDIntUlazY, PDIntUlazZ, 30.0, 0); //Koordinate uzmes i prve :)
CreatePickup(19132, 1, PDIntUlazX, PDIntUlazY, PDIntUlazZ, 0); //Kreirajanje pickup-a iz gasa[/pawn]
Sada kada smo odradili to, mozemo preci pod callback OnPlayerKeyStateChange
Unutar njega, posto ne radis mod od 0, potrazi proveru
[pawn]if(newkeys & KEY_SECONDARY_ATTACK)[/pawn]
Kada si je pronasao, unutar nje stavljas jos jednu proveru da li je igrac na toj i toj lokaciji, ako jeste, teleport ga u interijer
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntUlazX, PDIntUlazY, PDIntUlazZ)) //Ovo je ukoliko je igrac na toj lokaciji i pritisne tipku F
{
SetPlayerPos(playerid, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ); //Teleporta ga u interijer
GameTextForPlayer(playerid, "~r~Policija", 5000, 3); //Prikaz na ekranu iz gasa
return 1;
} [/pawn]
Sada cemo ispod toga dodati jos jednu proveru, ukoliko se igrac nalazi unutar interijera, na vratima, i pritom klikne F da bi izasao napolje
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ)) //Ukoliko se nalazi u interijeru na vratima
{
SetPlayerPos(playerid, PDIntUlazX, PDIntUlazY, PDIntUlazZ); //Vraca ga ispred PD-a
GameTextForPlayer(playerid, "~r~Los Santos", 5000, 3); //Text igracu iz gasa
return 1;
}[/pawn]
Potrudio sam se da ti pojasnim sto vise mogu, naravno, moja preporuka je da napravis neki timer kada igrac ulazi i izlazi iz objekta, cisto da bi mu mapa lepo ucitala, tako da bi to izgledalo nesto ovako :
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntUlazX, PDIntUlazY, PDIntUlazZ)) //Ovo je ukoliko je igrac na toj lokaciji i pritisne tipku F
{
SetPlayerPos(playerid, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ); //Teleporta ga u interijer
GameTextForPlayer(playerid, "~r~Policija", 5000, 3); //Prikaz na ekranu iz gasa
defer NekiTamoTimer(playerid); //Pokrenemo timer
TogglePlayerControllable(playerid,0); //Ovo ga zaledi
return 1;
} [/pawn]
[pawn]timer NekiTamoTimer[4000](playerid)
{
TogglePlayerControllable(playerid,1); //Odledi ga nakon 4 sekunde
}
[/pawn]
To bi bilo to, ti mozes praviti varijacije ovoga, menjati kako hoces, ali ovo ti je po meni najprostije moguce :/
Citat: V01D poslato Februar 20, 2020, 22:40:18 POSLE PODNE
Odakle poceti, pre svega, uzmes koordinate interijera policije, tacnije ulaza.
Odes ispred PD-a, kucas /save PolicijaIntUlaz
Zatim udjes u map editor, otvoris svoju mapu interijera i kliknes dugmence "Test"(tako nesto), zatim nadjes ulaz i kucas /save PolicijaIntIzlaz
Otvoris Documents->Gta San Andreas User Files->SAMP->savedpositions.txt
Tu bi trebalo videti nesto ovako :
[pawn]
AddPlayerClass(294,-1697.8481,328.0593,1443.5740,5.1780,0,0,0,0,0,0); // PolicijaIntUlaz //Prve 3 koordinate(-1697.8481 prva) su ti X,Y i Z, znaci pozicija gde si kuca /save
AddPlayerClass(294,-1698.5164,363.0300,1438.5709,18.6723,0,0,0,0,0,0); // PolicijaIntIzlaz //Ovo su neke moje koordinate za nesto drugo, primer samo :)
[/pawn]
Sada si spreman da udjes u skriptu, pre svega, valjalo bi odraditi 3D label na PolicijaIntUlaz, ono tipa klikni "nesto" da bi usao
[pawn]Create3DTextLabel("[POLICIJA]\nKoristi tipku F", BOJA_LABELA, PDIntUlazX, PDIntUlazY, PDIntUlazZ, 30.0, 0); //Koordinate uzmes i prve :)
CreatePickup(19132, 1, PDIntUlazX, PDIntUlazY, PDIntUlazZ, 0); //Kreirajanje pickup-a iz gasa[/pawn]
Sada kada smo odradili to, mozemo preci pod callback OnPlayerKeyStateChange
Unutar njega, posto ne radis mod od 0, potrazi proveru
[pawn]if(newkeys & KEY_SECONDARY_ATTACK)[/pawn]
Kada si je pronasao, unutar nje stavljas jos jednu proveru da li je igrac na toj i toj lokaciji, ako jeste, teleport ga u interijer
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntUlazX, PDIntUlazY, PDIntUlazZ)) //Ovo je ukoliko je igrac na toj lokaciji i pritisne tipku F
{
SetPlayerPos(playerid, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ); //Teleporta ga u interijer
GameTextForPlayer(playerid, "~r~Policija", 5000, 3); //Prikaz na ekranu iz gasa
return 1;
} [/pawn]
Sada cemo ispod toga dodati jos jednu proveru, ukoliko se igrac nalazi unutar interijera, na vratima, i pritom klikne F da bi izasao napolje
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ)) //Ukoliko se nalazi u interijeru na vratima
{
SetPlayerPos(playerid, PDIntUlazX, PDIntUlazY, PDIntUlazZ); //Vraca ga ispred PD-a
GameTextForPlayer(playerid, "~r~Los Santos", 5000, 3); //Text igracu iz gasa
return 1;
}[/pawn]
Potrudio sam se da ti pojasnim sto vise mogu, naravno, moja preporuka je da napravis neki timer kada igrac ulazi i izlazi iz objekta, cisto da bi mu mapa lepo ucitala, tako da bi to izgledalo nesto ovako :
[pawn]if(IsPlayerInRangeOfPoint(playerid, 2.0, PDIntUlazX, PDIntUlazY, PDIntUlazZ)) //Ovo je ukoliko je igrac na toj lokaciji i pritisne tipku F
{
SetPlayerPos(playerid, PDIntIzlazX, PDIntIzlazY, PDIntIazlazZ); //Teleporta ga u interijer
GameTextForPlayer(playerid, "~r~Policija", 5000, 3); //Prikaz na ekranu iz gasa
defer NekiTamoTimer(playerid); //Pokrenemo timer
TogglePlayerControllable(playerid,0); //Ovo ga zaledi
return 1;
} [/pawn]
[pawn]timer NekiTamoTimer[4000](playerid)
{
TogglePlayerControllable(playerid,1); //Odledi ga nakon 4 sekunde
}
[/pawn]
To bi bilo to, ti mozes praviti varijacije ovoga, menjati kako hoces, ali ovo ti je po meni najprostije moguce :/
Ja sam tu mapu uzeo sa neta ne znam gde se nalazi taj enterijer
Pa kazem ti, skini map editor, ubaci mapu, kliknes "Show Code"(tako nesto), zatim iskopiras koordinate jednog objekta, x,y i z, zatim imas gornji desni cosak jedno prazno polje, tu paste koordinate i kliknes "Point at these coordinates"(tako nesto), kada se nadjes unutar mape kliknes test, onda stani na ulaz i kucaj /save
Odradi si komandu tipa ovako
[pawn]CMD:gotopos(playerid, params[])
{
new Float:P[3];
if(sscanf(params, "fff", P[0], P[1], P[2]));
SetPlayerPos(playerid, P[0], P[1], P[2]);
return 1;
}[/pawn]
Koristi se /gotopos x y z
I sad bezveze npr neka je linija objekta CreateDynamicObject(968,1544.700317,-1630.735717,13.096980,-1.000000,-91.000000,269.972869)
/gotopos 1544.700317 -1630.735717,13.096980 -1.000000
I kad te porta u int covjek prije mene je napisao kucas /save i spremit će ti koordinate u San Andreas User Files, i isto tako kao i ovdje 2. 3. 4. brojevi su koordinate x y z AddPlayerClass(265,2267.1084 650.9833 5.1506,86.5670,0,0,0,0,0,0)
Ovom metodom je moguce da se zbagas, propadnes i jos sto nekih kuraca :)
Void lepo si to ti njemu objasnio al to je tlk lako... neg vrv on nema pojma da uradi dzabe objasnjavati :) :) :) :)
Citat: #luyn poslato Februar 23, 2020, 13:42:45 POSLE PODNE
Void lepo si to ti njemu objasnio al to je tlk lako... neg vrv on nema pojma da uradi dzabe objasnjavati :) :) :) :)
Skontao sam sve :P