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

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

new Objektas1;

Objektas1 = CreateDynamicObject(objektoID, x,y,z,rotx,rotx,rotz);

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
    if(GetPlayerWeapon(playerid) == 9) // nustatom iš kokio ginklo nušausi, gali nusistatyt ir daugiau
    {
		GetDynamicObjectPos(Objektas1, &Float:x, &Float:y, &Float:z);
		{
        	if(IsPlayerInRangeOfPoint(playerid, 1.5, x,y,z))// 1.5 - atstumas iš kurio šausi gali nustatyt pagal save, bei kordinatės x,y,z
        	{
            	MoveDynamicObject(Objektas1, x,y,z,3.0,rotX,rotY,rotZ);//nustatom cord, kurios būtų ant žemės, pašovus matysi kaip krenta
            	PlayerPlaySound(playerid,1190,0.0,0.0,0.0); // garsas pašovus objektą gali išsiimt
			}
        }
    }
    return 1;
}

 

Nieko naujo.

1 minute prieš, A'j parašė:

new Objektas1;

Objektas1 = CreateDynamicObject(objektoID, x,y,z,rotx,rotx,rotz);

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
    if(GetPlayerWeapon(playerid) == 9) // nustatom iš kokio ginklo nušausi, gali nusistatyt ir daugiau
    {
		GetDynamicObjectPos(Objektas1, &Float:x, &Float:y, &Float:z);
		{
        	if(IsPlayerInRangeOfPoint(playerid, 1.5, x,y,z))// 1.5 - atstumas iš kurio šausi gali nustatyt pagal save, bei kordinatės x,y,z
        	{
            	MoveDynamicObject(Objektas1, x,y,z,3.0,rotX,rotY,rotZ);//nustatom cord, kurios būtų ant žemės, pašovus matysi kaip krenta
            	PlayerPlaySound(playerid,1190,0.0,0.0,0.0); // garsas pašovus objektą gali išsiimt
			}
        }
    }
    return 1;
}

 

Negali su viena funkcija nustatyti, kad visi ginklai? Arba, kad reiktu tam tikra dmg nuiimt kad ji nukristu

HP nustatyt objektui, nežinau tokios funkcijos, reiktu include susikurt, o su ginklais nežinau gali nusistatyt pvz:

 

new g = GetPlayerWeapon(playerid);

if(g == 22 || g == 23 || g == 24 || g == 25 || g == 26 || g == 27 ||g == 28 || g == 29 || g == 30 ||
g == 31 || g == 32 || g == 33 ||g == 34)
{
//skriptas
}
čia visi šaunamieji ginklai neskaitant bazuku, minigun, granatu.

 

Nieko naujo.

(redaguota)

Kažkoks oras man čia tas kodas aukščiau. Tipo parašei jam variantą, kuris nušaus kamerą, jeigu būsi kažkokiu atstumu iki jos, o ne, kad į ją pataikysi. Lievai atrodys gi, tikrai galima fainiau padaryt.

Streameris turi specialų callback'ą visam šitam.

public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
	if ( objectid == /*čia tavo kameros objekto id, kurį išsaugai, kai sukuri kamerą*/ )
	{
		/* čia gali ką nori veikt su ta kamera. MoveDynamicObject, Destroy ir t.t., gali patikrint ar ginklo id tinka ir t.t.*/
		return 1;
	}
}

 

https://github.com/samp-incognito/samp-streamer-plugin/wiki/Callbacks

Redaguota , nario JonasP
prieš 1 valandą, JonasP parašė:

Kažkoks oras man čia tas kodas aukščiau. Tipo parašei jam variantą, kuris nušaus kamerą, jeigu būsi kažkokiu atstumu iki jos, o ne, kad į ją pataikysi. Lievai atrodys gi, tikrai galima fainiau padaryt.

Streameris turi specialų callback'ą visam šitam.


public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
	if ( objectid == /*čia tavo kameros objekto id, kurį išsaugai, kai sukuri kamerą*/ )
	{
		/* čia gali ką nori veikt su ta kamera. MoveDynamicObject, Destroy ir t.t., gali patikrint ar ginklo id tinka ir t.t.*/
		return 1;
	}
}

 

https://github.com/samp-incognito/samp-streamer-plugin/wiki/Callbacks

Sumaišiau, nesu tobulas, darau klaidų.

Nieko naujo.

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

Kažkoks oras man čia tas kodas aukščiau. Tipo parašei jam variantą, kuris nušaus kamerą, jeigu būsi kažkokiu atstumu iki jos, o ne, kad į ją pataikysi. Lievai atrodys gi, tikrai galima fainiau padaryt.

Streameris turi specialų callback'ą visam šitam.


public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
	if ( objectid == /*čia tavo kameros objekto id, kurį išsaugai, kai sukuri kamerą*/ )
	{
		/* čia gali ką nori veikt su ta kamera. MoveDynamicObject, Destroy ir t.t., gali patikrint ar ginklo id tinka ir t.t.*/
		return 1;
	}
}

 

https://github.com/samp-incognito/samp-streamer-plugin/wiki/Callbacks

Aciu labai! Gal dar gali pasakyti, kaip padaryti jog ne is vieno suvio, o po tam tikro nuiimto dmg nuo kameros?

weaponid tai cia tik su tam tikru nustatytu ginklu gales ta kamera nusaut ane?

Redaguota , nario rokas7202
48 minutes prieš, rokas7202 parašė:

Aciu labai! Gal dar gali pasakyti, kaip padaryti jog ne is vieno suvio, o po tam tikro nuiimto dmg nuo kameros?

weaponid tai cia tik su tam tikru nustatytu ginklu gales ta kamera nusaut ane?

Čia yra callbackas. Žodžiu taip. Ši funkcija įvykdoma kaskart, kai kažkas pašauna į su streameriu sukurtą objektą. Kai tai įvyksta, funkcijai mato su kokiu ginklu, koks žmogus, į kokį objektą, kur pataike. Weaponid rašys koks ginklas šovė į objektą. Taip, jei nori apriboti ginklus, su kuriais galės pataikyt, tai idėk patikrinimą (if (weaponid == kažkoks ginklo id || weaponid == kitas ginklo id) return 0; ir t.t.).

Jeigu nori tam tikros žalos - tai reikės daugiau skaičiavimų. Turėtum kai pašauna į kamerą gauti žmogaus poziciją. Pasiimti ginklo id. Paskaičiuoti kokiu atstumu nuo kameros ir kažkaip gauti kiek žalos tai padarė. Ten tarkim žinai kokia max žala su tuo ginklu ir pasidaugini iš koeficiento, kuris priklauso nuo atstumo tarp šovėjo ir taikinio. Nežinau ir nesidomėjau ar yra būdas paskaičiuot kiek žalos padarytų šūvis.

Aš tai paprasčiau pasidariau. Turiu sistemytę, kur spyną nušauna nuo vartų, tai tiesiog pataikius į ją iš shotgun arba kito galingo ginklo padariau, kad įvyktų random(10) funkcija ir jeigu ten iškrenta 1, tai tada spyna nušauta. Tai gaunas 10proc tikimybė, kad spyna nušauta bus. Analogiškai gali pasidaryt su kamera kažką. Tipo nebus, kad iškart nušauna visada, bet toks monetos metimas iš esmės kaskart pašovus.

Prieš 1 valandą, A'j parašė:

Sumaišiau, nesu tobulas, darau klaidų.

Nieko nieko, gyvenam ir mokomės, čia nėr klaida, turėjau omenyje tik galima kiečiau padaryt ir tiek. ;)

(redaguota)

@JonasP

Kodėl išovus į kamerą nieko nevyksta?

čia mano kamera kuria sukuriu:

	camera[0] = CreateDynamicObject(2921, -327.22513, 1059.44995, 23.30503,   0.00000, 0.00000, 180.00000);
	

	public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
    if(objectid == camera[0])
    {
        SendClientMessage(playerid, GREEN, "+ Pataikei ir sunaikinai kamera !");
        MoveDynamicObject(camera[0], -327.16458, 1059.53284, 18.95800,3.0,90.00000, 0.00000, 151.82739);//nustatom cord, kurios butu ant žemes, pašovus matysi kaip krenta
        return 1;
    }
    return 1;
}
	
Redaguota , nario rokas7202
38 minutes prieš, rokas7202 parašė:

@JonasP

Kodėl išovus į kamerą nieko nevyksta?

Šitas kameros objektas neturi collision'o, todėl kulkos eina kiaurai jį. Patikrinau, pasirodo visos kameros tokios. Tad tau teks dar kitaip padaryt, reikės ant kameros užmauti kitą objektą, kurį padarysime nematomu ir gaudysim, kada žmonės pataikys į jį, o ne kamerą. Šiek tiek panagrinėjau ir radau šį oro kondicionierių, kuris beveik tobulai užsimauna ant kameros ir per daug neišsikiša, todėl atrodys labai šauniai.

Kameros sukūrimą paredaguojame taip:

camera[0] = CreateDynamicObject(2921, -327.22513, 1059.44995, 23.30503,   0.00000, 0.00000, 180.00000);
camera[1] = CreateDynamicObject(3812, -326.55704, 1057.43433, 23.88171,   20.00000, 90.00000, 55.74000);
SetDynamicObjectMaterial(camera[1], 0,  0, "none", "none", 0); //padarom teksturas nematomas dezutes ant kameros
SetDynamicObjectMaterial(camera[1], 1,  0, "none", "none", 0);

Taigi ant kameros uždėjome dėžutę ir dabar ją padarėme nematomą. Dabar reikia tikrinti ar pataikome į dėžutę.

Tada paredaguok kodą, kur tikrina kokį objektą pataikė taip:

public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
    if(objectid == camera[1])
    {
        SendClientMessage(playerid, GREEN, "+ Pataikei ir sunaikinai kamera !");
        MoveDynamicObject(camera[0], -327.16458, 1059.53284, 18.95800,3.0,90.00000, 0.00000, 151.82739);//nustatom cord, kurios butu ant žemes, pašovus matysi kaip krenta
        return 1;
    }
    return 1;
}

Ir turėtų kamera nukristi pataikius į tą nematomą dėžutę ant jos.

52 minutes prieš, JonasP parašė:

Šitas kameros objektas neturi collision'o, todėl kulkos eina kiaurai jį. Patikrinau, pasirodo visos kameros tokios. Tad tau teks dar kitaip padaryt, reikės ant kameros užmauti kitą objektą, kurį padarysime nematomu ir gaudysim, kada žmonės pataikys į jį, o ne kamerą. Šiek tiek panagrinėjau ir radau šį oro kondicionierių, kuris beveik tobulai užsimauna ant kameros ir per daug neišsikiša, todėl atrodys labai šauniai.

Kameros sukūrimą paredaguojame taip:


camera[0] = CreateDynamicObject(2921, -327.22513, 1059.44995, 23.30503,   0.00000, 0.00000, 180.00000);
camera[1] = CreateDynamicObject(3812, -326.55704, 1057.43433, 23.88171,   20.00000, 90.00000, 55.74000);
SetDynamicObjectMaterial(camera[1], 0,  0, "none", "none", 0); //padarom teksturas nematomas dezutes ant kameros
SetDynamicObjectMaterial(camera[1], 1,  0, "none", "none", 0);

Taigi ant kameros uždėjome dėžutę ir dabar ją padarėme nematomą. Dabar reikia tikrinti ar pataikome į dėžutę.

Tada paredaguok kodą, kur tikrina kokį objektą pataikė taip:


public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
{
    if(objectid == camera[1])
    {
        SendClientMessage(playerid, GREEN, "+ Pataikei ir sunaikinai kamera !");
        MoveDynamicObject(camera[0], -327.16458, 1059.53284, 18.95800,3.0,90.00000, 0.00000, 151.82739);//nustatom cord, kurios butu ant žemes, pašovus matysi kaip krenta
        return 1;
    }
    return 1;
}

Ir turėtų kamera nukristi pataikius į tą nematomą dėžutę ant jos.

Veikia, tik reikia atrasti kur sauti :D aciu labai

26 minutes prieš, rokas7202 parašė:

Veikia, tik reikia atrasti kur sauti :D aciu labai

Na gali nusikopint kodą dėžutės į editorių ir pasitvarkyt bandyt :D Aš netestavau realiai, tik užmečiau. Gali būt, kad hitbox'as nesikeičia nuo pasukimo kampo (kas man atrodo ir yra), todėl pataikyt gali būt sudėtingiau ir galbūt reiktų paieškot kito objekto arba paredaguot aukštį. Bet mintį jau pagavai, tai gal susižiūrėsi kaip nors. :D

1 minute prieš, JonasP parašė:

Na gali nusikopint kodą dėžutės į editorių ir pasitvarkyt bandyt :D Aš netestavau realiai, tik užmečiau. Gali būt, kad hitbox'as nesikeičia nuo pasukimo kampo (kas man atrodo ir yra), todėl pataikyt gali būt sudėtingiau ir galbūt reiktų paieškot kito objekto arba paredaguot aukštį. Bet mintį jau pagavai, tai gal susižiūrėsi kaip nors. :D

Joo, susitvarkiau viska, tiesiog tavo sukurta obijekta pakoregavau ir viskas okei, dar karta dekui !:D

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