Jump to content

Question

Posted

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!

5 answers to this question

Recommended Posts

  • 0
Posted

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
  • 0
Posted
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?

  • 0
Posted
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.

  • 0
Posted

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

  • 0
Posted
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!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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.