Kako da promenim interior policije


Započeo Martyn, Februar 20, 2020, 22:12:48 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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 :
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 :)


Sada si spreman da udjes u skriptu, pre svega, valjalo bi odraditi 3D label na PolicijaIntUlaz, ono tipa klikni "nesto" da bi usao

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


Sada kada smo odradili to, mozemo preci pod callback OnPlayerKeyStateChange

Unutar njega, posto ne radis mod od 0, potrazi proveru

if(newkeys & KEY_SECONDARY_ATTACK)


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

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;
        }


Sada cemo ispod toga dodati jos jednu proveru, ukoliko se igrac nalazi unutar interijera, na vratima, i pritom klikne F da bi izasao napolje

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;
        }


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 :

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;
        }


timer NekiTamoTimer[4000](playerid)
{
    TogglePlayerControllable(playerid,1); //Odledi ga nakon 4 sekunde
}


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 :
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 :)


Sada si spreman da udjes u skriptu, pre svega, valjalo bi odraditi 3D label na PolicijaIntUlaz, ono tipa klikni "nesto" da bi usao

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


Sada kada smo odradili to, mozemo preci pod callback OnPlayerKeyStateChange

Unutar njega, posto ne radis mod od 0, potrazi proveru

if(newkeys & KEY_SECONDARY_ATTACK)


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

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;
        }


Sada cemo ispod toga dodati jos jednu proveru, ukoliko se igrac nalazi unutar interijera, na vratima, i pritom klikne F da bi izasao napolje

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;
        }


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 :

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;
        }


timer NekiTamoTimer[4000](playerid)
{
    TogglePlayerControllable(playerid,1); //Odledi ga nakon 4 sekunde
}


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

Ejs

*

Odradi si komandu tipa ovako

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;
}

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)
Poslednja Izmena: Februar 23, 2020, 05:10:20 PRE PODNE od Ejs

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