Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wywołanie efektu mse


Rekomendowane odpowiedzi

Opublikowano

Tak na src posiadam to i to.

 

 

Ale pytanie jest takie nie chce się grzebać w src i binke nie da się jakoś normalnie dodać wywołania efektu?

 

 

 

Bo zamiast grzebać się w bin wole dodać już jak kolega napisał wyżej, ale powiedz jaki masz pomysł :)

tumblrmv8l.gif


Members | ProUser | PostmakerPostwriter | Wojownik Duszy

Opublikowano

Tak na src posiadam to i to.

 

 

Ale pytanie jest takie nie chce się grzebać w src i binke nie da się jakoś normalnie dodać wywołania efektu?

 

 

 

Bo zamiast grzebać się w bin wole dodać już jak kolega napisał wyżej, ale powiedz jaki masz pomysł :)

Dla informacji, bo niepotrzebnie robisz quest. Efekt poprzez game można wywołać za pomocą istniejącej funkcji, dopisując kod.

EffectPacket(SE_HPUP_RED);
Więcej efektów (SE_HPUP_RED itd..) masz w ../common/lenght.h, SPECIAL_EFFECT.

 

 

Tylko, że założyłeś sobie, że ma to być wykonane z poziomu quest'a, a więc..

Otwierasz plik ../game/questlua_pc.cpp, w którym dodajesz funkcję questową dzięki, której wywołasz ten efekt. 

int pc_send_effect_packet(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
 
ch->EffectPacket((BYTE)lua_tonumber(L, 1));
 
return 0;
}
I na dole tego pliku, dodajesz ją do tablicy RegisterPCFunctionTable, wyżej stworzoną funkcję.

 

{ "send_effect_packet", pc_send_effect_packet },
 

Teraz w quest możesz wykorzystać te funkcję, pamiętaj o dodaniu do quest_function w ../locale/germany/quest.

 

pc.send_effect_packet(numer)
 

W miejsce numer wstawiasz pozycję, na której znajduje się Twój efekt w SPECIAL_EFFECT, można to policzyć.

 

SE_NONE, // 0

SE_HPUP_RED, // 1
SE_SPUP_BLUE, // 2
[...]
SE_DEAD // 25
Strona serwera już działa, można to sprawdzić na prostym przykładzie.

pc.send_effect_packet(1) -- efekt czerwonej mikstury
pc.send_effect_packet(2) -- efekt niebieskiej mikstury
pc.send_effect_packet(3) -- efekt zielonej mikstury
itd..

 

 

Teraz zastąpimy niepotrzebny, jakiś wielki, mijający się z celem napis na czerwono na Twój nowy efekt.

Nazywa się on: SE_LEVELUP_ON_14_FOR_GERMANY

W quescie dajesz instrukcję do wywołania.

pc.send_effect_packet(14) -- to jest jego numer

Dodatkowo w kliencie - root, w pliku playersettingmodule poprawiasz do niego ścieżkę na nową - Twoją.

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_ON_14_FOR_GERMANY, "","season1/effect/paymessage_warning.mse")	#·ąş§ľ÷ 14Ŕ϶§ ( µ¶ŔĎŔüżë )
na

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_ON_14_FOR_GERMANY, "","d:/ymir work/effect/etc/dead/dead_effect.mse")

 

Oczywiście, lepiej jest dodać nowy efekt. Nie jest to trudne, ten prosty poradnik powinien Cię nakierować jak to zrobić.

307681428489538142351.png

Metin2 Balmora Staff

Opublikowano

Dla informacji, bo niepotrzebnie robisz quest. Efekt poprzez game można wywołać za pomocą istniejącej funkcji, dopisując kod.

EffectPacket(SE_HPUP_RED);
Więcej efektów (SE_HPUP_RED itd..) masz w ../common/lenght.h, SPECIAL_EFFECT.

 

 

Tylko, że założyłeś sobie, że ma to być wykonane z poziomu quest'a, a więc..

Otwierasz plik ../game/questlua_pc.cpp, w którym dodajesz funkcję questową dzięki, której wywołasz ten efekt. 

int pc_send_effect_packet(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
 
ch->EffectPacket((BYTE)lua_tonumber(L, 1));
 
return 0;
}
I na dole tego pliku, dodajesz ją do tablicy RegisterPCFunctionTable, wyżej stworzoną funkcję.

 

{ "send_effect_packet", pc_send_effect_packet },
 

Teraz w quest możesz wykorzystać te funkcję, pamiętaj o dodaniu do quest_function w ../locale/germany/quest.

 

pc.send_effect_packet(numer)
 

W miejsce numer wstawiasz pozycję, na której znajduje się Twój efekt w SPECIAL_EFFECT, można to policzyć.

 

SE_NONE, // 0

SE_HPUP_RED, // 1
SE_SPUP_BLUE, // 2
[...]
SE_DEAD // 25
Strona serwera już działa, można to sprawdzić na prostym przykładzie.

pc.send_effect_packet(1) -- efekt czerwonej mikstury
pc.send_effect_packet(2) -- efekt niebieskiej mikstury
pc.send_effect_packet(3) -- efekt zielonej mikstury
itd..

 

 

Teraz zastąpimy niepotrzebny, jakiś wielki, mijający się z celem napis na czerwono na Twój nowy efekt.

Nazywa się on: SE_LEVELUP_ON_14_FOR_GERMANY

W quescie dajesz instrukcję do wywołania.

pc.send_effect_packet(14) -- to jest jego numer
Dodatkowo w kliencie - root, w pliku playersettingmodule poprawiasz do niego ścieżkę na nową - Twoją.

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_ON_14_FOR_GERMANY, "","season1/effect/paymessage_warning.mse")	#·ąş§ľ÷ 14Ŕ϶§ ( µ¶ŔĎŔüżë )
na

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_ON_14_FOR_GERMANY, "","d:/ymir work/effect/etc/dead/dead_effect.mse")
Oczywiście, lepiej jest dodać nowy efekt. Nie jest to trudne, ten prosty poradnik powinien Cię nakierować jak to zrobić.

 

Można również przez SpecificEffectPacket jeśli chce wywolywać z scieżki wtedy bedzie cos typu:

pc.send_effect_packet("d:\\\\ymir work\\\\effect\\\\etc\\\\buff\\\\xxx.mse")

Opublikowano

Umieściłem to w quest i nie działa :

pc.send_effect_packet("d:\\\\ymir work\\\\effect\\\\etc\\\\buff\\\\xxx.mse")

Oczywiście na własny efekt nic się nie wyświetla.

tumblrmv8l.gif


Members | ProUser | PostmakerPostwriter | Wojownik Duszy

Opublikowano

Umieściłem to w quest i nie działa :

pc.send_effect_packet("d:\\\\ymir work\\\\effect\\\\etc\\\\buff\\\\xxx.mse")

Oczywiście na własny efekt nic się nie wyświetla.

 

W funkcji musisz zmienić odwołanie:

 

ch->EffectPacket((BYTE)lua_tonumber(L, 1));

na

 

ch->SpecificEffectPacket ((BYTE)lua_tonumber(L, 1));

2887814279715911366194.png

To jest prawdziwe Metinowe Pierdo*nięcie. EasY/MediuM Serwer z 5 Klasą Postaci.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...