Hello,
a frind and i script a very nice hunger Script for Trinity. The script draws from every 2 hours, 10 HP, but you can change this in the Script.
But you most set the HP.Reg on 0 for the Script.
--The text in german--[spoiler:3p7rkjpr]Hallo zusammen,
Ein freund und ich haben zusammen einen kleinen Script geschrieben der den Hunger im Rollenspiel da stellen sollte. Der Script ist zwar nicht perfekt aber trozdem etwas. Er zieht jeden Spieler alle 2 Stunden 10 HP ab und da das HP sich nicht regeneriert müssen die Spieler in etwas essen um ihr HP wiederherzustellen.
Wenn ihr euch fragt wieso es nur 10 HP sind, auf unsern Server haben alle spieler nur 180 HP das bedeutet der Char überlebt 32 Stunden ohne Essen danach stirbt er an verhungerung.
Der Script tickt nur wenn der Char online und wenn dieser Reloggt oder ähnliches startet er nicht von neu sondern fängt dort wieder an wo er war. Aber wenn der Server restartet werden leider alle Timer zurück gesetzt.
(Falls jemand mag kann er meinen Deutschen Text vielleicht ins Englische übersetzen. Da mein Englisch so schlecht ist das ich nicht alles selbst übersetzen kann >.<)[/spoiler:3p7rkjpr]
Hi folks,
a friend of mine and me wrote together a little script which should imitate apetite in roleplaying.
The script isn't perfect but nonetheless worth something.
It reduces the player's health for 10HP every 2 hours, and as the HP doesn't regenerate itself, the player eventually has to eat something.
If you ask yourself why it is only 10 HP: on our servers, players have only 180 HP what means that the player survives 32 hours without eating,after that time he dies on starving.
The script is only active when the Character is online, if he reloggs or sth. like that, the script doesn't start counting anew but continues where it stopped.
If the server restarts , all timer get sadly resetted.
[center:3p7rkjpr]
worldserver.conf[/center:3p7rkjpr]
Find:
Rate.Health = 1
Replace it with:
Rate.Health = 0
[center:3p7rkjpr]
Word.cpp[/center:3p7rkjpr]
m_timers[WUPDATE_CORPSES].SetInterval(20 * MINUTE * IN_MILLISECONDS);
//erase corpses every 20 minutes
m_timers[WUPDATE_CLEANDB].SetInterval(m_int_configs[CONFIG_LOGDB_CLEARINTERVAL]*MINUTE*IN_MILLISECONDS);
// clean logs table every 14 days by default
m_timers[WUPDATE_AUTOBROADCAST].SetInterval(getIntConfig(CONFIG_AUTOBROADCAST_INTERVAL));
+ m_timers[WUPDATE_DAMAGEPLAYER].SetInterval(2 * HOUR * IN_MILLISECONDS);
m_timers[WUPDATE_DELETECHARS].SetInterval(DAY*IN_MILLISECONDS); // check for chars to delete every day
LoginDatabase.Execute(stmt);
}
+ if (m_timers[WUPDATE_DAMAGEPLAYER].Passed())
+ {
+ for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
+ {
+ Unit* target = itr->second->GetPlayer();
+ target->DealDamage(target, 10);
+ }
+ m_timers[WUPDATE_DAMAGEPLAYER].Reset();
+ }
/// <li> Clean logs table
[center:3p7rkjpr]
Word.h[/center:3p7rkjpr]
WUPDATE_MAILBOXQUEUE,
WUPDATE_DELETECHARS,
WUPDATE_PINGDB,
+ WUPDATE_DAMAGEPLAYER,
WUPDATE_COUNT