Witam wiem że było dużo tematów związanych z serwerem do gothic 2 lecz u mnie jest inna sytuacja mianowicie mam serwer mam świat tylko problem jest z tym że npc nie mogę dodać na serwer znaczy są 2 npc testowe które nic nie robia mogę ich tylko zabić i to wszystko a chciałbym zrobić serwer coop i chcę żeby wszystkie postacie stały tam gdzie powinny stać standardowo oprócz stworów ale chętnie bym się dowiedział jak dodać też stwory oraz jak zrobić by mogły one ze mną rozmawiać i miały wszystkie kwestie co w orginale. Tych 2 NPC zostało napisane w ten sposób w rozszerzeniu nut a inne rozrzeszenia nie wchodzą w grę bo serwer nie chce wystartować
local wolf = null;
local test_npc = null;
function spawnWolf()
{
spawnNpc(wolf);
setPlayerInstance(wolf, "WOLF");
setPlayerPosition(wolf, 180, -91, -1948);
setPlayerColor(wolf, 255, 0, 0);
setPlayerStrength(wolf, 200);
setPlayerHealth(wolf, 1000);
setPlayerMaxHealth(wolf, 1000);
}
local function Wolf_AI()
{
if (isPlayerDead(wolf) || isPlayerDead(heroId)) return;
local hPos = getPlayerPosition(heroId);
local wPos = getPlayerPosition(wolf);
local dist = getDistance3d(hPos.x, hPos.y, hPos.z, wPos.x, wPos.y, wPos.z);
if (dist <= 600)
{
local angle = getVectorAngle(wPos.x, wPos.z, hPos.x, hPos.z);
setPlayerAngle(wolf, angle);
if (dist <= 200)
{
playAni(wolf, "S_FISTATTACK");
hitPlayer(wolf, heroId);
}
else
playAni(wolf, "S_FISTRUNL");
}
else
playAni(wolf, "S_FISTRUN");
}
local function hitHandler(kid, pid, dmg)
{
print (kid + " " + pid + " -> " + dmg);
}
addEventHandler("onPlayerHit", hitHandler);
local function deadHandler(pid)
{
print ("Die: " + pid);
if (pid == wolf)
{
unspawnNpc(pid);
spawnWolf();
}
}
addEventHandler("onPlayerDead", deadHandler);
local function initHandler()
{
// Test NPC
test_npc = createNpc("Diego");
spawnNpc(test_npc);
setPlayerPosition(test_npc, 1310, -90, 332);
setPlayerAngle(test_npc, 270);
setPlayerColor(test_npc, 0, 0, 200);
setPlayerHealth(test_npc, 1000);
setPlayerMaxHealth(test_npc, 1000);
setPlayerVisual(test_npc, "Hum_Body_Naked0", 3, "Hum_Head_Psionic", 59);
equipArmor(test_npc, Items.id("DragenHunter_Low"));
playAni(test_npc, "S_HGUARD");
// Our pet
wolf = createNpc("Soiref");
print("Soiref id: " + wolf);
spawnWolf();
setTimer(Wolf_AI, 500, 0);
}
addEventHandler("onInit", initHandler);
oraz
local sound = null;
local sound3d = null;
local vob = null;
local npc = null;
local function initHandler()
{
// Npc
npc = createNpc("Abuyin");
spawnNpc(npc);
setPlayerPosition(npc, 500, -90, 0);
setPlayerAngle(npc, 270);
setPlayerColor(npc, 255, 255, 255);
setPlayerHealth(npc, 1000);
setPlayerMaxHealth(npc, 1000);
setPlayerVisual(npc, "Hum_Body_Naked0", 3, "Hum_Head_Psionic", 14);
equipArmor(npc, Items.id("ITAR_VLK_M"));
// Sound 2d
sound = Sound("DRG_ATTACK_02.WAV");
sound.looping = false;
sound.balance = 1.0;
sound3d = Sound3d("DIA_ABUYIN_ANDEREN_13_04.WAV");
sound3d.looping = true;
sound3d.radius = 2500;
vob = Vob("MIN_ORE_BIG_V1.3DS");
vob.setPosition(0, 0, 800);
print("Time (msec): " + sound.playingTime);
print("Time 3d (msec): " + sound3d.playingTime);
}
addEventHandler("onInit", initHandler);
local function commandHandler(cmd, params)
{
switch (cmd)
{
case "play":
sound.play();
break;
case "play3d":
sound3d.stop();
sound3d.setTargetVob(vob);
sound3d.play();
break;
case "playVoice":
sound3d.stop();
sound3d.setTargetPlayer(npc);
sound3d.play();
break;
case "volume":
sound3d.volume = 0.5;
break;
}
}
addEventHandler("onCommand", commandHandler);