Sok helyen láttam hogy nem megy $0undX leírása szerint a script berakás. Ezt biztosan állítom hogy nem így van $0undX leírása szerint működnie kell. Na de a lényegre térve nagyon részletesen bemutatom leírom de többször ne legyen ez kérdés köszi :)
Ctrl + al nagyíthattok a képre úgy részletesebben látjátok majd ctrl - al vissza mehettek.
Először is lépjünk be a letöltött forráskód mappájába. (Én esetembe skyfire mivel azt használom)
(http://kepfeltoltes.hu/110730/cmake_www.kepfeltoltes.hu_.png)
Itt menyünk be az src mappába.
(http://kepfeltoltes.hu/110730/cmake2_www.kepfeltoltes.hu_.jpg)
Ezen belül válasszuk ki a server mappát.
(http://kepfeltoltes.hu/110730/cmake3_www.kepfeltoltes.hu_.jpg)
Majd ezen belül scripts mappát.
(http://kepfeltoltes.hu/110730/cmake4_www.kepfeltoltes.hu_.jpg)
Legvégül ezen belül a custom mappát.
(http://kepfeltoltes.hu/110730/cmake5_www.kepfeltoltes.hu_.jpg)
Ide rakjuk be a kívánt scriptet én esetembe npc_reset.cpp
(http://kepfeltoltes.hu/110730/cmake_6_www.kepfeltoltes.hu_.jpg)
Nyissuk meg a scriptet.
(http://kepfeltoltes.hu/110730/script1_www.kepfeltoltes.hu_.jpg)
Legalján található egy ilyen rész.
void AddSC_npc_reset(); <----- ez nektek a script neve lesz de az eleje meg fog egyezni ezt jegyezzétek le valahova mert szükség lesz rá.
(http://kepfeltoltes.hu/110730/script2_www.kepfeltoltes.hu_.jpg)
-----------------------------------------------------------------------------------------
Most nyissuk meg ugyan itt a custom mappába CMakeLists nevezetű fájlt.
Ami benne van töröljétek és ez legyen bent.
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
)
message(" -> Prepared: Custom")
Na mit is kell itt tenni. Ami scriptet beraktatok a custom mappába és ami a script ide berakjátok ilyen módon.
(én esetembe npc_reset.cpp)
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Custom/npc_reset.cpp
)
message(" -> Prepared: Custom")
Ahova én az npc_reset.cpp-t írtam ti oda a saját scriptetek nevét írjátok amit a custom mappába raktatok pl
asd.cpp
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Custom/asd.cpp
)
message(" -> Prepared: Custom")
Ha ezzel megvagytok mentsétek.
Most jöhet a cmake.
(http://kepfeltoltes.hu/110730/cmake_7_www.kepfeltoltes.hu_.jpg)
Felülre a forráskódot rakjuk alulra pedig ahova ki generáljuk a project fájlokat.
Tisztán érthető szerintem mint ha rendesen szervert csinálnánk úgy kell.
Ha megvagyunk ezzel menyünk be ahova elkészítettük a project fájlokat.
(http://kepfeltoltes.hu/110730/cmake8_www.kepfeltoltes.hu_.jpg)
Itt mennyünk bele ezekbe a mappákba \src\server\game
itt találunk egy game nevű project fájlt ezt nyissuk be.
(http://kepfeltoltes.hu/110730/cmake9_www.kepfeltoltes.hu_.jpg)
Itt a kis háromszöggel nyissuk le.
(http://kepfeltoltes.hu/110730/visual_www.kepfeltoltes.hu_.jpg)
(http://kepfeltoltes.hu/110730/visual1_www.kepfeltoltes.hu_.jpg)
Itt keressük ki a scripting mappát és nyissuk le a kis háromszög fülel.
(http://kepfeltoltes.hu/110730/visual2_www.kepfeltoltes.hu_.jpg)
ezen belül nyissuk meg a scriploader.cpp fájlt
(http://kepfeltoltes.hu/110730/visual3_www.kepfeltoltes.hu_.jpg)
itt az elején
#include "gamePCH.h"
#include "ScriptPCH.h"
#include "ScriptLoader.h"
Után nyomjuk 3 entert és írjuk be hogy //custom
(http://kepfeltoltes.hu/110730/visual4_www.kepfeltoltes.hu_.jpg)
//custom alá azt írjátok amit megnyitottunk a custom mappába c++ scriptet és a legalján volt található írtam is hogy jegyezzétek fel valahova.
én esetembe void AddSC_npc_reset();
A lényeg hogy figyeljetek a végén legyen pontosvessző
void AddSC_npc_reset();
ez így fog kinézni
(http://kepfeltoltes.hu/110730/visual5_www.kepfeltoltes.hu_.jpg)
Ha megvagyunk tekerjük le a legaljára.
Itt egy ilyen résznek kell lennie
(http://kepfeltoltes.hu/110730/visual6_www.kepfeltoltes.hu_.jpg)
void AddCustomScripts()
{
#ifdef SCRIPTS
/* This is where custom scripts should be added. */
#endif
Itt a /* This is where custom scripts should be added. */
alá egyből írjátok be ugyan azt amit fent csak void nélkül.
úgye fent ezt láthattuk void AddSC_npc_reset();
ide csak így rakjátok be AddSC_npc_reset();
Remélem világos voidot elhagyátok előle.
(http://kepfeltoltes.hu/110730/visual7_www.kepfeltoltes.hu_.jpg)
Ez a rész megvan fent rámentek file ----->save scriptloader.cpp
Majdnem készen is vagyunk menyetek vissza a főmappába és kezdjétek el lefordítani.
(http://kepfeltoltes.hu/110730/visual8_www.kepfeltoltes.hu_.jpg)
(http://kepfeltoltes.hu/110730/visual9_www.kepfeltoltes.hu_.jpg)
Ha kész akkor bin mappába meg kell jelennie ezeknek.
(http://kepfeltoltes.hu/110730/finish_www.kepfeltoltes.hu_.jpg)
Hogyha nem volt szervered innen folytathatod a leírások szerint viszont hogyha van már szeród nincs más dolgod mint a worldserver.exet felülírni ahol az emud található.
Kiegészítés: Tulajdonképpen ne töröljük a forráskódot ahol elvégeztük a másolást mivel hogyha szeretnél még mást berakni utólag nincs más dolgod mint
újra olvasni amit írtam anyi kiegel
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
)
message(" -> Prepared: Custom")
résznél pl van egy scripted kgg.cpp néven hozzá rakod íj módon most vegyük bele hogy nektek is npc_reset.cpp volt az első script
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Custom/npc_reset.cpp
)
message(" -> Prepared: Custom")
ez az alap így rakod hozzá a másikat
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Custom/npc_reset.cpp
Custom/kgg.cpp
)
message(" -> Prepared: Custom")
szóval új sorba
//custom résznél pedig projecteknél kövi generálásnál ha nem törölted a forráskódot bent marad a régi beírásod és csak alá bedobod void részt ahogy írtam
//custom
void AddSC_npc_reset();
void AddSC_kgg();
Legalján is így
AddSC_npc_reset();
AddSC_kgg();
Szintúgy mentitek és mehet a fordítás. Ha megint lenne később így ismétlitek ezt a folyamatot segíthettek magatokon annyit hogy a forráskódot nem törlitek ahova beraktátok az első scriptet mert ha ezt is berakod a régi beírások a scriptloader.cpp be megmaradnak tehát csak az újakat kell hozzáadnod.
Szerintem érthető leírás remélem a képek sokat segítenek.
Egy kérésem van mivel leírtam az egészet teljesen képekkel fel is töltöttem akkor légyszíves ne legyen még mindig kérdés hogy hogyan kell scriptet berakni.
Esetleges hibák worldserver-t nem fordítja le a visual (Rossz script,Rosszul adtad meg a fájl nevét custom mappába,Valamelyik scriptloader.cpp résznél lehagytál egy kettöspontot esetleg máshova is írtad hogy void vagy épp lehagytad. Revison eltérés.)
Istenem, mi a ráknak ennyi leírás, ha valaki úgy nem érti meg ahogy Sound leírta az így sem fogja...
Egyébként, pPlayer->IsInCombat() után mért true-val térsz vissza...?
Idézetet írta: Bluerák Dátum 2011 július 30, 11:58:40 DÉLELŐTT
Istenem, mi a ráknak ennyi leírás, ha valaki úgy nem érti meg ahogy Sound leírta az így sem fogja...
Egyébként, pPlayer->IsInCombat() után mért true-val térsz vissza...?
Jobb több mint egy se ;).
Szerintem nem azért készített leírást, hogy értelmetlen hozzászólások legyen mint amivel kezdted a mondatot, hanem pl, ha valaki elakad kérdez.
UPDATE: Grat a tutorialhoz jó részletes leírás főleg, hogy jó minőségű képekkel fokoztad ezt.
IdézEgyébként, pPlayer->IsInCombat() után mért true-val térsz vissza...?
Azért hogy valamibe bele tudjál kötni. A scriptet nem én írtam de szerintem tutorialnak így is megfelel ha nagyon zavar kérdezd meg Chronicwrathot hogy miért úgy van.
Update: 2 van fent az enyémmel együtt hú de sok.
Nem értem mi a gond azzal ha érthetően le van írva mit hogyan kell. Nem kell fennakadni hogy mi van a scriptbe írva. A nagyon kezdők a configba nem igazodnak ki akkor egy pár részletből nem fogják tudni mivan és szerintem ez abszolút nem gond hogy a kezdőknek készítettem egy részletes leírást képekkel.
Szép leírás.
De blueráknak részben igaza van, építő jellegű a hozzászólása, nem kell oltani :)
Nem offenseként írtam, csak megjegyeztem.
Húhh, hát ez... ez nemhogy szájba adva, megrágva, meg is van emésztve! :P
Ment a sticky!
Mielőtt bárki is belevágna a script leforgatásába nézze át még egyszer! Egy ";" kimarad és kb fél órát el ronthat vele a drága idejéből. Mi Raisen-el pontosan 2 óra hosszát szívtunk emiatt! Mindig azt hittük nem jó az emuhoz a script. Erről jut eszembe! Hogy tudom megnézni ,hogy egy script egyáltalán passzol az én szerverem típusával?
Megpróbálod leforgatni (feltéve hogy ha nincs infó ott ahonnan letöltötted)
Idézetet írta: konDuku Dátum 2011 augusztus 15, 01:22:04 DÉLELŐTT
Mielőtt bárki is belevágna a script leforgatásába nézze át még egyszer! Egy ";" kimarad és kb fél órát el ronthat vele a drága idejéből. Mi Raisen-el pontosan 2 óra hosszát szívtunk emiatt! Mindig azt hittük nem jó az emuhoz a script. Erről jut eszembe! Hogy tudom megnézni ,hogy egy script egyáltalán passzol az én szerverem típusával?
Én ezzel nem dicsekednék, syntaxis hibát minden fordító érthetően jelez ::)
Oké lehet ,hogy jelez, de aki nemrégen kezdett bele a dologba, mármint foglalkozni az egész C++ -al, és ez az első esete ,hogy használnia kell az nem arra fog figyelni ,hogy jelez-e neki syntaxis hibát a fordító. És az olvasók 3/4 részének szerintem fogalma sincs hol lehet ezt nyomon követni.
Aki csak most kezd bele a házépítésbe először ne a tetőt akarja megépíteni.
Akkor vegy
Nem okoskodok, csak arra céloztam ,hogy ez egy olyan topic amiben egy script beforgatásáról van szó, nem pedig arról ,hogy ,hogyan használjuk a C++ -t, én ezeket a hozzászólásokat mindig úgy fogom fel ,hogy aki jártas a témában annak ez természetes és nem érti ,hogy a kezdő mit nem ért pl a C++ -ban. Mindenkit úgy kezel mintha 5 programnyelvet tudna... :(
Idézetet írta: konDuku Dátum 2011 augusztus 28, 04:17:51 DÉLUTÁN
ez egy olyan topic amiben egy script beforgatásáról van szó, nem pedig arról ,hogy ,hogyan használjuk a C++ -t
Ezzel meg is válaszoltad a nagy kérdést. Kezdőknek van egyéb más téma, ahol szívesen válaszolnak a kérdésekre, ez nem az a topic, nem arról szól és mint írtad, feltételezi, hogy legalább a használt fordító program kezelésével tisztában van aki használja (hiszen mindegyik az ember arcába vágja a hibákat nagyon jól láthatóan). Tehát a téma címében szereplő "kezdőknek" arra utal, hogy ismeri már a programot amit használ, de még nem patchelt repo-t.
Azt pedig hogy honnan látod, hogy passzol-e a szervered verziójához, jelzik általában a téma elején (skyfire).
Holnap kitakarítom a felesleges/ide nem illő hozzászólásoktól a témát.
Trinity core-nál hogyvan? ien mappák nincsenek a trinitynél.
Helló ! Az lenne a problémám hogy nincsenek meg a képek. Tudnál újakat felrakni? Nagyon szépen köszönöm.