Ir para conteúdo
  • Anúncios

    • AiroN

      Anuncie no L2JBrasil

      Deseja anunciar aqui no fórum, no Top L2JBrasil ou em nossa página no Facebook? Confira: www.l2jbrasil.com/anunciar
    • Grundor

      Método de login alterado   08-10-2017

      Com a atualização do fórum para versão  IPB 4.2 não é mais possível fazer login usando username, ao invés disso você deve usar e-mail ou seu Display Name (nome como é exibido no forum).      
    • AiroN

      Tenha seu clube formalmente no L2JBrasil!   18-10-2017

      Você tem amigos que estão sempre juntos contigo na alegria e na tristeza, na saúde e na doença, em todos os desenvolvimentos de suas vida, no pvp, nas quests? rsrs   Monte seu clube formalmente na L2J Brasil!
      Criar um clube é muito fácil, basta você entrar nesse tópico e se interar do assunto:    Dominem o mundo!


      Atenciosamente,
      Administração L2jBrasil.
  • 2
Entre para seguir isso  
weeken

[INTERFACE] - Damage text como o classic

Pergunta

Oi boa tarde pessoal, queria saber si alguem tem algum jeito ou conhecemento pra adaptar o texto do damage como o cliente classic pra a cronica IL.

To falando dessa aqui : 

 

 

Só preciso da function de damage na tela, espero alguem possa me ajudar. Desde já obrigado.

@Dwbryel @Onã @DemonikaBR-Marcos @Grundor @MrRees

Editado por weeken
  • Gostei 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 respostass a esta questão

Posts recomendados

  • 0

A L2scripts Já possui esse sistema no HIGH FIVE com system privada não sei ao certo fui saber disso tem menos de  2 semanas!! mas nunca menosprezei o fato de que alguém ja saberia fazer isso! desde o lançamento do GODS que venho com essa ideia acho que no mesmo dia em que foi lançado eu pense io quão seria esplêndido ter isso em versões como C3 C4 C5 iNTERLUDE  HELLBOUND ATÉEEEEE HIGH FIVE!

dá A L2scripts  =

 

mas até agora os únicos trabalhos com esse tipo de façanha é esse desse video se não me engano é do mesmo do video  = asuki.tex 

 

FALEI COM ELE POR SKYPE: e ele disse que não vende nem pretende vender porque ainda esta sob test ou seja ele esta testando para deixar o mais 100% possível. 

 

pelo que ele disse aparenta ser algo privado destinado a alguém em especial!!

 

contatei o @Grundor para fazer um post sobre essa rev da l2scripts perguntando sobre essa mesma duvida!!

 

enfim exitem varios tipos hehe

as únicas que sei que existe são? :

1 aquela "básica" porem super TOP do Elfen&Neophron = aqui   porem paga $$$: CUSTA DINHEIRO EURO

2 essa que eu achei tbm é muito boa com o básico também em questão de damage text screen = aqui

3 e a terceira que no meu caso eu acho a mais interessante que é essa que citei logo a cima = aqui

entre outras varias...

 

respondendo seu pedido: acho que já tem gente trabalhando em cima de criar algo assim e disponibilizar!! o cara que citei que é o mesmo do video que vc compartilhou ele mesmo aparenta ser um cara lgl do tipo que faz coisa por reconhecimento sem nada em troca! creio que para 2018 vira muita coisa parecida com isso!! 

mas se caso vc queira antecipar e obter antes  só comprar o que não é barato!! pois sou  pobre kk.

 

só nos resta aguardar e ver um bom cidadão compartilhar  kkkk tomara que tenhamos esse tipo de share seria muito massa termos servidores de versão antigas com esse tipo de layout  seria lindíssimo!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

-- Update --

Achei a classe da cronica Ertheia que tem essa function, o arquivo se chama DamageText.uc e tb leva functions de GfxDialog mas na hora de compilar ele da error, deixo aqui o code da function de Damage clear

//------------------------------------------------------------------------------------------------------------------------
//
//        : DamageText - SCALEFORM UI - 
//
//------------------------------------------------------------------------------------------------------------------------
class DamageText extends GFxUIScript;

const FLASH_WIDTH  = 800;
const FLASH_HEIGHT = 600;

var int currentScreenWidth, currentScreenHeight;

enum EDamageTextType
{
	NOMAKE,                 // 
	NormalAttack,           //
	ConsecutiveAttack,      //
	Critical,               //
	OverHit,                //
	RecoverHP,              //
	RecoverMP,              //
	GetSP,                  //
	GetExp,                 //
	MagicDefiance,          //
	ShieldGuard,            //
	Dodge,                  //
	Immune,                 //
	SkillHit,               //
	Etc                     //
};

function OnRegisterEvent()
{
	//
	RegisterEvent(EV_DamageTextCreate);
	RegisterEvent(EV_DamageTextUpdate);

	//
	// RegisterEvent(EV_SystemMessage);		
}

function OnLoad()
{
	registerState( "DamageText", "GamingState" );
	// class'UIAPI_WINDOW'.static.SetAnchor( "", "DamageText", "TopLeft", "BottomLeft", 0, 0 );
	SetAnchor("", EAnchorPointType.ANCHORPOINT_TopLeft, EAnchorPointType.ANCHORPOINT_TopLeft, 0, 0);
}

function OnShow()
{
	// Debug("DamageText!!!! onShow");
}

function OnFlashLoaded()
{
	RegisterDelegateHandler(EDHandler_DamageText);
	SetAlwaysFullAlpha(true);
	IgnoreUIEvent(true);
}

function OnHide()
{
}

function OnCallUCLogic( int logicID, string param )
{
}

// 5370
// clipName=111 unitType=1 valueType=1 value=500000 x=400 y=400 
// clipName=111 unitType=2 bCritical=1 valueType=1 value=500000 x=400 y=400 
// clipName=111 unitType=2 bCritical=0 valueType=1 value=500000 x=400 y=400  
// clipName=111 unitType=2 bImmune bCritical=0 value=500000 x=400 y=400  
//

function OnEvent(int Event_ID, string param)
{		
	local string clipName;

	local int    unitType;	
	local int    xLoc, yLoc;

	local int    valueType, value, bCritical, bOverHit, 
				 bMagicDefense, bShieldDefense, bMiss, bContinuousAttack, bImmune, bSkillHit;

	local array<GFxValue> args;

	local GFxValue invokeResult;

	//
	local int nID;
	
	// debug("ConsecutiveAttack: " @ EDamageTextType.ConsecutiveAttack);

	//
	GetCurrentResolution (currentScreenWidth, currentScreenHeight);	

	//
	if ( Event_ID == EV_DamageTextCreate)
	{	
		// Debug(" EV DamageText" @ Event_ID);
		// Debug(" Param : " @ param);

		ShowWindow();		
		
		//
		// ParseString(param, "clipName"   , clipName);
		ParseInt(param, "clipName"   , nID);
		clipName = string(nID);


		//1 pc, 2 npc(target), 3 pet	//
		ParseInt(param, "unitType"   , unitType);

		ParseInt(param, "valueType"        , valueType);
		ParseInt(param, "value"            , value);
		ParseInt(param, "bCritical"        , bCritical);
		ParseInt(param, "bOverHit"         , bOverHit);
		ParseInt(param, "bMagicDefense"    , bMagicDefense);
		ParseInt(param, "bShieldDefense"   , bShieldDefense);
		ParseInt(param, "bMiss"            , bMiss);
		ParseInt(param, "bContinuousAttack", bContinuousAttack);
		
		//
		ParseInt(param, "bImmune"          , bImmune);

		//
		ParseInt(param, "bSkillHit", bSkillHit);


		//
		ParseInt(param, "x"         , xLoc);
		ParseInt(param, "y"         , yLoc);

		//
		conditionalDamageText(clipName, unitType, xLoc, yLoc, 
							  valueType, value, bCritical, bOverHit, bMagicDefense, bShieldDefense, bMiss, bContinuousAttack, bImmune, bSkillHit);

		// Debug("Damage Text param: " @ param);

	}
	else if  ( Event_ID == EV_DamageTextUpdate )	
	{
		// Debug(" EV DamageText" @ Event_ID);
		// Debug(" Param : " @ param);
		// case 2 : updateMotion(data.clipName, data.x, data.y); break; 
		ShowWindow();
		//
		// 
		// ParseString(param, "clipName"   , clipName);
		ParseInt(param, "clipName"   , nID);
		
		clipName = string(nID);

		//
		ParseInt(param, "x"  , xLoc);
		ParseInt(param, "y"  , yLoc);

		//
		AllocGFxValues(args, 2);		
		AllocGFxValue(invokeResult);

		//
		args[0].SetInt(2);
			
		CreateObject(args[1]);
					
		args[1].SetMemberString("clipName", clipName);

		// args[1].SetMemberInt    ("x", xLoc - ((currentScreenWidth - FLASH_WIDTH) / 2));
		// args[1].SetMemberInt    ("y", yLoc - ((currentScreenHeight - FLASH_HEIGHT) / 2));

		args[1].SetMemberInt    ("x", xLoc);
		args[1].SetMemberInt    ("y", yLoc);

		Invoke("_root.onEvent", args, invokeResult);

		DeallocGFxValue(invokeResult);
		DeallocGFxValues(args);
	}
}

/*
// 
// 
// 
// 
// 
*/
function makeDamageText(string clipName, int unitType, int textType, int xLoc, int yLoc, string messageStr)
{
	local array<GFxValue> args;
	local GFxValue invokeResult;

	if (textType != -1)
	{
		// 
		AllocGFxValues(args, 2);		
		AllocGFxValue(invokeResult);

		// 
		args[0].SetInt(1);
			
		CreateObject(args[1]);
					
		args[1].SetMemberString("clipName", clipName);
		args[1].SetMemberInt   ("unitType", unitType);
		args[1].SetMemberInt   ("textType", textType);

		args[1].SetMemberInt    ("x", xLoc);
		args[1].SetMemberInt    ("y", yLoc);

		args[1].SetMemberString("messageStr", messageStr);

		Invoke("_root.onEvent", args, invokeResult);

		DeallocGFxValue(invokeResult);
		DeallocGFxValues(args);
	}
}

// 
//
// 
// 
// 
function conditionalDamageText(string clipName, int unitType, int xLoc, int yLoc, 
							   int valueType, int value, int bCritical, int bOverHit, int bMagicDefense, 
							   int bShieldDefense, int bMiss, int bContinuousAttack, int bImmune, int bSkillHit)
{
	local int damageTextType;

	damageTextType = -1;

	// ValueType  
	// 0:None, 1:sp, 2:exp, 3:hp, 4:mp

	// hp , + 
	if (valueType == 3)
	{		
		if (value >= 0)
		{
			//
			damageTextType = EDamageTextType.RecoverHP; // 5
		}
		else
		{
			//
			damageTextType = EDamageTextType.NormalAttack; // 1
		}	
		
		//
		if (value != 0) makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value));
	}
	//
	else if (valueType == 4)
	{
		damageTextType = EDamageTextType.RecoverMP; // 6;
	}
	//
	else if (valueType == 1)
	{
		damageTextType = EDamageTextType.GetSP; // 7
	}
	//
	else if (valueType == 2)
	{
		damageTextType = EDamageTextType.GetExp;  // 8			
	}

	//
	if (value > 0 && valueType != 3) makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );


	//

	//
	if (bContinuousAttack == 1)
	{
		damageTextType = EDamageTextType.ConsecutiveAttack;
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bOverHit == 1)
	{
		damageTextType = EDamageTextType.OverHit;
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bCritical == 1)
	{
		damageTextType = EDamageTextType.Critical;
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bMagicDefense == 1)
	{
		damageTextType = EDamageTextType.MagicDefiance; // 9;
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bShieldDefense == 1)
	{
		damageTextType = EDamageTextType.ShieldGuard; // 10;
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bMiss == 1)
	{
		damageTextType = EDamageTextType.Dodge; // 11		
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bImmune == 1)
	{
		damageTextType = EDamageTextType.Immune; // 12
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}
	//
	if (bSkillHit != 0)
	{
		damageTextType = EDamageTextType.SkillHit; // 13
		makeDamageText(clipName, unitType, damageTextType, xLoc, yLoc, string(value) );
	}

}
defaultproperties
{
}

 

Editado por weeken

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
7 horas atrás, Brhu3 disse:

Ia ficar doara d+ no interlude

 

 

com crtz!!

 

mas já imaginou como seria explendido vc jogar c3 c4 interlude+++++++ com uma system de GODS JÁ com tudo implementado!! damage etc!!! layout etc!!

 

é o que o asuki.tex   esta fazendo mas até onde sei ele quer deixa fixo para interlude com instabilidade até HIGH FIVE! o que já é super lgl!

 

NÃO SEI n falei com ele n peguei detalhes mas foi o que ele me disse por dentro! é um excelente trabalho com crtz!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Isso é um Lineage 2 Classic, tem tudo isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

Entre para seguir isso  



     


  • Quem Está Navegando

    Nenhum usuário registrado visualizando esta página.

×