Thread: Q&A Thread
View Single Post
  #30  
Old 01-15-2019, 07:28 PM
Ydiss
Fire Beetle
 
Join Date: Dec 2009
Posts: 6
Default

Quote:
Originally Posted by Almusious View Post
Code:
https://github.com/EQEmu/Server/blob/0ad43977bf94e3a2ca83966f7fc9ba5592bb2a54/zone/npc.cpp#L2307
Code:
quest::modifynpcstat("hp_regen",xxx);
or

Code:
$npc->ModifyNPCStat("hp_regen",xxx);
Sorry, I just re-read what you had written. You wish to know how to "get". I too cannot find something in place for that, but:

Code:
sub PrepareEntityVariables
{
	my @zone_npcs = $entity_list->GetNPCList();
	my $dbh = plugin::LoadMysql();
	foreach $individual_npc (@zone_npcs)
	{
		if (not $individual_npc->GetEntityVariable("regenset"))
		{
			my $sth = $dbh->prepare("
									SELECT `hp_regen_rate`, `mana_regen_rate`
									FROM npc_types
									WHERE (`id` = ?) LIMIT 1
									");
			$sth->bind_param(1,$individual_npc->GetNPCType());
			$sth->execute();
			@row = $sth->fetchrow_array();
			$individual_npc->SetEntityVariable("hpregen", $row[0]);
			$individual_npc->SetEntityVariable("manaregen", $row[1]);
			$individual_npc->SetEntityVariable("regenset",1);
		}
	}
}
Try the above, it may have a syntax error or two, I'm not in a position to compile it, but should give you an idea just the same. The reason for actually setting an entity variable of "regenset" is in the case of either hpregen or manaregen equaling zero (legitimately).
Thanks, that's really helpful. Yes, I'd need to check for zero anyway.

Will see if I can get it to work.
Reply With Quote