Peršokti į turinį

[PAMOKA] Įėjimai/Išėjimai su viena eilute !


K1NGAS

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3092 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki. Kadangi neturiu ką veikti, todėl pamokysiu, kaip sukurti įėjimus/išėjimus su viena eilute.
Viršuje gamemodo rašome

#define MAX_ENTRANCES 15

 
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

 
 
Šiek tiek žemiau pridedame enum'ą ir new'a
 

enum iejimai
{
    Float:X,
    Float:Y,
    Float:Z,
    Float:exX,
    Float:exY,
    Float:exZ,
    Interior
}
new IejimaiIsejimaiPos[MAX_ENTRANCES][iejimai];
new max_entrances = 0;


Po OnGameModeInit rašome

CreateInServerPickups();

Po OnPlayerKeyStateChange dedame
 

if(PRESSED(KEY_SECONDARY_ATTACK))
  {
for(new i = 0; i < MAX_ENTRANCES; i++)
   {
    if(IsPlayerInRangeOfPoint(playerid, 2.0, IejimaiIsejimaiPos[i][X], IejimaiIsejimaiPos[i][Y], IejimaiIsejimaiPos[i][Z]))
    {
       SetPlayerPos(playerid, IejimaiIsejimaiPos[i][exX], IejimaiIsejimaiPos[i][exY], IejimaiIsejimaiPos[i][exZ]);
       SetPlayerInterior(playerid, floatround(IejimaiIsejimaiPos[i][Interior]));
       break;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 2.0, IejimaiIsejimaiPos[i][exX], IejimaiIsejimaiPos[i][exY], IejimaiIsejimaiPos[i][exZ]))
    {
SetPlayerPos(playerid, IejimaiIsejimaiPos[i][X], IejimaiIsejimaiPos[i][Y], IejimaiIsejimaiPos[i][Z]);
SetPlayerInterior(playerid, 0);
       break;
    }
}
}

Dabar sukursime stocką ( dėti gamemodo apačioje )

 

stock CreateEntrance(pav[], Float:x, Float:y, Float:z, Float:exx, Float:exy, Float:exz, interior)
{
if(max_entrances <= MAX_ENTRANCES)
{
   IejimaiIsejimaiPos[max_entrances][X] = x;
   IejimaiIsejimaiPos[max_entrances][Y] = y;
   IejimaiIsejimaiPos[max_entrances][Z] = z;
   IejimaiIsejimaiPos[max_entrances][exX] = exx;
   IejimaiIsejimaiPos[max_entrances][exY] = exy;
   IejimaiIsejimaiPos[max_entrances][exZ] = exz;
   IejimaiIsejimaiPos[max_entrances][Interior] = interior;


new string[150];
format(string, sizeof(string), "spauskite enter norėdami įeiti į %s", pav);
   Create3DTextLabel(string, 0xFFFFFFFF, x, y, z, 30.0, 0, 0);
   Create3DTextLabel("spauskite enter norėdami išeiti", 0xFFFFFFFF, exx, exy, exz, 15.0, 0, 0);


CreatePickup(19197, 1, x, y, z, 0);
CreatePickup(19197, 1, exx, exy, exz, 0);
max_entrances++;
}
else return printf("Iejimu sistemoj nebera vietos pzdc");
return 1;
}
stock CreateInServerPickups()
{
    // Sukuriami įėjimai
CreateEntrance("{808040}Regitra", 2434.5613,125.5661,27.3108, 2676.7212,628.2041,-28.9141, 1);
printf("sukurta %d iejimu", max_entrances);
return 1;
}


Tai yra mano antroji pamoka, todėl per daug nesmerkite.
Radus klaidą, praneškite man ir būtinai ją ištaisysiu.

Kam nepavyksta, skype ddt1592 ir padėsiu.

Redaguota , nario K1NGAS
Nuoroda į komentarą
Dalintis per kitą puslapį

Dabar per telą, bet man atrodo ant OnGameModeInit reikia įmest : CreateInServerPickups()

Dėl to, kad juos sukurtų, o ne tik pasisavintų eilutčių kiekį?

Dėkui , bet šiam kartui nereikia esu susikūręs tokia tik, kad trumpesnę :D

naujokam pravers todėl +r3p

 

printf("Iejimu sistemoj nebera vietos pzdc"); o šitas tai p* :D žvengt galima :DD

Redaguota , nario Jonas13
Nuoroda į komentarą
Dalintis per kitą puslapį

Dabar per telą, bet man atrodo ant OnGameModeInit reikia įmest : CreateInServerPickups()

Dėl to, kad juos sukurtų, o ne tik pasisavintų eilutčių kiekį?

Dėkui , bet šiam kartui nereikia esu susikūręs tokia tik, kad trumpesnę :D

naujokam pravers todėl +r3p

 

printf("Iejimu sistemoj nebera vietos pzdc"); o šitas tai p* :D žvengt galima :DD

ech, dėkui, jog pranešei apie klaidą. Sutvarkyta :)

Nuoroda į komentarą
Dalintis per kitą puslapį

ech, dėkui, jog pranešei apie klaidą. Sutvarkyta :)

Ner už ką :D Aš jau toks esu,kad visas klaidas stebiu. :P dabar eisiu dar patestuot manau

 

P.s dar parašyk, kad gali į daugiau pasikeist įėjimų(Nes limitas yra )

 

#define MAX_ENTRANCES 15

nes dabar tik 15 nustatyta :)

 

 

Mes error manau dėl šito(Tiksliai nežinau, nes niekada nebandęs:D)

if(PRESSED(KEY_SECONDARY_ATTACK))

 

kadangi aš esu senamadiškas tai man patikimesnis senasis būdas:

 

if(newkeys == KEY_SECONDARY_ATTACK)

Redaguota , nario Jonas13
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Ner už ką :D Aš jau toks esu,kad visas klaidas stebiu. :P dabar eisiu dar patestuot manau

 

P.s dar parašyk, kad gali į daugiau pasikeist įėjimų(Nes limitas yra )

nes dabar tik 15 nustatyta :)

 

 

Mes error manau dėl šito(Tiksliai nežinau, nes niekada nebandęs:D)

kadangi aš esu senamadiškas tai man patikimesnis senasis būdas:

pridėjau tą, nes pamiršau, jog gali mesti klaidą ( If(pressed etc shit..))

Kas norės, tas pasikeis tą limitą :D

Redaguota , nario K1NGAS
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3092 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...