Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Martyn poslato Februar 20, 2020, 22:12:48 POSLE PODNE

Naslov: Kako da promenim interior policije
Poruka od: Martyn poslato Februar 20, 2020, 22:12:48 POSLE PODNE
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): //
Naslov: Odg: Kako da promenim interior policije
Poruka od: 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 :/
Naslov: Odg: Kako da promenim interior policije
Poruka od: Martyn poslato Februar 21, 2020, 02:44:57 PRE PODNE
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
Naslov: Odg: Kako da promenim interior policije
Poruka od: V01D poslato Februar 21, 2020, 07:53:23 PRE PODNE
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
Naslov: Odg: Kako da promenim interior policije
Poruka od: Ejs poslato Februar 23, 2020, 05:07:39 PRE PODNE
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)
Naslov: Odg: Kako da promenim interior policije
Poruka od: V01D poslato Februar 23, 2020, 08:44:10 PRE PODNE
Ovom metodom je moguce da se zbagas, propadnes i jos sto nekih kuraca :)
Naslov: Odg: Kako da promenim interior policije
Poruka od: #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 :) :) :) :)
Naslov: Odg: Kako da promenim interior policije
Poruka od: Martyn poslato Februar 24, 2020, 03:49:56 PRE PODNE
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