[Ajuda] Quando jogador morre
#1

Quero saber como deixo o corpo apos o jogador morre?
Tipo ele morreu, ai ele spawna, mas fica o corpo dele lб com um label dizendo o nome do morto etc, vi isso em um server e quero usar, para o jogador killerid, pega os obj do morto tlg, o corpo fica no chгo, ele vai e pega!
Reply
#2

OnPlayerDeath
Reply
#3

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);
	CreatePickup(19339, 0, X, Y, Z);
	Create3DTextLabel("Caixгo de: {00BFFF}Usuбrio", -1, X, Y, Z, 10.0, 0, 0);
    return 1;
}
Mais ou menos assim?
Reply
#4

Eu quero que fique um corpo com a skin dele tlg e o label!
Reply
#5

Acho que e um actor ne? um acto com a anim fall, e o label
Reply
#6

jб com atores eu nгo consigo te responder! mбs se vocк dб uma procurada acho que vocк consegue!
Reply
#7

Tente criar um actor no mesmo local que o playerid morreu com animaзгo morto, setado a mesma skin que o playerid que foi morto e setado um timer a um tempo destruir o actor, acredito que seja isso.
Reply
#8

Tentei lhe ajudar com um simples cуdigo que bolei aqui na hora, й basicamente isso. Sу adaptar, boa sorte pequeno gafanhoto.

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
           new CorpseActor; // Cria a variбvel para armazenar o actor
           new CorpseSkin; // Cria a variбvel para armazenar a skin
           CorpseSkin = GetPlayerSkin(playerid); // Geta a skin e armazena na variбvel
           new Float:CorpsePos[4]; // Cria as variбveis para armazenar as posiзхes x, y, z e facing angle (rotaзгo)
	   GetPlayerPos(playerid, CorpsePos[0], CorpsePos[1], CorpsePos[2]); // Geta as posiзхes x, y,z e armazena nas variбveis
           GetPlayerFacingAngle(playerid, CorpsePos[3]); // Geta a posiзгo facing angle (rotaзгo) e armazena na variбvel
           new CorpseVW; // Cria a variбvel para armazenar o virtual world
           CorpseVW = GetPlayerVirtualWorld(playerid); // Geta o virtual world e armazena na variбvel.

           CorpseActor = CreateActor(CorpseSkin, CorpsePos[0], CorpsePos[1], CorpsePos[2], CorpsePos[3]); // Seta a skin e as posiзхes (x, y, z e facing angle) do actor igual ao do playerid
           SetActorVirtualWorld(CorpseActor, VW); // Seta o VW do actor igual ao do playerid
           SetActorInvulnerable(CorpseActor, true); // Seta o actor invunerбvel
           ApplyActorAnimation(CorpseActor, "PARACHUTE", "FALL_skyDive_DIE", 4.1, 0, 0, 0, 1, 0); // Aplica a animaзгo de caнdo ao actor

           return true; // Й o mesmo que "return 1"
}
Reply
#9

Ai sу criar um time para retirar o time nй!
Mas tipo se eu coloca animaзгo no actor, e algum player bate nele, ele vai levantar?, tipo tem como maa o actor nao?

E no caso teria que criar o actor com array, pq tipo se eu usar o settimer, pra destruir vai destruir todos com essa variavel.
Reply
#10

Quote:
Originally Posted by ThiagoMikael
Посмотреть сообщение
Ai sу criar um time para retirar o time nй!
Mas tipo se eu coloca animaзгo no actor, e algum player bate nele, ele vai levantar?, tipo tem como maa o actor nao?

E no caso teria que criar o actor com array, pq tipo se eu usar o settimer, pra destruir vai destruir todos com essa variavel.
Nгo levanta nгo, ele fica sempre com a animaзгo. E nгo, nгo tem como matar ele ou ferir pois setamos ele invulnerбvel, lembra? Isso mesmo, crie uma array para salvar todos os dados. Por exemplo:

Код:
#define MAX_CORPSES (MAX_PLAYERS + 1)

enum corpseInfo
{
	CorpseActor,
	CorpseSkin,
	Float:CorpsePosX,
	Float:CorpsePosY,
	Float:CorpsePosZ,
	Float:CorpseRot,
	CorpseVW,
	CorpseInt
};
new CorpseInfo[MAX_CORPSES][corpseInfo];
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)