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

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

Dabar, Nelixus // Code4u.lt parašė:

bandžiau ir neveikia...Vistiek darosi greitai ir tie tikrinimai ne prie ko čia

 

hmm..man veikia, gal gm lievas yra. O be to tikrinimai nesakiau kad susiję su vartais, ten nesąmonė yra nes medikų vartų neleidžia atidaryti medikui...

You're human, you should be scared.

(redaguota)
27 minutes prieš, Nelixus // Code4u.lt parašė:

taip po 


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

 

OnPlayerKeyStateChange(...)
{
	if(IsPlayerInRangeOfPoint(...))
	{
		if(tikrina ar medikas)
		{
			if(tikrina ar uzdaryti vartai)
			{
				MoveDynamicObject(vartai, posx, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad atidaryti...
				//SCM
			}
			else	
			{
				MoveDynamicObject(vartai, posx, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad uzdaryti
				//SCM	
			}
		}
	}
	if(IsPlayerInRangeOfPoint(...))
	{
		if(tikrina ar medikas)
		{
			if(tikrina ar uzdaryti vartai)
			{
				MoveDynamicObject(vartai, posx + 0.2, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad atidaryti...
				//SCM
			}
			else	
			{
				MoveDynamicObject(vartai, posx - 0.2, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad uzdaryti
				//SCM	
			}
		}
	}
	return 1;
}

Veiks, tik susidėk tikrinimus ir naudok else, o ne else if kai tikrini ar uždaryti. Ir jei keiti greitį, tai keisk ir posx + greitis.

Redaguota , nario haX0r

You're human, you should be scared.

7 minutes prieš, haX0r parašė:

OnPlayerKeyStateChange(...)
{
	if(IsPlayerInRangeOfPoint(...))
	{
		if(tikrina ar medikas)
		{
			if(tikrina ar uzdaryti vartai)
			{
				MoveDynamicObject(vartai, posx, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad atidaryti...
				//SCM
			}
			else	
			{
				MoveDynamicObject(vartai, posx, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad uzdaryti
				//SCM	
			}
		}
	}
	if(IsPlayerInRangeOfPoint(...))
	{
		if(tikrina ar medikas)
		{
			if(tikrina ar uzdaryti vartai)
			{
				MoveDynamicObject(vartai, posx + 0.2, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad atidaryti...
				//SCM
			}
			else	
			{
				MoveDynamicObject(vartai, posx - 0.2, posy, posz, 0.2, rotx, roty, rotz);
				//padarai kad uzdaryti
				//SCM	
			}
		}
	}
	return 1;
}

Veiks, tik susidėk tikrinimus ir naudok else, o ne else if kai tikrini ar uždaryti. Ir jei keiti greitį, tai keisk ir posx + greitis.

if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
		if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2563.0990,581.2990,14.5000)) 
		{
			{
				if(GetPVarInt(playerid, "mvartai2") == 0) //Jei vartai uždaryti
				{
					MoveDynamicObject(mvartai2,-2563.0996000,581.2998000,14.5000000, 0.06,0.0000000,0.0000000,0.0000000);
					SetPVarInt(playerid, "mvartai2", 1); 
					GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
				}
				else if(GetPVarInt(playerid, "mvartai2") == 1) //Jei vartai atidaryti
				{
					MoveDynamicObject(mvartai2,-2563.0000000,581.2998000,14.5000000,0.06,0.0000000,270.0000000,0.0000000); 
					SetPVarInt(playerid, "mvartai2", 0); 
					GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
				}
			}
		}
		if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
		if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2601.6001000,595.9000200,14.5000000)) 
		{
			{
				if(GetPVarInt(playerid, "mvartai3") == 0) //Jei vartai uždaryti
				{
					MoveDynamicObject(mvartai3, -2601.5996000,595.9003900,14.5000000,0.06,0.0000000,0.0000000,90.0000000); 
					SetPVarInt(playerid, "mvartai3", 1);
					GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
				}
				else if(GetPVarInt(playerid, "mvartai3") == 1) //Jei vartai atidaryti
				{
					MoveDynamicObject(mvartai3, -2601.6001000,595.9000200,14.5000000,0.06,0.0000000,270.0000000,90.0000000);
					SetPVarInt(playerid, "mvartai3", 0); 
					GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
				}
			}
		}

tai taip ir darau pirmi vartai veikia gerai tik kad antri žiauriai greitai darinėjasi....

if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
{
	if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2563.0990,581.2990,14.5000)) 
	{
		{
			if(GetPVarInt(playerid, "mvartai2") == 0) //Jei vartai uždaryti
			{
				MoveDynamicObject(mvartai2,-2563.0996000,581.2998000,14.5000000, 0.2,0.0000000,0.0000000,0.0000000);
				SetPVarInt(playerid, "mvartai2", 1); 
				GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
			}
			else // Jei uždaryti
			{
				MoveDynamicObject(mvartai2,-2563.0000000,581.2998000,14.5000000,0.2,0.0000000,270.0000000,0.0000000); 
				SetPVarInt(playerid, "mvartai2", 0); 
				GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
			}
		}
	}
	if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
	{
		if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2601.6001000,595.9000200,14.5000000)) 
		{
			if(GetPVarInt(playerid, "mvartai3") == 0) //Jei vartai uždaryti
			{
				MoveDynamicObject(mvartai3, -2601.5996000 + 0.2,595.9003900,14.5000000,0.2,0.0000000,0.0000000,90.0000000); 
				SetPVarInt(playerid, "mvartai3", 1);
				GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
			}
			else //Jei vartai atidaryti
			{
              MoveDynamicObject(mvartai3, -2601.6001000 - 0.2,595.9000200,14.5000000,0.2,0.0000000,270.0000000,90.0000000);
              SetPVarInt(playerid, "mvartai3", 0); 
              GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
			}
		}
  	}
}

Nežinau, ko nesupratai mano kode tam. 

You're human, you should be scared.

prieš 1 valandą, haX0r parašė:

if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
{
	if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2563.0990,581.2990,14.5000)) 
	{
		{
			if(GetPVarInt(playerid, "mvartai2") == 0) //Jei vartai uždaryti
			{
				MoveDynamicObject(mvartai2,-2563.0996000,581.2998000,14.5000000, 0.2,0.0000000,0.0000000,0.0000000);
				SetPVarInt(playerid, "mvartai2", 1); 
				GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
			}
			else // Jei uždaryti
			{
				MoveDynamicObject(mvartai2,-2563.0000000,581.2998000,14.5000000,0.2,0.0000000,270.0000000,0.0000000); 
				SetPVarInt(playerid, "mvartai2", 0); 
				GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
			}
		}
	}
	if(pInfo[playerid][darbas] == MEDIKAI || pInfo[playerid][admin] == SAVININKAS)
	{
		if(IsPlayerInRangeOfPoint(playerid, 10.0 , -2601.6001000,595.9000200,14.5000000)) 
		{
			if(GetPVarInt(playerid, "mvartai3") == 0) //Jei vartai uždaryti
			{
				MoveDynamicObject(mvartai3, -2601.5996000 + 0.2,595.9003900,14.5000000,0.2,0.0000000,0.0000000,90.0000000); 
				SetPVarInt(playerid, "mvartai3", 1);
				GameTextForPlayer(playerid, "~g~VARTAI ATIDAROMI!", 2000, 5);
			}
			else //Jei vartai atidaryti
			{
              MoveDynamicObject(mvartai3, -2601.6001000 - 0.2,595.9000200,14.5000000,0.2,0.0000000,270.0000000,90.0000000);
              SetPVarInt(playerid, "mvartai3", 0); 
              GameTextForPlayer(playerid, "~r~VARTAI UZDAROMI!", 2000, 5);
			}
		}
  	}
}

Nežinau, ko nesupratai mano kode tam. 

vistiek vartai darinėjasi žiauriai greitai

MoveDynamicObject(mvartai2, -2563.0000000 + 0.001, 581.2998000 + 0.001, 14.5000000 + 0.001, 0.06, 0.0000000, 0.0000000, 0.0000000); // Move UP
MoveDynamicObject(mvartai2, -2563.0000000, 581.2998000, 14.5000000, 0.06, 0.0000000, 270.0000000, 0.0000000);// Move Down

Gali būti, kad klystu, bet pats objekto judėjimas veikia tik kintant X, Y ir Z koordinatėms. Jei X Y Z koordinatės nekinta, o kinta tik rotate koordinatės - objektas nejudės.

Pavyzdyje kuris veikia pas tave kinta tiek X, tiek Y koordinatės, o šiame, kuris neveikia kinta tik X koordinatės. Aš visad tokių objektų rotate move'inimui pridėdavau po 0.001 prie X ir Y koordinatės ir visa tai veikdavo man. Viršuje pridedu pavyzdį, pabandyk ar gausis?

Ir greitis taip pat yra redaguojamas kiek unit'ų turi pakisti per sekundę. Dabar tavo objektų koordinatės kylant į viršų kinta po 0.001, o greitis yra 0.6, tai jis ryškiai yra per didelis pagal koordinačių kintamumą. Jei nori kad šlagbaumas atsidarytų per 2 sekundes, naudok 0.0005 greitį (nesu garantuotas, bet taip turėtų būti, jei gerai atsimenu).

prieš 5 valandas(-ų), br1tas parašė:

MoveDynamicObject(mvartai2, -2563.0000000 + 0.001, 581.2998000 + 0.001, 14.5000000 + 0.001, 0.06, 0.0000000, 0.0000000, 0.0000000); // Move UP
MoveDynamicObject(mvartai2, -2563.0000000, 581.2998000, 14.5000000, 0.06, 0.0000000, 270.0000000, 0.0000000);// Move Down

Gali būti, kad klystu, bet pats objekto judėjimas veikia tik kintant X, Y ir Z koordinatėms. Jei X Y Z koordinatės nekinta, o kinta tik rotate koordinatės - objektas nejudės.

Pavyzdyje kuris veikia pas tave kinta tiek X, tiek Y koordinatės, o šiame, kuris neveikia kinta tik X koordinatės. Aš visad tokių objektų rotate move'inimui pridėdavau po 0.001 prie X ir Y koordinatės ir visa tai veikdavo man. Viršuje pridedu pavyzdį, pabandyk ar gausis?

Ir greitis taip pat yra redaguojamas kiek unit'ų turi pakisti per sekundę. Dabar tavo objektų koordinatės kylant į viršų kinta po 0.001, o greitis yra 0.6, tai jis ryškiai yra per didelis pagal koordinačių kintamumą. Jei nori kad šlagbaumas atsidarytų per 2 sekundes, naudok 0.0005 greitį (nesu garantuotas, bet taip turėtų būti, jei gerai atsimenu).

Vienas pastebėjimas, taip radai šitą forum.sa-mp aš ir mačiau, tik jei gerai žinau tai užtenka keisti tik vieną iš x, y, z koordinačių, o keisti (+ pridėti) reikia tiek, per kiek laiko objektas juda. Jei objekto judinimo greitis 0.2, tai ir pakeisti reikia + 0.2. 

Y_Less: "Sakiau tai anksčiau. Daugelis mano, jog MySQL yra stebuklingas plugin'as, kuris paverčia modifikaciją geresne, tačiau jie nesupranta, jog paskutinė raidė "L" reiškia kalbą. Taigi, naudodami PAWN kalbą (language), jie naudoja dvi kalbas vienu metu. Jei praleisite mėnesius mokydamiesi PAWN, tuomet tokį pat laiką turite praleisti ir mokydamiesi SQL. Ši kalba yra sudėtingesnė iš šių abiejų kalbų. Tai nėra kalba, kuri "įsitvirtina prie šono" šalia kitos kalbos."
Kalcor: "... Tai padaro, jog atrodo net nepanašu į GTA. Ši modifikacija vadinama San Andreas Multiplayer. Tai nėra atskiras žaidimo variklis, kurį galite koduoti kaip tik norite..."

Prieš 1 valandą, Minerva parašė:

Vienas pastebėjimas, taip radai šitą forum.sa-mp aš ir mačiau, tik jei gerai žinau tai užtenka keisti tik vieną iš x, y, z koordinačių, o keisti (+ pridėti) reikia tiek, per kiek laiko objektas juda. Jei objekto judinimo greitis 0.2, tai ir pakeisti reikia + 0.2. 

:D

Čia norėjai įgelti ar ko siekei pasakydamas, kad tą radau sa-mp forume? Čia sena praktika, nuo pat pradžių taip naudodavau tokį būdą. Būdamas Las Venturas skripteris taip pat lygiai taip pat tai naudojau, nėra ką čia kopijuoti iš forumų.

Greitis turi būti toks kiek pridėjai? :D Nu ble, dokumentaciją bent kada funkcijų esi skaitęs? Greitis nurodomas pagal tai kiek unitų objektas turi pajudėti per sekundę. Tai kaip ir minėjau, jei nori per dvi sekundes kad šlagbaumas atsidarytų, naudok greitį per pusę nei pridėjai. Tavo variantas (kiek pridėjai, toks ir greitis) padarys, jog objektas atsidarytų per sekundę.

(redaguota)
prieš 1 valandą, br1tas parašė:

:D

Čia norėjai įgelti ar ko siekei pasakydamas, kad tą radau sa-mp forume? Čia sena praktika, nuo pat pradžių taip naudodavau tokį būdą. Būdamas Las Venturas skripteris taip pat lygiai taip pat tai naudojau, nėra ką čia kopijuoti iš forumų.

Greitis turi būti toks kiek pridėjai? :D Nu ble, dokumentaciją bent kada funkcijų esi skaitęs? Greitis nurodomas pagal tai kiek unitų objektas turi pajudėti per sekundę. Tai kaip ir minėjau, jei nori per dvi sekundes kad šlagbaumas atsidarytų, naudok greitį per pusę nei pridėjai. Tavo variantas (kiek pridėjai, toks ir greitis) padarys, jog objektas atsidarytų per sekundę.

Kaip tik vakar radau labai panašų sakinį todėl nepyk kilo asociacijos, o dėl greičio tai ką žinau 1 sekundė irgi gerai greitis, bet kaip ir minėjai dokumentacijų aš neskaitau, retkarčiais wiki užeinu, apskritai nemoku scriptinti ir projekto niekad nedariau, tik kai kuriuos dalykus žinau ir tiek, šiuo atveju maniau kad žinau, nors klaidingai.

Redaguota , nario Minerva

Y_Less: "Sakiau tai anksčiau. Daugelis mano, jog MySQL yra stebuklingas plugin'as, kuris paverčia modifikaciją geresne, tačiau jie nesupranta, jog paskutinė raidė "L" reiškia kalbą. Taigi, naudodami PAWN kalbą (language), jie naudoja dvi kalbas vienu metu. Jei praleisite mėnesius mokydamiesi PAWN, tuomet tokį pat laiką turite praleisti ir mokydamiesi SQL. Ši kalba yra sudėtingesnė iš šių abiejų kalbų. Tai nėra kalba, kuri "įsitvirtina prie šono" šalia kitos kalbos."
Kalcor: "... Tai padaro, jog atrodo net nepanašu į GTA. Ši modifikacija vadinama San Andreas Multiplayer. Tai nėra atskiras žaidimo variklis, kurį galite koduoti kaip tik norite..."

prieš 9 valandas(-ų), br1tas parašė:

MoveDynamicObject(mvartai2, -2563.0000000 + 0.001, 581.2998000 + 0.001, 14.5000000 + 0.001, 0.06, 0.0000000, 0.0000000, 0.0000000); // Move UP
MoveDynamicObject(mvartai2, -2563.0000000, 581.2998000, 14.5000000, 0.06, 0.0000000, 270.0000000, 0.0000000);// Move Down

Gali būti, kad klystu, bet pats objekto judėjimas veikia tik kintant X, Y ir Z koordinatėms. Jei X Y Z koordinatės nekinta, o kinta tik rotate koordinatės - objektas nejudės.

Pavyzdyje kuris veikia pas tave kinta tiek X, tiek Y koordinatės, o šiame, kuris neveikia kinta tik X koordinatės. Aš visad tokių objektų rotate move'inimui pridėdavau po 0.001 prie X ir Y koordinatės ir visa tai veikdavo man. Viršuje pridedu pavyzdį, pabandyk ar gausis?

Ir greitis taip pat yra redaguojamas kiek unit'ų turi pakisti per sekundę. Dabar tavo objektų koordinatės kylant į viršų kinta po 0.001, o greitis yra 0.6, tai jis ryškiai yra per didelis pagal koordinačių kintamumą. Jei nori kad šlagbaumas atsidarytų per 2 sekundes, naudok 0.0005 greitį (nesu garantuotas, bet taip turėtų būti, jei gerai atsimenu).

Kiek supratau tai nelabai skaitei kad "mvartai2" gerai veikia. O "mvartai3" juda laibai greitai tai nemanau ar čia tavo paaiškinimas tiks jog reikia pridėti po 0,001.

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