Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5075 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

Pradžia

Sveiki, neseniai išėjus SA-MP 0.3d galutinei versijai visi susidūrė su problema, kad judant vartams, jie sukasi. :shok:

Nauja MoveObject funkcija:

Su nauja SA-MP 0.3d versija pakito ir MoveObject funkcija.

Senoji funkcija:

MoveObject( objectid, Float:X, Float:Y, Float:Z, Float:Speed );

Naujoji funkcija:

MoveObject( objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0 );

  • [*:1gs6aujr]Kaip matote atsirado nauji trys rotacijos (RotX, RotY, RotZ) parametrai, todėl jei jų neužpildysime - vartai suksis ratu.

1. Per MTA Map Editorių išsisaugome atidarytus ir uždarytus vartus atskirai:

Uždaryti vartai:


Atidaryti vartai:


2. Susikuriame uždarytus vartus:

Šis uždarytų vartų kodo gabalas sugeneruotas MTA Map Editor'iaus yra reikalingas norint sukurti vartus:

model="969" posX="1363.6547851563" posY="-851.35394287109" posZ="43.517333984375" rotX="0" rotY="0" rotZ="46"

CreateObject funkcijoje naudojame uždarytų vartų koordinates:

new
   vartai,
   bool:atidaryti;

public 
   OnGameModeInit( )
{
   // CreateObject( modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 0.0 );

   vartai = CreateObject( 969, 1363.6547, -851.3539, 43.5173, 0, 0, 46, 100.0 );
   atidaryti = false;

   return true;
}

3. Senoji komanda:

COMMAND:vartai( playerid, params[ ] )
{
   if ( IsPlayerInRangeOfPoint( playerid, 30.0, 1363.6547, -851.3539, 43.5173 ) )
   {
       // MoveObject( objectid, Float:X, Float:Y, Float:Z, Float:Speed );

       if ( !atidaryti ) // Atidarome
       {
           MoveObject( vartai, 1368.81127, -845.7932, 43.2902, 5.0 );
           atidaryti = true;
       }
       else // Uždarome
       {
           MoveObject( vartai, 1363.6547, -851.3539, 43.5173, 5.0 );
           atidaryti = false;
       }
   }

   return true;
}

4. Naujoji komanda:

COMMAND:vartai( playerid, params[ ] )
{
   if ( IsPlayerInRangeOfPoint( playerid, 30.0, 1363.6547, -851.3539, 43.5173 ) )
   {
       // MoveObject( objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0 );

       if ( !atidaryti ) // Atidarome
       {
           MoveObject( vartai, 1368.81127, -845.7932, 43.2902, 5.0, 0.0, 0.0, 34.0 );
           atidaryti = true;

           // Atidarytų vartų rotacijos (MTA): rotX="0" rotY="0" rotZ="34"
       }
       else // Uždarome
       {
           MoveObject( vartai, 1363.6547, -851.3539, 43.5173, 5.0, 0.0, 0.0, 46.0 );
           atidaryti = false;

          // Uždarytų vartų rotacijos (MTA): rotX="0" rotY="0" rotZ="46"
       }
   }

   return true;
}

  • [*:1gs6aujr]IsPlayerInRangeOfPoint funkcijoje naudojame uždarytų vartų X, Y, Z koordinates.[*:1gs6aujr] MoveObject funkcijoje, kai atidarome vartus, RotX, RotY, RotZ koordinates paimame iš atidarytų vartų. Mano atveju jos yra 0.0, 0.0, 34.0.
    [*:1gs6aujr]MoveObject funkcijoje, kai uždarome vartus, RotX, RotY, RotZ koordinates paimame iš uždarytų vartų. Mano atveju jos yra 0.0, 0.0, 46.0.

5. Kadangi Lietuvoje GRP "ima" viršų, štai ir strcmp komanda:

if ( !strcmp( cmdtext, "/vartai", true ) )
{
   if ( IsPlayerInRangeOfPoint( playerid, 30.0, 1363.6547, -851.3539, 43.5173 ) )
   {
       // MoveObject( objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0 );

       if ( !atidaryti ) // Atidarome
       {
           MoveObject( vartai, 1368.81127, -845.7932, 43.2902, 5.0, 0.0, 0.0, 34.0 );
           atidaryti = true;

           // Atidarytų vartų rotacijos (MTA): rotX="0" rotY="0" rotZ="34"
       }
       else // Uždarome
       {
           MoveObject( vartai, 1363.6547, -851.3539, 43.5173, 5.0, 0.0, 0.0, 46.0 );
           atidaryti = false;

          // Uždarytų vartų rotacijos (MTA): rotX="0" rotY="0" rotZ="46"
       }
   }

   return true;
}

6. Klausimai:

  • 1. Ką daryti jei vienoje eilutėje meta daug "number of arguments does not match definition" warning'ų?
    Patikrinkite ar a_objects.inc failas yra tikrai atnaujintas ir jame yra naujoji MoveObject funkcija su RotX, RotY, RotZ parametrais.
    2. Ką daryti jei vienoje eilutėje meta vieną "number of arguments does not match definition" warning'ą?
    Tai reiškia, kad į MoveObject funkciją įrašėte per daug parametrų. Jų turi būti 8.
    3. Ką daryti jei viską sukūriau lyg ir gerai, bet vartai visvien nejuda?
    Tai reiškia, kad MoveObject funkcijoje, judėjimo greičio parametre įrašėte 0. Svarbu: judėjimo greičio parametras turi būti 5, o ne paskutinis.

7. Rezultatas:

97528c11f300e5466c29f0442cff1712663.png

0cc11c2b378fb569b4f7a2b096755b69396.png

7b2507787b64b375f3f3dc3cee80d2ed682.png

Pabaiga

Tikiuosi viską supratot ir mokėsit susikurt/susitvarkyt savo vartus. Viską testavau, todėl turi veikti, jei ne - skaitykit pamoką per naujo. P.S. Ši pamoka tinka ne tik vartams, bet ir kitiems objektas, kuriems yra naudojama MoveObject funkcija. Ačiū už dėmesį ir laukiu komentarų bei įvertinimų. :)

PAWN patirtis: 3 metai

Pamokos:

[GH #1] [0.3d] Objektų šalinimas

[GH #2] [0.3d] Vartų kūrimas

[GH #3] Laiko žymės (UNIX TIMESTAMPS)

[GH #4] Kodo lygiavimas

[GH #5] Kuriame judantį textdraw

  • Atsakymų 44
  • Sukurta
  • Paskutinis pranešimas

Top rašytojai šioje temoje

Top rašytojai šioje temoje

Atsinaujinau a_objects bet vistiek:

C:\Documents and Settings\Valdelis\Desktop\SAMG geras\gamemodes\SAMG.pwn(8179) : warning 202: number of arguments does not match definition

C:\Documents and Settings\Valdelis\Desktop\SAMG geras\gamemodes\SAMG.pwn(8179) : warning 202: number of arguments does not match definition

C:\Documents and Settings\Valdelis\Desktop\SAMG geras\gamemodes\SAMG.pwn(8179) : warning 202: number of arguments does not match definition

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

3 Warnings.

if(playerDB[playerid][specialybe]==18 ||playerDB[playerid][admin])

if(!strcmp(cmdtext, "/afbi", true))

{

MoveObject(fbi, -2432.8999023438, 496.60000610352, 25, 5, 0, 0, 24.25);

GameTextForPlayer(playerid, "~G~ ATIDAROTE VARTUS!", 2000, 5);

return 1;

}

if(!strcmp(cmdtext, "/ufbi", true))

{

MoveObject(fbi, -2432.8999023438, 496.60000610352, 31.700000762939, 5, 0, 0, 24.25);

GameTextForPlayer(playerid, "~R~ UZDAROTE VARTUS!", 2000, 5);

return 1;

}

Ir meta tuos argument :( gal blogai darau ka nors?

if(playerDB[playerid][specialybe]==18 ||playerDB[playerid][admin])

if(!strcmp(cmdtext, "/afbi", true))

{

MoveObject(fbi, -2432.8999023438, 496.60000610352, 25, 5, 0, 0, 24.25);

GameTextForPlayer(playerid, "~G~ ATIDAROTE VARTUS!", 2000, 5);

return 1;

}

if(!strcmp(cmdtext, "/ufbi", true))

{

MoveObject(fbi, -2432.8999023438, 496.60000610352, 31.700000762939, 5, 0, 0, 24.25);

GameTextForPlayer(playerid, "~R~ UZDAROTE VARTUS!", 2000, 5);

return 1;

}

Ir meta tuos argument :( gal blogai darau ka nors?

Meta todėl, kad yra neatnaujintas a_objects.inc failas. Jei ir atnaujinai pasižiūrėk ar atidarai per tą Pawno programą, kurios includes aplanke esantį a_objects.inc pakeitei. Dažnai būna, kad atnaujina savo gamemod'o failus, tačiau patį gm atidaro su Pawn programa iš visai kito aplanko.

PAWN patirtis: 3 metai

Pamokos:

[GH #1] [0.3d] Objektų šalinimas

[GH #2] [0.3d] Vartų kūrimas

[GH #3] Laiko žymės (UNIX TIMESTAMPS)

[GH #4] Kodo lygiavimas

[GH #5] Kuriame judantį textdraw

//Apsauga

if (!strcmp("/asauga", cmdtext, true)) return MoveObject(sargis, -2422.353,501.225,31.764, 1.0001, 5.0, 0.0, 0.0, 34.0);

if (!strcmp("/usauga", cmdtext, true)) return MoveObject(sargis, -2432.474,497.035,31.707, 1.0001, 5.0, 0.0, 0.0, 46.0);

}

Kokios cia klaidos ?

warningai

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(5712) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(5712) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12558) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12558) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12558) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12558) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12559) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12559) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12559) : warning 202: number of arguments does not match definition

C:\Documents and Settings\pc\Desktop\Tikrasis gm\gamemodes\GRP.pwn(12559) : warning 202: number of arguments does not match definition

Man tas pats... Aš atnaujinau visus incules ir viską ką reikėjo...

GRP serveriuose esu mates, kad data aplanke yra sa:mp includes, pabandykit ir jas atnaujint.

-- Papildyta --

GRP serveriuose esu mates, kad data aplanke yra sa:mp includes, pabandykit ir jas atnaujint.

PAWN patirtis: 3 metai

Pamokos:

[GH #1] [0.3d] Objektų šalinimas

[GH #2] [0.3d] Vartų kūrimas

[GH #3] Laiko žymės (UNIX TIMESTAMPS)

[GH #4] Kodo lygiavimas

[GH #5] Kuriame judantį textdraw

GRP serveriuose esu mates, kad data aplanke yra sa:mp includes, pabandykit ir jas atnaujint.

-- Papildyta --

GRP serveriuose esu mates, kad data aplanke yra sa:mp includes, pabandykit ir jas atnaujint.

Nepadėjo... Turiu tau klausima. Tu pats darei taip kaip mums čia parodei ar tik išvertei pamoką?

Nepadėjo... Turiu tau klausima. Tu pats darei taip kaip mums čia parodei ar tik išvertei pamoką?

Viska dariau pats, tiek komandas, tiek nuotraukas, tiek koordinates issisaugojau. Kai turesiu laiko, issiaiskinsiu daugiau warningo priezasciu.

PAWN patirtis: 3 metai

Pamokos:

[GH #1] [0.3d] Objektų šalinimas

[GH #2] [0.3d] Vartų kūrimas

[GH #3] Laiko žymės (UNIX TIMESTAMPS)

[GH #4] Kodo lygiavimas

[GH #5] Kuriame judantį textdraw

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5075 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai



×
×
  • Sukurti naują...