Ïðåäëàãàþ äåëèòüñÿ âñåì ÷åãî äîñòèãíåì ÿ íå æàäíûé
, ïîýòîìó íà÷íó ïåðâûì. Ìîæåò ýòî êîìó-íèáóäü áóäåò èíòåðåñíî
ß êîðî÷å ìîäèôèöèðîâàë ñêðèïò MobRandomWalk (êîòîðûé íàïèñàë Roach 31/10/03), ÷òîáû ìîáû íå òîëüêî õîäèëè, íî è íàïàäàëè íà èãðîêà, ïðè÷åì åñëè ðÿäîì ñ èãðîêîì íàõîäÿòüñÿ íåñêîëüêî ìîáîâ, òî âñå îíè ïîáóãóò åãî àòàêîâàòü. Åäèíñòâåííûé íåäîñòàòîê ýòîãî ñêðèïòà â òîì, ÷òî ìîíñòðû ïîñëå óáèéñòâà ñòîÿò íàä åãî òðóïîì è íå óõîäÿò, à ìîæåò ýòî è íå íåäîñòàòîê
. ß ïîïûòàþñü çàêà÷àòü åãî íà õðàíèëèùå ñêðèïòîâ, ÷òîáû ìîæíî áûëî ñêà÷àòü, à òàê ÿ òàì èçìåíèë ôóíêöèþ:
protected void CheckForPlayers(object sender, ElapsedEventArgs args)
íà :
-----------------------------------------------------------------------------
protected void CheckForPlayers(object sender, ElapsedEventArgs args)
{
foreach(GameClient client in WorldMgr.GetAllPlayingClients())
{
//Starts movement NPC.
foreach(DOL.GS.Scripts.MobRandomWalk mob in WorldMgr.GetNPCsCloseToObject (client.Player, WorldMgr.VISIBILITY_DISTANCE+500))
{
if (mob.IsType(typeof(DOL.GS.Scripts.MobRandomWalk)))
{
mob.StartWalk();
}
}
//If NPC is too close, NPC do attack the player (One or in group).
foreach(DOL.GS.Scripts.MobRandomWalk mob in WorldMgr.GetNPCsCloseToObject (client.Player, m_groupradius))
{
if (mob.IsType(typeof(DOL.GS.Scripts.MobRandomWalk)))
{
mob.StartMeleeAttack(client.Player);
}
}
}
}
----------------------------------------------------------------------------
public ushort m_groupradius=500;
Ýòà ïåðåìåíàÿ çàäàåò ðàäèóñ ïðè ïîïàäàíèè â êîòîðûé ìîíñòð íà÷èíàåò àòàêîâàòü èãðîêà, äóìàþ ðàçóìíûé äèàïàçîí ýòî 100-1000