Jump to content
×
×
  • Create New...
  • 0

Pv max après un kill


VorGam

Question

Bonjour à vous, 

 

Je viens vous demander de l'aide car j'aimerais appliquer sur ma quête en lua qu'on ma fais sur un partage sur FE mais j'ai pas eu de suite et j'aimerais qu'on m'aide car je n'y arrive pas. Voilà j'aimerais qu'on modifie ma quête qui redonne les pv au max après une téléportation ou un reconnexion, se que je voudrais c'est que après un kill la personne retrouve ses pv au max est ce que se serais possible ?

 

Voici la quête: 

 

quest hp begin
   state start begin
       when login begin
           affect.add_collect(apply.HP_REGEN, 500000, 5)
           affect.add_collect(apply.SP_REGEN, 500000, 5)
       end
   end
end

 

En espérant avoir une réponse :)  merci.

Link to comment
  • Answers 10
  • Created
  • Last Reply

Top Posters For This Question

10 answers to this question

Recommended Posts

  • 0
  • Retraité

Le plus simple est de modifier le fichier cmd_general.cpp

Il faut remplacer :

switch (subcmd)
{
	case SCMD_RESTART_TOWN:
		sys_log(0, "do_restart: restart town");
		PIXEL_POSITION pos;

		if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))
			ch->WarpSet(pos.x, pos.y);
		else
			ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));

		ch->PointChange(POINT_HP, 50 - ch->GetHP());
		ch->DeathPenalty(1);
		break;

	case SCMD_RESTART_HERE:
		sys_log(0, "do_restart: restart here");
		ch->RestartAtSamePos();
		//ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
		ch->PointChange(POINT_HP, 50 - ch->GetHP());
		ch->DeathPenalty(0);
		ch->ReviveInvisible(5);
		break;
}

 

par :

switch (subcmd)
{
	case SCMD_RESTART_TOWN:
		sys_log(0, "do_restart: restart town");
		PIXEL_POSITION pos;

		if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))
			ch->WarpSet(pos.x, pos.y);
		else
			ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));

		ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
		ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
		ch->DeathPenalty(1);
		break;

	case SCMD_RESTART_HERE:
		sys_log(0, "do_restart: restart here");
		ch->RestartAtSamePos();
		//ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
		ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
		ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
		ch->DeathPenalty(0);
		ch->ReviveInvisible(5);
		break;
}

Link to comment
Guest
This topic is now closed to further replies.


Important Information

Terms of Use / Privacy Policy / Guidelines / 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.