Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
novdy

[Návod]Script funkce (metody, eventy)

Recommended Posts

Player:

.IsGroupLeader() : Vrátí 1 nebo 0 (1 = true, 0 = false)
.HasFinishedQuest(QuestID) : Vrátí 1 nebo 0 (1 = true, 0 = false)
.BroadcastMessage(Message) : Ukáže chat zpravu (.BroadcastMessage("Ahoj"); vypise ahoj (zatim je to tak na pul bugnute ma to byt broadcast a vidite to jenom vy...))
.SendAreaTriggerMessage(Message) : Podobne jako BroadcastMessage
.GetRace() : Vrati rasu (v cisle)
.GetClass() : Vrati povolani (v cisle)
.GetLevel() : Vrati level
.Teleport(mapID, x, y z) : Teleportuje hrace na urcite misto
.AddItem(ItemID, Count) : prida item hraci (count je kolikrat)
.RemoveItem(ItemID, Count) : odebere item hraci (count je kolikrat)
.LearnSpell(SpellID) : nauci hrace spell
.UnlearnSpell(SpellID) : odnauci spell hrace

 

Unit (creature (NPC)):

.Emote(EmoteID) : Emote...
.SendChatMessage(Message) : NPC napise do chatu (.SendChatMessage("NECO"); napise neco)
.CastSpell(SpellID) : Hodi spell (neni 100% funkcni)
.CastSpellOnTarget(SpellID, Target) : Hodi spell na urcity cil (neni 100% funkcni)
.TimedEmote(EmoteID, Timer) : Zpozdene emote
.SpawnMonster(entry, x, y, z) : Spawne creaturu na X Y Z
.CreateWaypoint(x, y, z, orientation, waittime, flags, modelid) : vytvori waypoint (x,y,z,orientation doufam chapete, waittime = jak dlouho cekat, flags = zatim nevim (pisu 1), modelid = jake modelID ma mit v urcitem WP (neni 100% funkcni))
.MoveToWaypoint(wapoint) : Cislo na ktery waipoint ma jit NPC (jede to v poradi napr. 1 = prvni WP)
.Delete() : Logicke ne?
.StopMovement(timer) : NPC se zastavi na dobu timer (.StopMovement(5); )
.SetMovementType(movement type) : zmeni NPC typ pohybu (pomalu, beh) (.SetMovementType(1);)
.SetNPCFlags(flag) : Nastavi NPC NPCFlag
.ChangeEntry() : zmeni ID NPC
.ChangeModel(model id) : zmeni modelID NPC
.ChangeScale(scale) : zmeni velikost NPC (musite zadat desetinne cislo (promenna je typu float))
.ChangeFaction(faction id) : zmeni fakci

GO (GameObject):

.GetId() : Zjisti ID GO

Quest

.GetEntry() : Zjisti ID questu

Jak vytvorit script:

global JmenoVasiMetody = function(JmenoArgumentu)
{
  JmenoArgumentu.SendChatMessage("Ahoj prave jsi spustil prvni script");
};

.RegisterUnitEvent(ID, EventID, JmenoVasiMetody); /* udalost kdy se to spusti (ta vase metoda) (ID = ID NPC pri tkerem se to ma sputit, EventID = za jake priciny se to ma stat, JmenoVasiMetody = nazev metody ktera se spusti po zapnuti teto udalosti */

nebo

global JineJmenoVasiMetody = function(JmenoArgumentu)
{
  JmenoArgumentu.SendChatMessage("Ahoj prave jsi spustil prvni script");
};

.RegisterQuestEvent(ID, EventID, JineJmenoVasiMetody); /* to same co predtim akorat pracujete s questem a ne s NPC misto ID date potom questID, EventID = Dostaneme se k nim */

nebo

global JinaMetoda = function(JmenoArgumentu)
{
  JmenoArgumentu.SendChatMessage("Ahoj prave jsi spustil prvni script");
};

.RegisterGameObjectEvent(ID, EventID, JinaMetoda); /* uplne to stejne co v predchozich prikladech */

EventID (Pri jake udalosti zapnout nasi metodu):

/* NPC */
1 = Pri startu boje
2 = Pri opusteni boje
3 = Pri zabiti (vas)
4 = Pri zabiti (NPC)
5 = Pri AI ticku (zatim nevim)
6 = Pri spawnu
7 = Pri promluveni s nim
8 = Pri dosazeni WP
/* QUEST */
1 = Pri dokonceni
2 = Pri prijeti
3 = Pri moznosti prijeti
/* GO */
1 = Pri spawnu
2 = Pri pouziti (caste vyuziti pro vlastni porty)

Par prikladu:

-----------------------------------------------------------------------------
global PortalToPvp = function(Player)
{
  Player.Teleport(0, -13164.000, 328.000, 43.000);
};

.RegisterGameObjectEvent(111111, 2, PortalToPvp); // lze pouze u GO s typem 1
-----------------------------------------------------------------------------
global TestNpc = function(Player)
{
  .SendYellMessage("Pojd more !");
  Player.BroadcastMessage("SCRIPT: TEST");
};

.RegisterUnitEvent(111111, 1, TestNpc);
-----------------------------------------------------------------------------
global IF_BREAD_SELLER_WAYPOINT = function(waypoint_id)
{
if(waypoint_id == 4) 
{
  .SendChatMessage("Cerstvi chleba kupujte!!");
}
if(waypoint_id == 1) 
{
  .SendChatMessage("Ranni chleba, neprodelate!!");
}
if(waypoint_id == 2) 
{
  .SendChatMessage("Opravdu dobrej chleb!");
}
if(waypoint_id == 6) 
{
  .SendChatMessage("Chleba na prodej!");
}
};
.RegisterUnitEvent(5109, 8,IF_BREAD_SELLER_WAYPOINT);

 

Doufam ze to pochopite ;)

 

by Mato with BAN B)

Edited by novdy
  • Downvote 1

Share this post


Link to post
Share on other sites

Hele vypada ze se tady zaregistroval nekdo kdo vi co je to C..

No reknu to takhle GJ, ale vetsina lidi tady (tak 95%) absolutne nebude vedet co to je.. a budou zde postovat dotazy kam to maji nacpat co s tim jestli bys jim nepomohl atd.

Share this post


Link to post
Share on other sites
Hele vypada ze se tady zaregistroval nekdo kdo vi co je to C..

No reknu to takhle GJ, ale vetsina lidi tady (tak 95%) absolutne nebude vedet co to je.. a budou zde postovat dotazy kam to maji nacpat co s tim jestli bys jim nepomohl atd.

a pochopil jsi to ty?? vim ze to dopadne ale tak dam jim helpa...

BTW: C++,C#,PHP,Javascript ;)

Share this post


Link to post
Share on other sites
a pochopil jsi to ty?? vim ze to dopadne ale tak dam jim helpa...

BTW: C++,C#,PHP,Javascript ;)

Pochopil funkce zvladam :D..

 

ja delam v PhP, tak trochu v C.. no ale ucim se C

Share this post


Link to post
Share on other sites
Tak muzes zacit rad bych si zkusil alespon ten vlastni port :D

Tak se kukaj vytvoris svoji funkci (metodu (je to to stejne akorat se lisi nazvy:P )) a to takto:

global JmenoFunkcNeboMetody = function(Arg)
{

};

Arg je promenna (instance tridy Player). Tak mame GO s ID 12345 typu 1.

A tedkom zaregistrujes svoji funkci (metodu) a nastavis ji pri jake prilezitosit se ma nase/tvoje metoda ma spustit. My mame port tak asi kdyz klikneme pravym na GO.

Takze pouzijeme EventID u GO ktere? no prece 2 Pri pouziti! ale ted k veci...

global JmenoFunkcNeboMetody = function(Arg)
{

};
.RegisterGameObjectEvent(12345, 2, JmenoFunkceNeboMetody);

a co se stane jak klikneme na GO?? nic ptz v tele metody je takzvane hov** tak tam pridame at to portne playera. No jo ale jak zjistime ktereho playera??!!

No prece v nasem argumentu je ukryt object player a jaky? ten nas (player).

takze:

global JmenoFunkcNeboMetody = function(Arg)
{
  Arg..Teleport(mapID, x, y z); // to si doplnis
};
.RegisterGameObjectEvent(12345, 2, JmenoFunkceNeboMetody);

a takhle portnes player a jakto? ptz kdyz kliknes na GO s ID 12345 spusti se funkce se jmenem "JmenoFunkceNeboMetody" a v te metody/funkci se odhraje portnuti playera na urcite misto :)

 

BTW: Me nejde o to aby jste se to nasprtali tak ze aha tady ma byt to a tam tamto... chci abyste zvladli neco sami naprogramovat... co potom az umrou mangosaci a antasaci :D kdo nam bude programovaat

by Mato with BAN

Edited by novdy

Share this post


Link to post
Share on other sites
Pochopil funkce zvladam :D..

 

ja delam v PhP, tak trochu v C.. no ale ucim se C

a jak dobre znas PHP zvladl by si i OOP tridy objecty?

Share this post


Link to post
Share on other sites
Tak se kukaj vytvoris svoji funkci (metodu (je to to stejne akorat se lisi nazvy:P )) a to takto:

global JmenoFunkcNeboMetody = function(Arg)
{

};

Arg je promenna (instance tridy Player). Tak mame GO s ID 12345 typu 1.

A tedkom zaregistrujes svoji funkci (metodu) a nastavis ji pri jake prilezitosit se ma nase/tvoje metoda ma spustit. My mame port tak asi kdyz klikneme pravym na GO.

Takze pouzijeme EventID u GO ktere? no prece 2 Pri pouziti! ale ted k veci...

global JmenoFunkcNeboMetody = function(Arg)
{

};
.RegisterGameObjectEvent(12345, 2, JmenoFunkceNeboMetody);

a co se stane jak klikneme na GO?? nic ptz v tele metody je takzvane hov** tak tam pridame at to portne playera. No jo ale jak zjistime ktereho playera??!!

No prece v nasem argumentu je ukryt object player a jaky? ten nas (player).

takze:

global JmenoFunkcNeboMetody = function(Arg)
{
  Arg..Teleport(mapID, x, y z); // to si doplnis
};
.RegisterGameObjectEvent(12345, 2, JmenoFunkceNeboMetody);

a takhle portnes player a jakto? ptz kdyz kliknes na GO s ID 12345 spusti se funkce se jmenem "JmenoFunkceNeboMetody" a v te metody/funkci se odhraje portnuti playera na urcite misto :)

 

BTW: Me nejde o to aby jste se to nasprtali tak ze aha tady ma byt to a tam tamto... chci abyste zvladli neco sami naprogramovat... co potom az umrou mangosaci a antasaci :D kdo nam bude programovaat

by Mato with BAN

 

 

nie je toto nahodou GameMonkey ???

 

Share this post


Link to post
Share on other sites
nie je toto nahodou GameMonkey ???

jo je... videl jsem tvoje scripty -> respect (teda jestli je to tvoje prace) ;) fakt dobry

Share this post


Link to post
Share on other sites
jo je... videl jsem tvoje scripty -> respect (teda jestli je to tvoje prace) ;) fakt dobry

dik... samozrejme ze to je moja praca... keby to nebola, tak by som si hadam nepisal vsade ze Scripted by sT@N... :P

Share this post


Link to post
Share on other sites
dik... samozrejme ze to je moja praca... keby to nebola, tak by som si hadam nepisal vsade ze Scripted by sT@N... :P

no vis jak to chodi... vetsina lidi moje kompilace moje scripty moje DB a dela to tam nekdo z PS nebo ascentemulator :D

Share this post


Link to post
Share on other sites
no vis jak to chodi... vetsina lidi moje kompilace moje scripty moje DB a dela to tam nekdo z PS nebo ascentemulator :D

jn :D premenuju si terranet db na nejaku inu a machruju aku maju dobru db a kolko sa zapotili kym ju spravili.. takto denne vznikne asi 10db projectov :DD

ale sak sa pozri moje scripty nenajdes nikde iba tu :P a anetheron script som dal ako ukazku na ascent emu to je vsetko ;)

Share this post


Link to post
Share on other sites

cau pls potreboval bych script aby na jednom mym NPC hrala furt jeden sound dokola a aby to slo slyset treba jen v Gurubashi arene pls ten souund bych chtěl L70ETC

Share this post


Link to post
Share on other sites

Cau pls chtel jsem se ujistit jestli to mam dobre: to npc 1234596 je vendor a chci aby se kdyz si s nim promluvim tak aby zacal kecat a zacala hrat hudba 11803 .... jo a jeste staci to jen nahrat do scripts s priponou .gm? a pojede to? pls

 

global Rocker = function(mob)

{

mob.SendChatMessage("I´m Rockeeer");

mob.PlaySoundToSet(11803);

};

 

.RegisterUnitEvent(1234596, 7, Rocker); /* udalost kdy se to spusti (ta vase metoda) (ID = ID NPC pri tkerem se to ma sputit, EventID = za jake priciny se to ma stat, JmenoVasiMetody = nazev metody ktera se spusti po zapnuti teto udalosti */

Share this post


Link to post
Share on other sites

2 Flora:

Jestli chces aby se to opakovalo, tak tam budes muset vrazit jeste nejaky timer predpokladam...,

A takhle jak si to napsal by to melo fungovat pokud jsem neco neprehlid :)

 

2 Novdy:

Navod fain, ale na playera se toho treba da pouzit mnohem vic.. Nedavno jsem to doloval ze zdrojaku, nasem jsem i par novych, ale netestoval jsem jestli skutecne delaji to co si myslim, ze by delat meli..

Share this post


Link to post
Share on other sites
2 Flora:

Jestli chces aby se to opakovalo, tak tam budes muset vrazit jeste nejaky timer predpokladam...,

A takhle jak si to napsal by to melo fungovat pokud jsem neco neprehlid :)

 

2 Novdy:

Navod fain, ale na playera se toho treba da pouzit mnohem vic.. Nedavno jsem to doloval ze zdrojaku, nasem jsem i par novych, ale netestoval jsem jestli skutecne delaji to co si myslim, ze by delat meli..

jj je to stare a dlouho jsem tu nebyl ;)

Share this post


Link to post
Share on other sites

Moc pls o radu.. Vytvoril sem si par jednoduchejch scriptiku, ale chtel bych si udelat par NPC:

 

1. healera v arene, ktery healne kazdych 10 sekund hrace co ma nejnizssi hp - pro vas kdo to umi to nebude urcite problem ... snad

2. a este jednoho typa, s kterym promluvim a on me neco rekne a pak me zacne postupne buffovat po 2 sekundach 1 spell a az to nabuffuje tak zase normal stoji a ceka az si s nim nekdo promluvi..

 

 

Predem diky moc za jakoukoliv radu!!! :innocent:

Share this post


Link to post
Share on other sites

LUA je programovaci jazyk no ikdyz mozna jo mozna ne... ma svoji syntaxi ale kompiluje ho kompilator v urcite aplikaci a je to jakoby jenom uprava ci doplneni nejakeho zdrojaku napr addony pouzivaji normalni funkce wowu (programove funkce) no a z nich sestavi napr nejake okno kde mate prehled co a jak no a Ascent si tam pekne nacpal ten "LUA builder" (neberte to doslova) a ted kazdy chce umet LUA. Neni to nic tezkeho kdyz umite C++ a zaklady nejakeho jineho jazyka ale na netu o tom neni ani zminka, dival jsme se i do literatury a tam jenom par knizek a jeste k tomu english.

Share this post


Link to post
Share on other sites

Cau pls chtel jsem se ujistit jestli to mam dobre: to npc 1234596 je vendor a chci aby se kdyz si s nim promluvim tak aby zacal kecat a zacala hrat hudba 11803 .... jo a jeste staci to jen nahrat do scripts s priponou .gm? a pojede to? pls

 

<b>global Rocker = function(mob)

{

mob.SendChatMessage("I´m Rockeeer");

mob.PlaySoundToSet(11803);

};

 

.RegisterUnitEvent(1234596, 7, Rocker); /* udalost kdy se to spusti (ta vase metoda) (ID = ID NPC pri tkerem se to ma sputit, EventID = za jake priciny se to ma stat, JmenoVasiMetody = nazev metody ktera se spusti po zapnuti teto udalosti */

</b>

 

Chcem sa spytat kde zadat tu prvu cast??? Skripty sa este len ucim :) Tu cast GLOBAL ROCKER atd atd az po bodkociarku. Tomu .RegisterUnitEvent to uz chapem. To je prikaz. Ale tu cast predtym kde zadat?

Vopred dakujem

Ewerlast

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×