Jump to content

Monster Spawn / Mobs auf Custom Map


Between

Recommended Posts


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  9
  • Reputation:   0
  • Joined:  03/27/13
  • Last Seen:  

Also wie der Titel schon sagt, würde ich gerne auf einer neu eingefügten Map die Monster Spawns bestimmen. Auf den bereits bestehenden Maps bekomme ich das anhand dieser Guides aus dem Wiki auch alles hin und es funktioniert soweit. http://rathena.org/wiki/Custom_Mobs und http://rathena.org/wiki/Permanent_Monster_Spawn

 

Aber wenn ich es auf der neu eingefügten Map versuche, erscheinen keine Monster. Wahrscheinlich könnte ich den Fehler anhand der Guides lösen aber bin wohl gerade zu blind...

 

Also bin über npc->mobs gegangen. Dann ging ich davon aus das meine map unter fields, statt dungeons fallen müsste. Aber vielleicht gibt es hier schon ein erstes Problem, dass ich meine Map da schon entweder zu fields oder dungeons zuordnen muss? Naja ich bin dann unter fields gegangen und hab dann eine neue .txt-Datei mit dem gleichen Namen der eingefügten Map erstellt und habe dort dann nach dem gleichen Muster wie in den anderen .txt-Dateien scripts mit dem gewünschten Mobs eingetragen und lediglich die map-infos an meine angepasst.

 

Hatte dann noch überlegt, ob meine map vielleicht im Moment noch unter irgendeine der bereits bestehenden .txt-Dateien wie prontera etc. fällt und ich sie einfach da irgendwo eintragen muss? Oder muss ich dieses Vorhaben gar doch in der db->mob_db umsetzen? 

 

 

Nutze, da ich einfach nur bisschen rumbastle, lediglich Beginner eAthena. Falls das irgendwie ne Rolle spielt, weil es bestimmt schon veraltet ist im Vergleich zu anderen Sachen.

post-16106-0-06648500-1414517350_thumb.png

Edited by Between
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  86
  • Topics Per Day:  0.02
  • Content Count:  591
  • Reputation:   146
  • Joined:  06/19/12
  • Last Seen:  

wen deine map ingame ist musst du letztlich nur eine txt datei erstellen ,es is vollkommen egal wo sie sich befindet bzw. sollte im npc Ordner sein z.b gehe in npc/mobs/ mache einen neuen Ordner "CustomDun" oder wie auch immer dan erstellst du dort eine txt datei mit egal welchem name z.b "Custom_Dun01.txt"

 

 

dort schreibst du hinein ,wen es mehrere sind mehrere Zeilen 

Name_der_map,0,0,0,0	monster	MobName	mobID,mob_anzahl,0,0,0

wen du dies getan hast speichern und schlissen. Dann begibst du dich in npc/scripts_monsters.conf mit Editor öffnen dort hinein kommt der Pfad der bereits erstellten txt date

npc: npc/mobs/CustomDun/Custom_Dun01.txt

und dan Server Reloaden ,hoffe das hilft dir etwas weiter 

Edited by EL Dragon
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  9
  • Reputation:   0
  • Joined:  03/27/13
  • Last Seen:  

Super danke, npc/scripts_monsters war genau der fehlende Schritt der mir noch gefehlt hatte, sodass er die unter fields, dungeons oder eben custom dungeons neu gespeicherte txt-Datei meiner map erkennen kann.

 

npc: npc/mobs/fields/Custom_Dun01.txt

 

Hat so dann alles problemlos geklappt, danke dir :)

Edited by Between
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  9
  • Reputation:   0
  • Joined:  03/27/13
  • Last Seen:  

Gibt es eine Möglichkeit mit dem spawn point script Monster nach gewissen Zeitabständen kontinuierlich spawnen zu lassen oder im Zusammenhang mit einem anderen script. Ohne das diese gekillt werden müssen?

 

Also bisher hab ich es z.B. so: Menge der Monster 20 und diese spawnen, wenn sie gekillt wurden nach 10 Sekunden wieder. Aber sie spawnen ja nur nach dem sie gekillt wurden wieder neu und überschreiten somit auch nie die Gesamtanzahl von 20 (was ja auch irgendwie klar ist, wenn ich im script nur die Menge 20 angebe). Möchte aber gerne das nach 10 Sekunden weitere 20 Monster spawnen egal, ob die anderen gekillt wurden.

 

Ich kann doch bestimmt einfach die Menge erhöhen z.B. auf 200 aber die spawnzeiten der einzelnen Mobs variieren lassen, indem beispielweise nur alle 10 Sekunden  20 Monster spawnen statt direkt alle 200?

Edited by Between
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  249
  • Reputation:   72
  • Joined:  10/20/12
  • Last Seen:  

Es gibt einen Unterschied zwischen festen Spawns und Spawns durch ein Script/NPCs.

 

Das was du machen möchtest geht leider (derzeit) nur scripttechnisch. Könnte ungefähr so aussehen:

izlude,189,115,1	script	ZombieSpawner	799,{
end;
OnInit: //Scipt wurde geladen
	initnpctimer; //Starte Timer
	end;

OnTimer10000: //Alle 10 Sekunden ausgelöst durch timer
	if( mobcount(.@map$,strnpcinfo(0)+"::OnZombieKilled") > 100 )
		end; //Bei mehr als 100 Monstern keine erneut spawnen
	//Auf .@map$ in einem bestimmten Bereich .@mobcount Zombies (mit optionalem Event) spawnen:
	areamonster .@map$,.@posX-5,.@posY-5,.@posX+5,.@posY+5,"Zombie",1015,.@mobcount,strnpcinfo(0)+"::OnZombieKilled";
	//Timer erneut starten
	initnpctimer;
	end;
OnZombieKilled:
	//Wenn ein Zombie getötet wurde mach' irgendwas lustiges
	end;
}

Viel Glück ^^

 

(Bitte beachte, dass du .@mobcount, .@map$, .@posX und .@posY selbst bestimmen musst, damit das ganze funktioniert. Z.b. durch getmapxy)

 

Edit: Falls du noch fragen hast oder damit gar nicht umgehen kannst, kannst du gerne nochmal fragen oder deinen Wunsch genauer beschreiben ;>

Edited by Jey
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  9
  • Reputation:   0
  • Joined:  03/27/13
  • Last Seen:  

ja also sieht schon sehr hilfreich aus danke, aber werde es wohl erst am Wochenende versuchen umzusetzen :) Wenn dann Fragen aufkommen, melde ich mich hier :D

Edited by Between
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  249
  • Reputation:   72
  • Joined:  10/20/12
  • Last Seen:  

Okay ^^

Link to comment
Share on other sites

  • 2 weeks later...

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  9
  • Reputation:   0
  • Joined:  03/27/13
  • Last Seen:  

Also hab es jetzt erst ausprobiert. Nach paar Anläufen hat dann aber alles wunderbar geklappt plus das man etwas für das Monster killen bekommt danke :)

 

Zu strnpcinfo hab ich jetzt aber nochmal eine Frage, weiß mehr oder weniger was es bedeutet hier durch das Wiki das es 0-4 Typen gibt etc. Aber hab jetzt im Zusammenhang mit der syntax noch nicht ganz gepeilt was strnpcinfo denn genau bewirkt bzw. welchen Sinn es hat? :S

 

Dann meine andere Frage:

 

Habe paar Items Job-Skills hinzugefügt, damit man auch gewisse Skills unabhängig von seiner Klasse nutzen kann. Dies funktioniert soweit auch. Nur hätte ich zum einem gerne das man nach der Nutzung ein Delay hat, bevor man den Skill/Item wieder nutzen kann. Und zum anderen wäre es noch perfekt, wenn das Item nach dem Benutzen nicht verschwinden würde. Dies ist aber erstmal zweitrangig.

 

Das einfachste wäre wohl einfach gewesen in der db/item_delay.txt meine items aufzuführen und das Delay zu ändern. Aber wenn ich nicht ganz blind bin finde ich das bei meinem Beginner eAthena nirgends. Hatte die item_delay.txt Datei dann einfach mal aus dem Internet in meinen db Ordner kopiert aber geht wohl nicht so einfach haha. Außerdem wollte ich es eigentlich auch am liebsten direkt in der item_db ändern.

 

 

607,Yggdrasilberry,Yggdrasil Berry,0,5000,,300,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 100,100; },{},{}

 

Hatte dann das hier gefunden:

 

 

 

607,Yggdrasilberry,Yggdrasil Berry,0,5000,,300,,,,,0xFFFFFFFF,7,2,,,,,,{ if((agitcheck() || agitcheck2()) && YggBerryLastUsed > gettimetick(2)) { dispbottom "Yggdrasil Berry cannot be spammed during WoE! There is a delay of 5 seconds between use."; getitem 607,1; } else { set YggBerryLastUsed,gettimetick(2)+5; percentheal 100,100; } },{},{}

 

Hab dies dann mehr oder weniger auf den Teil mit if YggBerryLastUsed > gettimetick (2)); gekürzt, weil es nicht nur während WoE so sein sollte aber meine Varianten dabei schienen alle nicht richtig zu sein :(

 

Sonst wurde auch noch darauf verwiesen, dass man eine callfunc nutzen könnte die man dann auch bei dem Item in der item_db hinzufügen könnte plus eben dem passenden script dazu unter npc. Aber wenn es eben wirklich irgendwie klappen würde, dass ich mit gettimetick direkt in der item_db alles regeln könnte, wäre mir das lieber :)

 

Danke bereits für alle Antworten.

 

EDIT: Da ich in Zukunft wahrscheinlich noch andere Fragen stellen werde, die alle nichts mehr mit dem Thread Titel zu tun haben, kann ich auch neue Threads eröffnen. Falls das so besser ist :S

Edited by Between
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  249
  • Reputation:   72
  • Joined:  10/20/12
  • Last Seen:  

Kein Problem ^^
 

Zu strnpcinfo hab ich jetzt aber nochmal eine Frage, weiß mehr oder weniger was es bedeutet hier durch das Wiki das es 0-4 Typen gibt etc. Aber hab jetzt im Zusammenhang mit der syntax noch nicht ganz gepeilt was strnpcinfo denn genau bewirkt bzw. welchen Sinn es hat? :S

http://ea.dj-yhn.com/index.php?c=strnpcinfo
Es gibt einfach nur den Namen des NPC's zurück. In dem Fall könntest du als Eventnamen auch "ZombieSpawner::OnZombieKilled" eintragen.
Oder auch einen beliebigen anderen NPC-Namen. Dieser Eventnamen steht dann in direkter Verbindung mit dem gespawnten Monster. Und falls dieses Stirbt wird das Event in dem angegebenen NPC-Namen unter dem jeweiligen Label ausgeführt.

OT: Ja nöchstes mal erstell' zu anderen Fragen jeweils eigene Threads. Das macht es übersichtlicher ^^

Skill-/Item-Delays kann man relativ einfach einstellen:

Items: (db/import/item_delay.txt)
Beispiel


608,3000    //Yggdrasil_Seed

3 Sekunden Yggdrasil Seed Cooldown

Mit deinem oben genannten Script würde ich das nicht machen.
Wenn du Items deaktivieren möchtest kannst du das in db/import/item_noequip.txt machen.
(Dort kannst du auch einstellen, dass die Resitriktion lediglich für WoE gelten soll. Geht auch mit Nutzbaren Items)

Für Skills kannst du unterschiedliche Arten von Delays einstellen:

// SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down

(In db/import/skill_cast_db.txt)

Wenn du einen veralteten Server nutzt, rate ich dir auf eine neuere Version umzusteigen.

Bis bald,
Jey

 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  86
  • Topics Per Day:  0.02
  • Content Count:  591
  • Reputation:   146
  • Joined:  06/19/12
  • Last Seen:  

er benutzt Beginner Eathena dort gibt es kein item_delay.txt soweit ich weiß ist einfach zu alt. wen er einfach nur etwas rum spielen will oder um ep zu testen langt der Server vermutlich auch  :D 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...