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

Lib pod game 34k z masą nowych funkcji


Rekomendowane odpowiedzi

Opublikowano

AKTUALNA WERSJA: 0.76

Aby sprawdzić wersję liba na serwerze wpisz na czacie /gLibrary

 

Postanowiłem udostępnić mojego starego liba.

Udostępniam bo przerzuciłem się już raczej na dobre na sorsa a komuś może się przyda, mi na pewno nie.

 

Lib posiada mase nowych funkcji takich jak:

* wczytywanie ustawień użytkownika z osobnego CONFIGu
* nowe funkcje questowe guild, item, npc, party, pc, pet
* wylacznie mozliwosci bonowania kostiumów 6-7 bonusem
* fix na czytanie KU ze stacka (znika tylko jedna książka)
* fix do_war
* atak z mountow o id 20127-20134
* wczytywanie tabeli expa z pliku, zwiekszony przedzial dla /level
* fix number_ex
* fix szybkiego wyrzucania przedmiotow na ziemie
* fix na niewidzialnosc przy zalogowaniu
* fix buga z party
* fix bonusu Niewrażliwy na Omdlenie
* mozliwosc ustawienia id potwora ktorego atakowac moze tylko szaman lub szaman i ninja (pod Strażnice Nemere)
* efekty uzycia fioletowej i zielonej potki
* funkcje do blokowania doświadczenia (prawdziwe blokowanie a nie usuwanie)
* mozliwosc ustawienia po jakim czasie mozna sie przeniesc do miasta i wstać w miejscu śmierci
* mozliwosc ustawienia procentowej ilosci zycia i many po wstaniu w miejscu smierci
* funkcje when dead begin
* możliwosc atakowania i omdlewania potworów przez zwierzaka
* nowe funkcje na czacie

Funkcje guild:

guild2.get_empire_by_guild_name(nazwa_gildii)    <-- Zwraca numer krolestwa z jakiego jest lider gildii

Funkcje item:

item2.get_wearflag()   <-- Zwraca wearflag przedmiotu
item2.set_attr(index_bonusu, id_bonusu, wartosc_bonusu)   <-- Ustawia bonus w przedmiocie
item2.get_attr(index_bonusu)   <-- Zwraca typ i wartosc bonusu w przedmiocie
item2.equip(slot)   <-- Zakłada przedmiot na daną pozycje
item2.unequip(slot)   <-- Ściąga przedmiot z podanej pozycji
item2.set_count(slot, ilosc)   <-- Zmienia ilosc przedmiotu z podanej pozycji
item2.get_value0_by_vnum(vnum_itemka)   <-- podaje value0 przedmiotu o danym vnumie
item2.get_applytype(index_apply)   <-- Podaje podane applytype danego przedmiotu 
item2.get_applyvalue(index_apply)   <-- Podaje podane applyvalue danego przedmiotu
item2.add_attribute()   <-- Dodaje bonus do przedmiotu

Funkcje npc:

npc2.get_level()   <-- Zwrca poziom potwora
npc2.get_vid()   <-- Zwraca vid potwora
npc2.show_effect(sciezka_do_efektu)   <-- Wyswietla efekt na potworze

Funkcje party:

party2.get_member_pids()   <-- Zwraca pidy wszystkich postaci w PT

Funkcje pc:

pc2.send_effect(sciezka_efektu)   <-- Wyświetla efekt na postaci
pc2.set_level(poziom)   <-- Ustawia postaci dany poziom
pc2.do_mysql_query(query)   <-- Funkcja query zwracajaca tablice
pc2.do_mysql_update(query)   <-- Funkcja query zwracajaca 1 dla powodzenia 0 dla nie powodzenia
pc2.do_mysql_escape_string_by_lollo(query)   <-- Escape string jak w php
pc2.block_exp()   <-- Blokuje napływanie doświadczenia
pc2.unblock_exp   <-- Odblokowuje napływanie doświadczenia
pc2.is_blocked_exp()   <-- Zwraca true jezeli exp jest zablokowany, false jezeli odblokowany
pc2.give_or_drop_item_and_select(id, ilosc)   <-- Dziala jak give_item ale dodany przedmiot jest zaznaczony, dzieki czemu mozna na nim uzyc funkcji np. item2.equip() ktora od razu zalozy go na dany slot
pc2.use_belt_item()   <-- Uzywa potki, nie bedzie wam dzialac. Wymaga difa i nowej tabelki do mysqla
pc2.select_by_pid(pid)   <-- Przechodzi questowo na gracza o podanym pidzie. Z uzyciem funkcji party2.get_member_pids() mozna sprawdzic np. czy wszyscy gracze w pt maja odpowiedni poziom aby przeteleportowac ich na dungeon.
pc2.give_item(id, ilosc)   <-- Dziala jak zwykly give_item tylko nie wyswietla informacji na czacie o dodaniu itemka
pc2.getqf_by_account_id(acc_id, nazwa_qfa)   <-- sprawdza questflaga innego gracza
pc2.get_client_version()   <-- Sprawdza wersje klienta gracza
pc2.delayed_disconnect(czas)   <-- Wyzuca gracza po uplywie czasu

Funkcje pet:

pet2.show_effect(vid_peta, sciezka_efektu)   <-- Wyswietla efekt na pecie
pet2.is_mine()   <-- Zwraca true jezeli klikniety zwierzak jest nasz, false jezeli nie
pet2.go_and_attack_mob(vid_potwora, vnum_zwierzaka)   <-- Zwierzak podbiega do potwora
pet2.set_attack_mob(vid_potwora, vnum_zwierzaka, po_ile_ma_uderzac)   <-- Zwierzak atakuje potwora
pet2.check_for_attack(vid_potwora, vnum_zwierzaka)   <-- Sprawdza czy mozna zaatakować potwora
pet2.stun_monster(vid_potwora, vnum_zwierzaka, na_ile_ma_omdlic)   <-- Omdlewa potwora
pet2.add_hp(vnum_zwierzaka, ilosc)   <-- Dodaje podana ilosc zycia zwierzakowi
pet2.set_hp(vnum_zwierzaka, ilosc)   <-- Ustawia podana ilosc zycia zwierzakowi
pet2.get_hp(vnum_zwierzaka)   <-- Zwraca ilosc zycia zwierzaka
pet2.get_max_hp(vnum_zwierzaka)   <-- Zwraca maksymalną ilosc zycia zwierzaka
pet2.set_max_hp(vnum_zwierzaka, ilosc)   <-- Ustawia podana ilosc max. zycia zwierzakowi
pet2.add_sp(vnum_zwierzaka, ilosc)   <-- Dodaje podana ilosc many zwierzakowi
pet2.set_sp(vnum_zwierzaka, ilosc)<-- Ustawia podana ilosc many zwierzakowi
pet2.get_sp(vnum_zwierzaka)   <-- Zwraca ilosc many zwierzaka
pet2.get_max_sp(vnum_zwierzaka)   <-- Zwraca maksymalną ilosc many zwierzaka
pet2.set_max_sp(vnum_zwierzaka, ilosc)   <-- Ustawia podana ilosc max. many zwierzakowi
pet2.add_stamina(vnum_zwierzaka, ilosc)   <-- Dodaje podana ilosc staminy zwierzakowi
pet2.set_stamina(vnum_zwierzaka, ilosc)   <-- Ustawia podana ilosc staminy zwierzakowi
pet2.get_stamina(vnum_zwierzaka)   <-- Zwraca ilosc staminy zwierzaka
pet2.get_max_stamina(vnum_zwierzaka)   <-- Zwraca maksymalną ilość staminy zwierzaka
pet2.set_max_stamina(vnum_zwierzaka, ilosc)   <-- Ustawia podana ilosc max. staminy zwierzakowi
pet2.show_exp_fly_orb(vid_potwora, vnum_zwierzaka, opcjonalnie numer 1-16)   <-- Wyswietla efekt kulki lecacej do zwierzaka. Uzyc przy when kill with pet.count_summoned() > 0 begin
pet2.start_stamina_consume(vnum_zwierzaka, ile_zabierac, co_ile_zabierac)   <-- Zabiera zwierzakowi stamine co jakis czas
pet2.stop_stamina_consume()   <-- Przestaje zabierac stamine zwierzakowi
pet2.start_resp_hpmp(vnum_zwierzaka, ile_hp_dodawac, ile_mp_dodawac, co_jaki_czas)   <-- Resp zwierzakowi hp i mp
pet2.stop_resp_hpmp()   <-- Przestaje respic hp i mp
pet2.start_stun_skill(na_ile_omdlewac, szansa_na_omdlenie, przez_jaki_czas_skill_aktywny)   <-- Gdy funkcja zostanie uzyta a postac uderzy jakis potwor jest szansa, ze zostanie omdlony
pet2.show_metin_search_effect(vnum_zwierzaka)   <-- Wyswietla efekt wyszukiwarki kamieni metin na zwierzaku

Przykład użycia ataku zwierzaka: http://wklej.to/7lnMW

 

Informacje co do zwierzaka:

 

Większość funkcji peta nie była używana ani sprawdzana, dlatego nie zalecam ich używać.

Jeżeli jednak ktoś się uprze to zalecam patrzeć w syserr klienta, bo bedzie brakowac paru cmdchatów.

 

 

Funkcje na czacie:

* /cmd nazwa_cmdchata wartosc     <-- Wysyla cmdchata z serwera do klienta
* /efekt 1-24     <-- Wyswietla efekt na postaci
* /gLibrary   <-- Podaje informacje o wlaczonych funkcjach liba

Przykładowy plik konfiguracyjny:

 

 

item2: 1 // Dodaje tablice item2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
npc2: 1 // Dodaje tablice npc2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
pc2: 1 // Dodaje tablice pc2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
pet2: 1 // Dodaje tablice pet2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
party2: 1 // Dodaje tablice party2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
guild2: 1 // Dodaje tablice guild2 z funkcjami questowymi. 0 -> Nie dodaje ||  1 -> Dodaje
67incostume: 1 // Blokuje mozliwosc zmiany/dodania 6/7 bonusu w kostiumach. 0 -> Nic nie zmienia ||  1 -> Blokuje możliwość zmiany
do_war_fix: 1 // Poprawia funkcje /do_war 0 -> Nic nie zmienia || 1 -> Poprawia funkcje
more_mount: 1 // Dodaje możliwość atakowania z mountow 20127-20134 0 -> Nic nie zmienia || 1 -> Dodaje możliwość ataku
exp_table: 1 // Ustawia wczytywanie wlasnej tabeli z expem, oraz powieksza funkcje /level 0 -> Nic nie zmienia || 1 -> Zmienia
pet_attack: 1 // Zmienia pare funkcji, dzieki ktorym pet moze atakowac moba, mob peta 0 -> Nie zmienia (pare funkcji questowych nie bedzie działać) || 1 -> Zmienia
anty_exp: 1 // Dzięki temu funkcje pc2.block_exp, pc2.unblock_exp, pc2.is_blocked_exp będą działać poprawnie 0 -> Nie będą działać || 1 -> Będą działać
green_potion_effect: 1 // Dodaje zielony efekt wypicia zielonej potki (Szybkosc ataku) 0 -> Nie włącza || 1 -> Włącza
purple_potion_effect: 1 // Dodaje fioletowy efekt wypicia fioletowej potki (Szybkosc Ruchu) 0 -> Nie włącza || 1 -> Włącza
number_ex: 1 // Naprawia komende /dice i /ÁÖ»çŔ§ 0 -> Nic nie zmienia || 1 -> Naprawia
drop_hack: 1 // Wyrzuca gracza, gdy wyrzuci nagle zbyt duzo przedmiotów 0 -> Nic nie zmienia || 1 -> Wyrzuca gracza
fix_invisibility: 1 // Poprawia buga z niewidzialnością po respie 0 -> Nic nie zmienia || 1 -> Poprawia
fix_nno_nns: 1 // Poprawia błąd z nno, nns w tarczy. 0 -> Nic nie robi || 1 -> Niezależnie kiedy założymy tarcze nno/nns się uaktywni. (90% szans na zadziałanie nno)
fix_skill_book_stack_bug: 1 // Poprawia bład z czytaniem KU z stacka. 0 -> Nic nie robi || 1 -> Poprawia błąd
only_shaman_can_damage: 8057 // ID moba/metka itd. ktoremu obrazenia moze zadac tylko szaman. 0 -> Zaden
only_shaman_and_ninja_can_damage: 8064 // ID moba/metka itd. ktoremu obrazenia moze zadac tylko szaman i ninja. 0 -> Zaden
szukac: 200 // Nie ruszac!!
fix_party_bug: 1 // Poprawia blad z wywaleniem kanalu poprzez PT 0 -> Nic nie zmienia || 1 -> Poprawia
resp_here_time: 5 // Czas po jakim postac moze sie respnac w miejscu smierci
resp_town_time: 1 // Czas po jakim postac moze sie respnac w miescie
hp_percent_here: 25 // Ile procent maksymalnej ilosci zycia dostanie postac po wstaniu w miejscu smierci
hp_percent_town: 100 // Ile procent maksymalnej ilosci zycia dostanie postac po wstaniu w miescie
new_party_bug: 1 // Naprawia buga z zliczaniem hp/pe w party. 0 -> Zostawia jak jest || 1 -> Wgrywa fixa

 

 

 

Aktualizacje:

 

 

Aktualizacja 18.07.2015 ver.0.76

 

* Poprawiony fix na szybkie wyrzucanie przedmiotów

Aktualizacja 10.07.2015 ver.0.75

* Naprawiłem zakładanie fryzury
* Dodałem fixa na zliczanie bonusu hp/pe w grupie
          * Nowa linijka do pliku kofiguracyjnego liba: new_party_bug: 1
* Usunąłem zbędne chaty z funkcji questowych

 

 

 

Download:
http://speedy.sh/afNZb/Library-by-Gebel-v0.76.rar

https://mega.co.nz/#!PBFQXYLC!kGzKIyaCIV-g2b_wLvKazPIsvQNN9D_er97ZUmxQASU
 
Skan:
https://www.virustotal.com/pl/file/520f2417aa58afb977bbe424f1af50cd62a99f6f669317157af00a197e27e9b1/analysis/1436130968/
 

Plik exp_table oraz gLibraryCONFIG musi znajdować się w katalogu /usr/home/mt2/

Lib tylko pod wersje game 34k!!!

 
Podziękowania dla Imera za świetną podstawke bez której tego liba by nie było :)

Gość Lajk™
Opublikowano

Piękna sprawa  B) 

Nie zdziwię się jak zobaczę na mpc liba na stacki, limit yang i 4 str w eq :D

­

Opublikowano

Piękna sprawa B)

Nie zdziwię się jak zobaczę na mpc liba na stacki, limit yang i 4 str w eq :D

­

 

Za dużo roboty po stronie klienta.

Opublikowano

Bardzo fajny lib, jakbyś wrzucił coś takiego 2 lata temu to by była kosa, ale teraz jak jest source? Nie ma sensu :/

Pewnie komuś się przyda. Łap like.

9pn889.png

Opublikowano

Przecież ten lib to cudo dla osób, które pracują na tym game. Jak to mówi Wiesław Wszywka "Piękna sprawa to jest" Rly graty ;)

Opublikowano

Trochę nad nim przysiedziałem :D Jak będzie potrzeba czegoś więcej w libku to możecie pisać na PW czy w temacie, będę miał chwile czasu to może dodam.

Opublikowano

Nie powiem, kawał dobrej roboty.Source funkcji by się przydało :D

 

Jakieś mogę podrzucić, na pewno nie oddam petów :D

Opublikowano

Trochę nad nim przysiedziałem :D Jak będzie potrzeba czegoś więcej w libku to możecie pisać na PW czy w temacie, będę miał chwile czasu to może dodam.

ciul XDDDD

 

Ja nie polecam go używać, bo tam siedzi niespodzianka xD

Tak serio to świetna robota, co się stało, że akurat teraz go wrzuciłes?

Opublikowano

@Hardkorrek do petów mam swoje xD  .Bardziej interesuje mnie pc2.*

 

Jak w nich nie ma nic ciekawego.

set_level:

 

 

	int tPC2::set_level(lua_State *L)
	{
		CHARACTER* ch = CQuestManager::instance()->GetCurrentCharacterPtr();
		if (ch && lua::IsNumber(L,1))
		{
			ch->ResetPoint(lua::ToNumber(L, 1));
			lua::PushBoolean(L, 1);
			return 1;
		}
		lua::PushBoolean(L, 0);
		return 1;
	} 

 

 

send_effect:

 

 

	int tPC2::send_effect(lua_State *L)
	{
		CHARACTER* ch = CQuestManager::instance()->GetCurrentCharacterPtr();
		if (ch)
		{
			if (lua::IsString(L, 1))
			{
				ch->SpecificEffectPacket(lua::ToString(L, 1));
				lua::PushNumber(L, 1);
			}
		}
		else
			lua::PushNumber(L, 0);
	
		return 1;
	} 

 

 

select_by_pid:

 

 

	int tPC2::select_by_pid(lua_State *L)
	{
		DWORD pid = lua::ToNumber(L, 1);

		CHARACTER* ch = CQuestManager::instance()->GetCurrentCharacterPtr();
		if (!ch)
			return 0;
		CHARACTER* new_ch = CHARACTER_MANAGER::instance()->FindByPID(pid);

		if (new_ch)
		{
			CQuestManager::instance()->GetPC(new_ch->GetPlayerID());
			lua::PushNumber(L, ch->GetPlayerID());
		}
		else
			lua::PushNumber(L, 0);

		return 1;
	} 

 

 

get_questflag_by_account_id:

 

 

	int tPC2::get_questflag_by_account_id(lua_State* L)
	{
		PC* pPC = CQuestManager::instance()->GetPC(lua::ToNumber(L, 1));
		if (pPC)
		{
			lua::PushNumber(L, pPC->GetFlag(lua::ToString(L, 2)));
			return 1;
		}
		return 0;
	} 

 

 

get_client_version:

 

 

	int tPC2::get_client_version(lua_State* L)
	{
		CHARACTER* ch = CQuestManager::instance()->GetCurrentCharacterPtr();
		if (ch)
		{
			lua::PushString(L, ch->GetDesc()->GetClientVersion());
			return 1;
		}

		return 0;
	} 

 

 

delayed_disconnect:

 

 

	int tPC2::delayed_disconnect(lua_State* L)
	{
		CHARACTER* ch = CQuestManager::instance()->GetCurrentCharacterPtr();
		int dctime;
		if (!lua::IsNumber(L, 1) || lua::ToNumber(L, 1) < 0)
			dctime = 0;
		else
			dctime = lua::ToNumber(L, 1);
		
		if (ch)
			ch->GetDesc()->DelayedDisconnect(dctime);

		return 0;
	} 

 

 

Opublikowano

Ja Tylko czekam, aż będzie lib z 4 stronami EQ i limitem yang. Wtedy schodzę z src :D

Opublikowano

Ja Tylko czekam, aż będzie lib z 4 stronami EQ i limitem yang. Wtedy schodzę z src :D

Powiem szczerze, że ja chyba też :) Praca na starych game była fajniejsza i było mniej pracy :)

9pn889.png

Opublikowano

Trochę nad nim przysiedziałem :D Jak będzie potrzeba czegoś więcej w libku to możecie pisać na PW czy w temacie, będę miał chwile czasu to może dodam.

Efekt po handlu, 4 strony eq :D

I jak użyć funkcji na efekt expa dla peta ;O

Opublikowano

Konkretniej te

pc2.do_mysql_query(query)   <-- Funkcja query zwracajaca tablice

pc2.do_mysql_update(query)   <-- Funkcja query zwracajaca 1 dla powodzenia 0 dla nie powodzenia

pc2.do_mysql_escape_string_by_lollo(query)   <-- Escape string jak w php

 

Bo nie wiem skad je wytrzasnac  xD @Hardkorrek

 

Nie wiem czy moge tu wkleic link do innego forum, więc łap tak:

http://lmgtfy.com/?q=mysql+query+by+lollo+epvp

 

Efekt po handlu, 4 strony eq :D

I jak użyć funkcji na efekt expa dla peta ;O

 

Przy whenie przywołującym peta dajesz:

local mobVnum = pet_info[1]
pc.setqf("mobVnum", mobVnum)

Potem wklejasz do questa:

when kill with pet.count_summoned() > 0 begin
	pet2.show_exp_fly_orb(npc2.get_vid(), pc.getqf("mobVnum"), 1)
end
Opublikowano

Aktualizacja do wersji 0.75:

 

* Naprawiłem zakładanie fryzury
* Dodałem fixa na zliczanie bonusu hp/pe w grupie
          * Nowa linijka do pliku kofiguracyjnego liba: new_party_bug: 1
* Usunąłem zbędne chaty z funkcji questowych
  • 8 miesięcy temu...
  • 4 tygodnie później...
Opublikowano

Nie ma sensu, jest parę poważnych błędów a ja nie mam czasu ich poprawić.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...