Jump to content
  • 0

Actor care trage.


Exaton

Question

Salut grup, aș vrea să fac un actor care trage și care da damege la jucator in raza lui și jucatorul daca trage in actor să "moară" actorul, am căutat pe internet dar nu am gasit nimic, ar putea cineva sa ma ajute sau sa imi dea link la aceste functii. Mersi si succes la toti!

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Este destul de complicat sa faci ce vrei tu... In primul rand daca vrei ca actorul sa se roteasca dupa jucator trebuie sa ii dai de cap cu calculele unghiului, trebuie sa ii pui o animatie de tras si o arma. In rest e destul de usor:

- Faci un timer sau folosesti unul deja existent de maxim 1 secunda ( recomandat mai putin dar o sa aibe probleme cu performanta ) si verifici ce jucatori sunt langa npc si cine e primeste damage..

 

Exista metode mai optimizate dar sunt mult mai complicate

  • Upvote 1
Link to comment
Share on other sites

  • 0
Acum 23 ore, CTMBeast a spus:

Este destul de complicat sa faci ce vrei tu... In primul rand daca vrei ca actorul sa se roteasca dupa jucator trebuie sa ii dai de cap cu calculele unghiului, trebuie sa ii pui o animatie de tras si o arma. In rest e destul de usor:

- Faci un timer sau folosesti unul deja existent de maxim 1 secunda ( recomandat mai putin dar o sa aibe probleme cu performanta ) si verifici ce jucatori sunt langa npc si cine e primeste damage..

 

Exista metode mai optimizate dar sunt mult mai complicate

Îmi poți arăta o bază a scriptului după care să mă conduc?

Link to comment
Share on other sites

  • 0
15 hours ago, Exaton said:

Îmi poți arăta o bază a scriptului după care să mă conduc?

#define ActorDeath 10000
#define ActorDeathReason 99999

new MyActor,objectGun;

public OnGameModeInit()
{
    MyActor = CreateActor(skinid, x, y, z, faceing angle);
    objectGun = CreateObject(gunid, x, y, z , rX, rY, rZ); // x y z cu r la inceput sunt rotatia
    ApplyActorAnimation(MyActor, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0); // Nu stiu care este animatia pentru shooting
    // Aici ii atasezi o arma.. Trebuie sa te joci cu pozitiile si cu AttachObjectToPlayer dar nu am timp  
}

public Timer1sec() {
	foreach(Player, playerid) {
		if(IsPlayerInrRangeOfPoint(playerid, raza,actorX, actorY, actorZ)) {
			new float:playerHP, float:PlayerAngle;
			GetPlayerFacingAngle(playerid, PlayerAngle);
			GetPlayerHealth(playerid, playerHP);
			SetActorFacingAngle(MyActor, PlayerAngle * 180);
			SetPlayerHealth(playerid, playerHP-damage) // in loc de damage pui tu cat damage vrei sa ii dea pe secunda sau in cat timp se repeta timer-ul
			if(playerHP-damage <= 0) {
				OnPlayerDeath(playerid, ActorDeath, ActorDeathReason);
			}
		}
	}
}

public OnPlayerDeath(playerid, killerid, reason) {
	if(killerid == ActorDeath && reason == ActorDeathReason) {
		SendClientMessage(playerid, -1, "Ai fost omorat de NPC");
	}
}

Nu te astepta sa mearga din prima, nu am testat deoarece nu am timp dar daca sunt probleme imi scri mesaj aici sau in privat.

Link to comment
Share on other sites

  • 0
Acum 2 ore, CTMBeast a spus:

Inca ceva: Tu trebuie sa setezi Timer-ul ala in GameModeInit() nu mi-am dat seama sa il pun acolo. Am asumat ca lucrezi deja pe un gamemode cu un timer de o secunda

Mersi, daca o sa am probleme te anunt!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.