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

Pagalbos dėl objekto judinimo Rotation!


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 409 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, susidūriau su problėma, nepavyksta judinti vartų pagal rotaciją per laika,
vartai juda ne pagal laiką, o iškarto nusistato jų nurodyta pozicija kur turi judėti, o man reikia kad per laiką.


Vartų sukūrimo kodas:

kurjeriuvartai = CreateObject(968, -2202.73706, -2263.10425, 30.51350,   0.00000, 90.00000, -39.96000);

Judinami vartai:

    if(newkeys == KEY_YES)
    {
   	if (IsPlayerInRangeOfPoint(playerid, 5.0, -2199.8862,-2265.9819,30.6250))
    {
    if(playerDB[playerid][specialybe] != 1) return 0;
    if(kurjeriuvartubusena == false)
    {
        kurjeriuvartubusena = true;
		MoveObject(kurjeriuvartai,-2202.73706, -2263.10425, 30.51350+0.00001, 5,  0.00000, 0.00000, -39.96000);
		new str[125 + 30];
		format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog uždaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus atidarė: {0077b6}%s.",GetPlayerNameEx(playerid));
		Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
		GameTextForPlayer(playerid, "~G~Atidarote vartus!",3000,3);
    }
    else
    {
        kurjeriuvartubusena = false;
  		MoveObject(kurjeriuvartai,-2202.73706, -2263.10425, 30.5135-0.00001, 5,  0.00000, 90.00000, -39.96000);
  		new str[125 + 30];
		format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog atidaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus uždarė: {0077b6}%s.",GetPlayerNameEx(playerid));
		Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
		GameTextForPlayer(playerid, "~R~Uzdarote vartus!",3000,3);
    }
    }
    }

+ Dar  vienas klausymas

Kaip išgauti ar kažkoks žaidėjas sėdi pas žaidėja mašinoje.
Pvz jeigu žaidėjui ir mašinoj kurioj jis sėdi nustatomas interjeras, kaip nustatyti interjerą žaidėjui kuris sėdi šalia pas žaidėja mašinoje?

 

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

prieš 1 valandą, FreeTime parašė:

https://team.sa-mp.com/wiki/GetPlayerVehicleID.html

 

Skaitykis, imesk DC savo, dėl moveobject paiiškinsiu kaip veikia.

Man GetPlayerVehicleID funkcija nieko nesako, žinau kaip ji veikia, bet neįsivaizduoju kaip išgauti žaidėjo kuris sėdi šalia informacija.

Terebaitas#9573
 

33 minutes prieš, Andrius.025 parašė:

Patariu naudot tiesiog MoveObject(ObjektoID,  x, y, z, 0.009,  rotx, roty, rotz); // 0.009 letai atidaro tavo tipo vartus. Tu uždėjas 5 greiti jis per greitas todėl iškarto ir atsidaro.

Nepadėjo, vartai vistiek staigiai atsidaro/užsidaro be laiko..

Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 2 valandas(-ų), BayonV parašė:

Man GetPlayerVehicleID funkcija nieko nesako, žinau kaip ji veikia, bet neįsivaizduoju kaip išgauti žaidėjo kuris sėdi šalia informacija.

Terebaitas#9573
 

Nepadėjo, vartai vistiek staigiai atsidaro/užsidaro be laiko..

Tai koki laiką uždėjęs esi? 

  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

https://imgur.com/JQRaG4Q

Viršuje, kad tikrai veikia.

viršuje:

#define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))
#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
    
new GateAllreadyRotated[MAX_OBJECTS];

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(PRESSED(KEY_YES))
    {
	   	if(IsPlayerInRangeOfPoint(playerid, 5.0, -2199.8862,-2265.9819,30.6250))
	    {
		    if(playerDB[playerid][specialybe] != 1) return 0;
		    if(kurjeriuvartubusena == false)
		    {
		        kurjeriuvartubusena = true;
				RotateObject(kurjeriuvartai,0.00000, 0.00000, -39.96000, 0.009);
				new str[125 + 30];
				format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog uždaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus atidarė: {0077b6}%s.",GetPlayerNameEx(playerid));
				Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
				GameTextForPlayer(playerid, "~G~Atidarote vartus!",3000,3);
		    }
		    else
		    {
		        kurjeriuvartubusena = false;
		  		RotateObject(kurjeriuvartai,0.00000, 90.00000, -39.96000, 0.009);
		  		new str[125 + 30];
				format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog atidaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus uždarė: {0077b6}%s.",GetPlayerNameEx(playerid));
				Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
				GameTextForPlayer(playerid, "~R~Uzdarote vartus!",3000,3);
		    }
	    }
    }
	return 1;
}
stock RotateObject(objectid, Float: RotX, Float: RotY, Float: RotZ, Float: RotSpeed)
{
    new Float: ObjectPos[3];

	GetObjectPos(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2]);

	if(GateAllreadyRotated[objectid] == 0)
	{
	    GateAllreadyRotated[objectid] = 1;

		return MoveObject(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2] + 0.015, RotSpeed, RotX, RotY, RotZ);
	}
	else
	{
	    GateAllreadyRotated[objectid] = 0;

	    return MoveObject(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2] - 0.015, RotSpeed, RotX, RotY, RotZ);
	}
}

 

 

  • Teigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

2023-03-15 15:14, Andrius.025 parašė:

https://imgur.com/JQRaG4Q

Viršuje, kad tikrai veikia.

viršuje:

#define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))
#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
    
new GateAllreadyRotated[MAX_OBJECTS];

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(PRESSED(KEY_YES))
    {
	   	if(IsPlayerInRangeOfPoint(playerid, 5.0, -2199.8862,-2265.9819,30.6250))
	    {
		    if(playerDB[playerid][specialybe] != 1) return 0;
		    if(kurjeriuvartubusena == false)
		    {
		        kurjeriuvartubusena = true;
				RotateObject(kurjeriuvartai,0.00000, 0.00000, -39.96000, 0.009);
				new str[125 + 30];
				format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog uždaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus atidarė: {0077b6}%s.",GetPlayerNameEx(playerid));
				Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
				GameTextForPlayer(playerid, "~G~Atidarote vartus!",3000,3);
		    }
		    else
		    {
		        kurjeriuvartubusena = false;
		  		RotateObject(kurjeriuvartai,0.00000, 90.00000, -39.96000, 0.009);
		  		new str[125 + 30];
				format(str, sizeof(str),"{0077b6}• {FFFFFF}Spauskite {0077b6}„Y“ {FFFFFF}jog atidaryti vartus!\n{0077b6}• {FFFFFF}Paskutinis vartus uždarė: {0077b6}%s.",GetPlayerNameEx(playerid));
				Update3DTextLabelText(kurjeriuvartaitxd, -1,str);
				GameTextForPlayer(playerid, "~R~Uzdarote vartus!",3000,3);
		    }
	    }
    }
	return 1;
}
stock RotateObject(objectid, Float: RotX, Float: RotY, Float: RotZ, Float: RotSpeed)
{
    new Float: ObjectPos[3];

	GetObjectPos(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2]);

	if(GateAllreadyRotated[objectid] == 0)
	{
	    GateAllreadyRotated[objectid] = 1;

		return MoveObject(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2] + 0.015, RotSpeed, RotX, RotY, RotZ);
	}
	else
	{
	    GateAllreadyRotated[objectid] = 0;

	    return MoveObject(objectid, ObjectPos[0], ObjectPos[1], ObjectPos[2] - 0.015, RotSpeed, RotX, RotY, RotZ);
	}
}

 

 

Dėkui, padėjai. MLDC

Nuoroda į komentarą
Dalintis per kitą puslapį

  • -SanTa- užrakino šią temą

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