[Gyűjtőtéma]Kis publikációk

Indította HaWk, 2011-03-29, 07:16:13

KUKA NPC

Na, szóval, kb 10 perc alatt összedobtam egy modellt.

(letöltés csatolmányként)
NPC2-be tedd!

Quest hozzá, ha azt akarnád, hogy a ráhúzott tárgyakat megsemmisítse:

quest kuka begin
state start begin
when KUKAIDJE.take begin
item.remove()
end
end
end

C++ programmer at Gameloft

PRO TUT:
/ip-nél ne tűnjön el a felszerelt tárgyad

ACMD(do_item_purge)
ebben a funkcióban
az "INVENTORY_AND_EQUIP_SLOT_MAX" részt árírod így:
for (i = 0; i < INVENTORY_MAX_NUM; ++i)

így a tárgyaid nem tűnnek el, ha sok felesleges dolgot törölsz teszt közben.
Skype:Csedwik

Engem eléggé zavart, hogy írkálja a rengeteg warningot game file készítés közben, szóval akinek nincs kedve javítgatni őket egyesével az ignorálhatja az alábbi módon :

Makefile

CFLAGS = -g -Wall -O2 -m32 -pipe -fexceptions -D_THREAD_SAFE -DNDEBUG # -D_USE_SERVER_KEY_

Cseréld erre:

CFLAGS = -g -w -O2 -m32 -pipe -fexceptions -D_THREAD_SAFE -DNDEBUG # -D_USE_SERVER_KEY_


Eredmény:


2017-08-12, 12:03:28 #223 Utolsó szerkesztés: 2017-08-14, 14:43:08 Szerző: OneCharakter
Sziasztok ! Megcsináltam a "magyar verzióját" a mushroom dungeonnak (Erdei Toronyra keresztelve).

Aki nem ismerné annak egy kis link hogy kb miről is van szó (nagy vonalakban mert az egész szerverrészt reprodukáltam).

https://www.youtube.com/watch?v=-oj_QoDd3pc

(UI: Hozzátettem egy kis fixet az 1. szinten lévő fix Nagy gombák miatt questet és 1. regent kell cserélni.)

Sziasztok! Elkészítettem egy kópiáját plechito demon_dungonjénnek

Itt az eredeti tekinthetitek meg: https://www.youtube.com/watch?v=mFrYgalmXPY


Sziasztok egy újabb kópia következik a water_dungeon nevében.

egy kis ismertető aki nem tudná mi is ez : https://www.youtube.com/watch?v=CnA-h-YSDJo

Sziasztok most elkészítettem az újabb kópiákat jelen esetben moon_cave,nephrite_cave nevében.

Akik nem ismerik mi is ez itt 1-2 link:

https://www.youtube.com/watch?v=-fykE9eruFQ

https://www.youtube.com/watch?v=Glub8NPX7p0

-----------------------------------------------------------------------------------------------------------------------

Valamint Fun GM szervereknek készítettem egy tárgy adó questet. Ez által pl nemkell GM rangot adni mivel playerként is akármilyen tárgyat letudnak hívni.

quest mindenes begin
state start begin
when 9519.chat."Tárgy Adás" begin
say_title("Unkv1")
say("Itt tudod kiválasztani a kívánt tárgyat.")
say("")
say_reward("Add meg a Tárgy ID-t:")
say("")
local item_vnum = input()
say_title("Unkv1")
say_reward("Add meg a Tárgy számát:")
say("")
local item_count = input()
pc.give_item2(item_vnum, item_count)
local itemname = item_name(item_vnum)
local name = pc.get_name()
end
end
end

2017-09-03, 16:32:06 #227 Utolsó szerkesztés: 2017-09-04, 18:45:25 Szerző: Zhymer
W/A/S/D+(CTRL+G/H/J) hiba javítása

Sziasztok,

Majdnem minden szerveren megtalálható az a bug, hogy megnyomjuk a W/A/S/D-t hogy a karakter mozogjon, és azonnal megnyomjuk a CTRL+G/H/J-t hogy felszálljon a mountra, és ilyenkor (nem mindig, de elég gyakran) kidob szerverválasztóhoz.

Az alábbi megoldással azt érjük el, ha a W/A/S/D nyomva van, ne tudjuk használni a CTRL+G/H/J kombinációt.
Biztos van szebb megoldás, de mivel senki sem publikált erre a buggra semmi fixet, így én ezt most kirakom.
Egynek elmegy :)

A módosításokat a game.py-ben kell elvégezned.

Ctrl+G:
[spoiler]Keresd:

def __PressGKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):


Alá:

if player.IsMountingHorse():
net.SendChatPacket("/unmount")
return
if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return


Tehát így nézzen ki:

def __PressGKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
if player.IsMountingHorse():
net.SendChatPacket("/unmount")
return
if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return

net.SendChatPacket("/ride")
else:
if self.ShowNameFlag:
self.interface.ToggleGuildWindow()
else:
app.PitchCamera(app.CAMERA_TO_POSITIVE)
[/spoiler]

Ctrl+H:
[spoiler]Keresd:

def __PressHKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):


Alá:

if player.IsMountingHorse():
net.SendChatPacket("/unmount")
return
if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return


Tehát így nézzen ki:

def __PressHKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
if player.IsMountingHorse():
net.SendChatPacket("/unmount")
return
if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return

net.SendChatPacket("/user_horse_ride")
else:
self.interface.OpenHelpWindow()
[/spoiler]

Ctrl+J:
[spoiler]Keresd:

def __PressJKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
if player.IsMountingHorse():
net.SendChatPacket("/unmount")
else:


Alá:

if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return


Tehát így nézzen ki:

def __PressJKey(self):
if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
if player.IsMountingHorse():
net.SendChatPacket("/unmount")
else:
if app.IsPressed(app.DIK_W) or app.IsPressed(app.DIK_A) or app.IsPressed(app.DIK_S) or app.IsPressed(app.DIK_D):
chat.AppendChat(chat.CHAT_TYPE_INFO, "Mozgás közben nem használhatod!")
return

#net.SendChatPacket("/user_horse_ride")
if not uiPrivateShopBuilder.IsBuildingPrivateShop() or not uiOfflineShopBuilder.IsBuildingOfflineShop():
for i in xrange(player.INVENTORY_PAGE_SIZE):
if player.GetItemIndex(i) in (71114, 71116, 71118, 71120):
net.SendItemUsePacket(i)
break
[/spoiler]

Szerk:
Ctrl+G/H kódhoz hozzáadtam hogy mozgás közben le lehessen szálni a mountról, hisz az nem buggos.
(J-ben megtalálható alapból)
"Hölgyeim és uraim, íme a bukott bálvány!"

Ez egy reupload, amely ratedr203 mountja volt, epvp-n inaktív a letöltése, de itt megosztom veletek :D
Tartalmaz egy npc_list.txt részt is.

[spoiler]https://drive.google.com/open?id=0B06Va5N6-5BecjcyMDRHbGx1UWM
[/spoiler]

2017-09-23, 07:16:06 #229 Utolsó szerkesztés: 2017-09-23, 07:25:53 Szerző: gyertya
Sziasztok. Sokan csináltak már ilyet, én ezeket saját kezüleg csináltam, most publikálom nektek.

[spoiler][/spoiler]

Letöltés: https://drive.google.com/open?id=0B0pi1fhAMHoqVUxsZjlRX0N1Njg

Üzenet összefésülés: 2017-09-23, 07:25:53

Sziasztok. Elhoztam pár pet-et egyedileg ellátott effektel.

[spoiler][/spoiler]

Letöltés: https://drive.google.com/open?id=0B0pi1fhAMHoqYVl6SzV0bXBTSmM

Mivel a vita téma törölve lett, ezért kiírom ide is.

A 7-8. aktív képességek eltűnésének a javítása (amit durván 1-2 éve oldottam meg):
[spoiler=Katt]Keres:
Userinterface/PythonNetworkStreamPhaseGame.cpp

Talál:
bool CPythonNetworkStream::RecvSkillLevelNew()
{
TPacketGCSkillLevelNew packet;

if (!Recv(sizeof(TPacketGCSkillLevelNew), &packet))
{
Tracen("CPythonNetworkStream::RecvSkillLevelNew - RecvError");
return false;
}

CPythonPlayer& rkPlayer=CPythonPlayer::Instance();

rkPlayer.SetSkill(7, 0);
rkPlayer.SetSkill(8, 0);

for (int i = 0; i < SKILL_MAX_NUM; ++i)
{
TPlayerSkill & rPlayerSkill = packet.skills[i];

if (i >= 112 && i <= 115 && rPlayerSkill.bLevel)
rkPlayer.SetSkill(7, i);

if (i >= 116 && i <= 119 && rPlayerSkill.bLevel)
rkPlayer.SetSkill(8, i);

rkPlayer.SetSkillLevel_(i, rPlayerSkill.bMasterType, rPlayerSkill.bLevel);
}

__RefreshSkillWindow();
__RefreshStatus();
//Tracef(" >> RecvSkillLevelNew\n");
return true;
}


Cserél:
bool CPythonNetworkStream::RecvSkillLevelNew()
{
TPacketGCSkillLevelNew packet;

if (!Recv(sizeof(TPacketGCSkillLevelNew), &packet))
{
Tracen("CPythonNetworkStream::RecvSkillLevelNew - RecvError");
return false;
}

CPythonPlayer& rkPlayer=CPythonPlayer::Instance();

for (int i = 0; i < SKILL_MAX_NUM; ++i)
{
TPlayerSkill & rPlayerSkill = packet.skills[i];
rkPlayer.SetSkillLevel_(i, rPlayerSkill.bMasterType, rPlayerSkill.bLevel);
}

__RefreshSkillWindow();
__RefreshStatus();
//Tracef(" >> RecvSkillLevelNew\n");
return true;
}


Élvez.[/spoiler]

/R
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Lusta tut végtelen nyílvesszőre:

Őszintén nem volt kedvem szórakozni a tényleges végtelen nyílvessző berakásával, mivel berakás fordítás tesztelés legalább egy óra, uh Bill Gates féle lustaság elven kivettem forrásból, hogy levegye a nyílvesszőt

char_battle.cpp

keres:

m_me->UseArrow(pkArrow, 1);


csere


m_me->UseArrow(pkArrow, 0);


Ennyi, akinek hasznos használja egészséggel. Jelszó: Lustaság fél egészség

Csak egy betűnyi hibajavítás:
Akinek ismerős a probléma, hogy rangot állítana paranccsal egy másik karakternek, viszont érdekesebbnél érdekesebb számokat kapunk, annak a figyelmébe ajánlanám az alábbi sort a cmd_gm.cpp-ben:

tch->UpdateAlignment(amount - ch->GetRealAlignment());

[spoiler]Ha nem egyértelmű:
tch->UpdateAlignment(amount - tch->GetRealAlignment());[/spoiler]
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Idézetet írta: josikaaa Dátum 2017-12-29, 03:01:29
Lusta tut végtelen nyílvesszőre:

Őszintén nem volt kedvem szórakozni a tényleges végtelen nyílvessző berakásával, mivel berakás fordítás tesztelés legalább egy óra, uh Bill Gates féle lustaság elven kivettem forrásból, hogy levegye a nyílvesszőt

char_battle.cpp

keres:

m_me->UseArrow(pkArrow, 1);


csere


m_me->UseArrow(pkArrow, 0);


Ennyi, akinek hasznos használja egészséggel. Jelszó: Lustaság fél egészség

Akár

char_battle.cpp

iCount = iCount - MIN(iCount, dwArrowCount);


Kommenteld ki

//iCount = iCount - MIN(iCount, dwArrowCount);
Nem az a fő, hogy örökké élsz-e. A trükk az, hogy önmagad maradj, örökké.

2018-02-04, 14:46:33 #234 Utolsó szerkesztés: 2018-02-04, 14:50:24 Szerző: Critter
Ha rá kattintasz valaki nevére egyből nyitja a PM-et.

root/interfacemodule.py

Keress rá erre:

def MakeHyperlinkTooltip(self, hyperlink):


Azon belül ez alá:

self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)


Illeszd be ezt

elif "msg" == type:
self.OpenWhisperDialog(str(tokens[1]))


Most jöhet a forrás része amit eredetileg Sanchez publikált

Nyisd meg game/input_main.cpp

Keress rá erre:


int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);


Írd felül ezzel:


int len;
if (pinfo->type == CHAT_TYPE_SHOUT)
{
len = snprintf(chatbuf, sizeof(chatbuf), "|Hmsg:%s|h%s|h|r : %s", ch->GetName(), ch->GetName(), buf);
}
else
{
len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);
}


A THC (Thunder-Core Entertainment) által készített 6. karakter. (Berserker)



(!) Ismertető:

  • Az archívum a modelleken kívül nem tárol mást!
  • A Berserker fő alkotó eleme szerintem a Harcos karakter volt, ezért 60-70%-át a Harcos karakter animációja és alkotó eleme teszi ki.
  • Az archívum nem tárol fegyver modelleket, de mint már említettem a Berserker hasonló a Harcoshoz ezért használható vele a Harcos kétkezes fegyverei.

  • Letöltés: Google Drive / VirusTotal

    [spoiler=Jelszó a WinRAR archívumhoz]GQEatG4z&t.h$6TU[/spoiler]

    2018-05-24, 22:11:40 #236 Utolsó szerkesztés: 2018-05-27, 19:01:01 Szerző: T0gy3R
    Idézetet írta: fabtam11 Dátum 2018-05-16, 19:34:07
    .....
    [TAB] Item ID showing system:
    ha a karakterünk egy GM, akkor az uitooltip a tárgyak neve felett leírhatja neki, hogy pontosan mi a tárgy ID-je, viszont ha az illető civil player, akkor a pythonban megírt kód nem teszi a számára láthatóvá az adott infót.
    .....

    Saját módszer

    Ennek a "rendszernek" egy sajátos hibája van..

    -Ha az item=specialitem, GM-eknek nem színezi át (Amúgy sem sok értelmét látom, de GM-nek meg főleg felesleges, szerintem)

    [spoiler=tut]
    1.)root/uitooltop.py
    1.1)Keresd ezt:
    def __SetItemTitle(self, itemVnum, metinSlot, attrSlot):

    Az egészet írd felül ezzel:
    def __SetItemTitle(self, itemVnum, metinSlot, attrSlot):
    player_name = player.GetName()
    item_name = item.GetItemName()

    if self.__IsPolymorphItem(itemVnum):
    self.__SetPolymorphItemTitle(metinSlot[0])
    else:
    if self.__IsAttr(attrSlot):
    if chr.IsGameMaster(player.GetMainCharacterIndex()):
    self.SetTitle(item_name + " | ID %d" % itemVnum)
    else:
    self.__SetSpecialItemTitle()
    return
    if chr.IsGameMaster(player.GetMainCharacterIndex()):
    self.SetTitle(item_name + " | ID: %d" % itemVnum)
    else:
    self.__SetNormalItemTitle()



    TAB-olás így nézzen ki:



    Kész is! :)

    Végeredmény:
    GM-eknek:


    PLAYER-eknek:

    [/spoiler]

    helped: Rin the Exorcist

    GLHF :)   

    2018-05-31, 08:14:40 #237 Utolsó szerkesztés: 2019-03-09, 11:39:12 Szerző: fabtam11

    Csak regisztrált felhasználók részére fenntartva:
    A GF legújabb item_names és item_proto txt-i (2018.05.15.)
    Fontos, hogy az ák-kk-s addon_type oszlop nincs belekalkulálva!
    csatolva

    2018-08-10, 10:20:55 #238 Utolsó szerkesztés: 2018-08-10, 10:31:49 Szerző: fabtam11
    Smaragd kígyó kosztümreskin + effekt
    -vannak ikonok +vannak textúrák +van effektje

    Megjegyzés: nem adok item_listet, nem írok msm-et, psm-hez pláne nem írom már le a sorokat, aki ért hozzá, az tudni fogja, hogy mit hova és hogyan kell elhelyezni+ betenni... Sok sikert az önálló moddoláshoz! ;)
    Letöltés: https://data.hu/get/11354531/smaragd_serpent.zip
    kicsom jelszó: hát valszeg www.metin2hungary.net lesz a jelszó.
    Extra: képet nem csinálok, a cuccot nincs időm és kedvem tesztelni. :/



    Mercury Assassin kosztümreskin + effekt
    -dettó van ikon, itt is vannak textúrák, itt is van effekt

    Megjegyzés: itt se fogom senki kezét vezetni, ha van agyatok, akkor nekikezdtek a szükséges sorok megírásának.
    Letöltés: https://data.hu/get/11354535/mercury_armorset.zip
    kicsom jelszó still the same ^lásd fentebb már leírtam^
    Extra: itt se volt nagyon kedvem babrálni a dologgal, túl rég csináltam és fuck it, I don't care elven publikálom.