ФЭНДОМ


Создание моба.

Нам нужно создать папку NPC в папке *Название мода*. Создаём там файл *Имя моба*.ini

Туда пишем такой код:


[Stats]
npcSlots=1
width=18
height=40 
type=22
aiStyle=7
timeLeft=750
damage=10 
defense=15
soundHit=1
soundKilled=1
lifeMax=250
scale=1
townNPC=True 
friendly=True
[Buff Immunities]
Confused=True

Для того чтобы наш моб стал врагом, нам нужно изменить этот код, на такой код:

[Stats]
npcSlots=1
frameCount=16
animationType=28
width=18
height=40
type=-1
aiStyle=3
timeLeft=750
damage=10
defense=15
soundHit=1
soundKilled=1
lifeMax=250
scale=1
value=1000
[Drops]


Далее нам нужно создать текстуру.

Создаём файл "Имя моба*.png В анимации нам нужно 16 кадров размерами каждый 18 на 40. В каждом кадре мы что-то должны поменять. Допустим положение ног.

Всё! Наш моб готов. Но нам нужно разобраться где он будет появляться!

Для того чтобы моб спавнился при кровавой луне создоём файл "ИмяМоба.cs"

И пишем туда

public bool SpawnNPC(int x, int y, int playerID)
{
if (Main.bloodMoon)
{
  if (y < Main.rockLayer + 75 && y > (int)(Main.topWorld + 100f) && !Main.dayTime && !Main.player[playerID].zoneMeteor && Main.rand.Next(10) == 0)
  {
   return true;
  }
  else return false;
}
else return false;
}

Для того чтобы моб спавнился в Хард Моде, создаём "НазванияМоба.cs"

И пишем туда

#region Spawn
public static bool SpawnNPC(int x, int y, int playerID)
{
    if (!Main.hardMode)
    {
        if (Main.player[playerID].position.X < ((Main.worldSurface * 30.0)) && Main.bloodMoon && Main.rand.Next(500)==1) return true;
        else if (Main.player[playerID].position.X > ((Main.worldSurface * 185.0)) && Main.bloodMoon && Main.rand.Next(500)==1) return true;
        else if (Main.player[playerID].townNPCs <= 0f && Main.player[playerID].zoneDungeon && Main.rand.Next(800)==1) return true;
        return false;
    }
    else if (Main.hardMode)
    {
        if (Main.player[playerID].position.X < ((Main.worldSurface * 30.0)) && Main.bloodMoon && Main.rand.Next(5)==1) return true;
        else if (Main.player[playerID].position.X > ((Main.worldSurface * 185.0)) && Main.bloodMoon && Main.rand.Next(5)==1) return true;
        else if (Main.player[playerID].townNPCs <= 0f && Main.player[playerID].zoneDungeon && Main.rand.Next(30)==1) return true;
        return false;
    }
    return false;
}
#endregion

Для того чтобы моб спавнился в данже, создаём "НазванияМоба.cs"

И пишем туда

public static bool SpawnNPC(int x, int y, int playerID) {
    if (Main.player[playerID].zoneDungeon)
    {
       if( Main.rand.Next(15)==1) return true;
    return false;
    }
return false;
}

© Lagoo