• 0
evil3

ajuda
Carta senhor dos mortos

Pergunta

Olá, estou com um problema.
Estava testando a carta senhor dos mortos nos player's e ela não funciona.

Porem eu diminuir a VIT do personagem que estava levando o DANO do Efeito da Carta e ela funcionou .

O que quero explicar é que .....

Quanto + vitalidade o player tem o efeito da carta senhor dos mortos não funciona!
Quanto - vitalidade o player tem a carta senhor dos mortos funciona!

A onde posso alterar isso? quero que a carta senhor dos mortos faça efeito no player pois meu servidor é 300/120 e o status MÁXIMO vai até 280

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 respostass a esta questão

  • 0

Cara isso ai é dos atributos mesmo, nada a ver com a carta em si, que eu me lembre vit da resistencia a envenenamento e atordoar... os outros efeitos da carta tipo coma ainda devem funcionar mesmo com vit 280. Infelizmente sou novo aqui e ainda não sei aonde se altera essas coisas mas boa sorte ai =X

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
22 minutos atrás, GuruGuru disse:

Cara isso ai é dos atributos mesmo, nada a ver com a carta em si, que eu me lembre vit da resistencia a envenenamento e atordoar... os outros efeitos da carta tipo coma ainda devem funcionar mesmo com vit 280. Infelizmente sou novo aqui e ainda não sei aonde se altera essas coisas mas boa sorte ai =X

tlgd, psé fica ruim pq tipo qual quer cara vai ficar IMUNE a isso :/

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Deixa eu ver se eu entendi, você quer deixar os efeitos(negativos) só sejam anulado por cartas e não pelo calculo dos status ?

 

Se for, vá em "src/map/status.c" procuro por " // Protects against status effects ".
E estará assim :

Spoiler



		// Protects against status effects
		switch (type) {
			case SC_POISON:
			case SC_BLIND:
			case SC_FREEZE:
			case SC_STONE:
			case SC_STUN:
			case SC_SLEEP:
			case SC_BLOODING:
			case SC_CURSE:
			case SC_CONFUSION:
			case SC_ILLUSION:
			case SC_SILENCE:
			case SC_BURNING:
			case SC_COLD:
			case SC_FROSTMISTY:
			case SC_DEEP_SLEEP:
			case SC_FEAR:
			case SC_MANDRAGORA:
			case SC__CHAOS:
				return 0;
		}
	}

	switch (type) {
	case SC_STUN:
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_POISON:
	case SC_DPOISON:
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		if (sd) {
			//For players: 60000 - 450*vit - 100*luk
			tick_def = st->vit*75;
			tick_def2 = st->luk*100;
		} else {
			//For monsters: 30000 - 200*vit
			tick>>=1;
			tick_def = (st->vit*200)/3;
		}
		break;
	case SC_SILENCE:
#ifdef RENEWAL
		sc_def = st->int_*100;
		sc_def2 = (st->vit + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#else
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#endif
		tick_def2 = st->luk * 10;
		break;
	case SC_BLOODING:
#ifdef RENEWAL
		sc_def = st->agi*100;
#else
		sc_def = st->vit*100;
#endif
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_SLEEP:
#ifdef RENEWAL
		sc_def = st->agi*100;
		sc_def2 = (st->int_ + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#else
		sc_def = st->int_*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#endif
		tick_def2 = st->luk*10;
		break;
	case SC_DEEP_SLEEP:
		sc_def = bst->int_*50;
		tick_def = 0; // Linear reduction instead
		tick_def2 = bst->int_ * 50 + SCDEF_LVL_CAP(bl, 150) * 50; // kRO balance update lists this formula
		break;
	case SC_DEC_AGI:
	case SC_ADORAMUS:
		if (sd) tick >>= 1; //Half duration for players.
		sc_def = st->mdef*100;
#ifndef RENEWAL
		sc_def2 = st->luk*10;
#endif
		tick_def = 0; //No duration reduction
		break;
	case SC_STONE:
		sc_def = st->mdef*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def = 0; //No duration reduction
		break;
	case SC_FREEZE:
		sc_def = st->mdef*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk
		break;
	case SC_CURSE:
		// Special property: immunity when luk is zero
		if (st->luk == 0)
			return 0;
		sc_def = st->luk*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(NULL, src, 99, 10); // Curse only has a level penalty and no resistance
		tick_def = st->vit*100;
		tick_def2 = st->luk*10;
		break;
	case SC_BLIND:
		sc_def = (st->vit + st->int_)*50;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_CONFUSION:
		sc_def = (st->str + st->int_)*50;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_ANKLESNARE:
		if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
			tick /= 5;
		sc_def = st->agi*50;
		break;


 

Pronto ai são os calculos de status que anularam os mesmos.

Editado por Psyz
complemento da resposta.
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Em 10/10/2017 at 16:26, Psyz disse:

Deixa eu ver se eu entendi, você quer deixar os efeitos(negativos) só sejam anulado por cartas e não pelo calculo dos status ?

 

Se for, vá em "src/map/status.c" procuro por " // Protects against status effects ".
E estará assim :

  Mostrar conteúdo oculto

 



		// Protects against status effects
		switch (type) {
			case SC_POISON:
			case SC_BLIND:
			case SC_FREEZE:
			case SC_STONE:
			case SC_STUN:
			case SC_SLEEP:
			case SC_BLOODING:
			case SC_CURSE:
			case SC_CONFUSION:
			case SC_ILLUSION:
			case SC_SILENCE:
			case SC_BURNING:
			case SC_COLD:
			case SC_FROSTMISTY:
			case SC_DEEP_SLEEP:
			case SC_FEAR:
			case SC_MANDRAGORA:
			case SC__CHAOS:
				return 0;
		}
	}

	switch (type) {
	case SC_STUN:
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_POISON:
	case SC_DPOISON:
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		if (sd) {
			//For players: 60000 - 450*vit - 100*luk
			tick_def = st->vit*75;
			tick_def2 = st->luk*100;
		} else {
			//For monsters: 30000 - 200*vit
			tick>>=1;
			tick_def = (st->vit*200)/3;
		}
		break;
	case SC_SILENCE:
#ifdef RENEWAL
		sc_def = st->int_*100;
		sc_def2 = (st->vit + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#else
		sc_def = st->vit*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#endif
		tick_def2 = st->luk * 10;
		break;
	case SC_BLOODING:
#ifdef RENEWAL
		sc_def = st->agi*100;
#else
		sc_def = st->vit*100;
#endif
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_SLEEP:
#ifdef RENEWAL
		sc_def = st->agi*100;
		sc_def2 = (st->int_ + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#else
		sc_def = st->int_*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#endif
		tick_def2 = st->luk*10;
		break;
	case SC_DEEP_SLEEP:
		sc_def = bst->int_*50;
		tick_def = 0; // Linear reduction instead
		tick_def2 = bst->int_ * 50 + SCDEF_LVL_CAP(bl, 150) * 50; // kRO balance update lists this formula
		break;
	case SC_DEC_AGI:
	case SC_ADORAMUS:
		if (sd) tick >>= 1; //Half duration for players.
		sc_def = st->mdef*100;
#ifndef RENEWAL
		sc_def2 = st->luk*10;
#endif
		tick_def = 0; //No duration reduction
		break;
	case SC_STONE:
		sc_def = st->mdef*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def = 0; //No duration reduction
		break;
	case SC_FREEZE:
		sc_def = st->mdef*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk
		break;
	case SC_CURSE:
		// Special property: immunity when luk is zero
		if (st->luk == 0)
			return 0;
		sc_def = st->luk*100;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(NULL, src, 99, 10); // Curse only has a level penalty and no resistance
		tick_def = st->vit*100;
		tick_def2 = st->luk*10;
		break;
	case SC_BLIND:
		sc_def = (st->vit + st->int_)*50;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_CONFUSION:
		sc_def = (st->str + st->int_)*50;
		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
		tick_def2 = st->luk*10;
		break;
	case SC_ANKLESNARE:
		if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
			tick /= 5;
		sc_def = st->agi*50;
		break;

 

 

 

Pronto ai são os calculos de status que anularam os mesmos.

Isso, só não faço ideia de como mexer nisso :/ ...

Sou péssimo na Source !

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Cara, eu tava procurando um arquivo aqui, acabei encontrando outro e lembrei desse tópico...

não é tão manipulavel quanto o que o Psyz passou mas talvez ajude

conf/battle/status.conf

Spoiler

// Ajuste para a taxa natural de resistência para mudanças de status.
// Se 50, o status defesa é reduzido pela metade, e você precisará do dobro de stats para bloqueá-los
// (por exemplo: 200 vit para bloquear completamente atordoar ao invés de 100)
pc_status_def_rate: 33
mob_status_def_rate: 100

// Resistências máxima às mudanças de status. (100 = 100%)
// NOTA: Cartas e equipamentos podem ultrapassar esse limite, então isto só se aplica a resistência natural.
pc_max_status_def: 300
mob_max_status_def: 100

O problema é que tu não vai conseguir alterar apenas um ou outro status especifico mas se você não se importa de alterar todos de uma vez talvez isso parece bem útil.

0

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