Problema inventare

În cazul în care aveţi o nelămurire postaţi aici, de asemenea este locul unde puteţi găsi posibile rezolvări la problemele dvs.
Avatar utilizator
xAlin
Nou Venit

Nou Venit
Mesaje: 41
Membru din: 05 Feb 2015, 16:22
Server: In curand
Regat: Jinno
Aprecieri: 7  
Mulţumiri: 0
  Rezolvări prob.: 2
Medalii

*Problemă/Întrebare: inventarele nu functioneaza
Tipologie server:pvm
*Resursă folosită: din serverfile
*ServerFiles utilizat:serverfiles-tmp4
*Syserr: este gol
Poză:Imagine https://ibb.co/tYwxwDs EDIT: https://ibb.co/khxwmcs
*Detalii suplimentare: Am folosit tutorialul de la serverfile. Problema este ca nu pot folosi ultimele 2 inventare + itemele de le echipez se pun acolo. Iar daca vreau sa pun ceva in ultimul inventar imi spune ca nu pot folosi slotul curelei
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

in exchange.cpp
schimba asta

Cod: Selectaţi tot

	LPCHARACTER	victim = GetCompany()->GetOwner();
	LPITEM item;

	int i;

	const int perPageSlotCount = INVENTORY_MAX_NUM / 4;

	for (i = 0; i < INVENTORY_MAX_NUM; ++i) {
		if (!(item = victim->GetInventoryItem(i)))
			continue;

		BYTE itemSize = item->GetSize();

		if (i < perPageSlotCount) // Notice: This is adjusted for 4 Pages only!
			s_grid1.Put(i, 1, itemSize);
		else if (i < perPageSlotCount * 2)
			s_grid2.Put(i - perPageSlotCount, 1, itemSize);
		else if (i < perPageSlotCount * 3)
			s_grid3.Put(i - perPageSlotCount * 2, 1, itemSize);
		else
			s_grid4.Put(i - perPageSlotCount * 3, 1, itemSize);
	}
cu asta

Cod: Selectaţi tot

	LPCHARACTER	victim = GetCompany()->GetOwner();
	LPITEM item;

	int i;

	const int perPageSlotCount = INVENTORY_MAX_NUM / 4;

	for (i = 0; i < INVENTORY_MAX_NUM; ++i) {
		if (!(item = victim->GetInventoryItem(i)))
			continue;

		BYTE itemSize = item->GetSize();

		if (i < perPageSlotCount) // Notice: This is adjusted for 4 Pages only!
			s_grid1.Put(i, 1, itemSize);
		else if (i < perPageSlotCount * 4)
			s_grid2.Put(i - perPageSlotCount, 1, itemSize);
		else if (i < perPageSlotCount * 3)
			s_grid3.Put(i - perPageSlotCount * 4, 1, itemSize);
		else
			s_grid4.Put(i - perPageSlotCount * 4, 1, itemSize);
	}
Imagine
Afișează semnătura
Avatar utilizator
kolenmg
Nou Venit

Nou Venit
Mesaje: 6
Membru din: 20 Iul 2023, 20:21
Regat: Chunjo
Aprecieri: 25  
Mulţumiri: 0
Discord: Copiază ID
Medalii

A functionat? Mie nu imi merge solutia de la yonr1, Am refacut tutorialul de 3 ori, cap coada, comparat fisierele. Am urmarit si tutoriale asemanatoare de la altele dar din pacate am aceeasi problema. In inventarul 3 se pune echipamentul iar in inventarul 4 am eroarea legata de belt ca nu pot pune in belt iteme.

Imagine
https://snipboard.io/Pj3JGs.jpg
uiInventory.py este ca in acel tutorial de pe forum
la fel si cu inventorywindow.py

Am compilat si clientul cu acelasi change facut in Gametype.h

Pe partea de sursa, la fel, modificat si facut cu copy paste tot ce scrie in tutorial. De asemenea am incercat si alte variante, am folosit si tutorialul cu 4 inventare in care butoanele sunt unu langa altul. Aceeasi problema din pacate.. Nu inteleg ce are si de unde provine.. Ca si server file, folosesc "Serverfile40250_2014 by TMP".

Aproape am invatat pe-de-rost cum se face treaba, ce si unde se schimba si ce face fiecare linie in parte :))
Althaia - Hobby Project :)
Afișează semnătura
Avatar utilizator
Yanni
Nivel 1

Nivel 1
Mesaje: 55
Membru din: 28 Aug 2020, 18:43
Server: Propriu
Regat: Chunjo
Aprecieri: 164  
Mulţumiri: 0
Discord: Copiază ID
Medalii

Din cate imi amintesc, tmp are in fisierul serverului extensie la 4 inventare, verificati tutorialul cap coada si mutati inventorywindow din locale in uiscript sa nu va incurcati ca-s 2.
Avatar utilizator
kolenmg
Nou Venit

Nou Venit
Mesaje: 6
Membru din: 20 Iul 2023, 20:21
Regat: Chunjo
Aprecieri: 25  
Mulţumiri: 0
Discord: Copiază ID
Medalii

Yanni scrie: ↑04 Feb 2024, 17:59 Din cate imi amintesc, tmp are in fisierul serverului extensie la 4 inventare, verificati tutorialul cap coada si mutati inventorywindow din locale in uiscript sa nu va incurcati ca-s 2.
M-am jucat umpic si cu inventorywindow.py din uiscript. De asemenea, am setat si in beltinventorywindow.py: EQUIPMENT_START_INDEX = 180. Problema e aceeasi.
Am incercat ca toata definitia de 4 inventare din inventorywindow.py sa fie doar in uiscript in timp ce sa by default sa fie in locale, nu a mers dadea syserr erori si era de asteptat.

Am incercat sa fie ambele fisiere la fel, nu a mers.

Totusi, am pus fisierele uiinventory / inventorywindow / belinventorywindow cum au fost la inceput, by default. Cand am intrat sa ma uit, intr-adevar, de asteptat sa am 2 inventare. Totusi, itemele echipate nu erau in sloturile care trebuie, ca si cum inca persista problema. Ma duce cu gandul ca fie e o problema in Gametype.h desi nu cred ca e doar un mic change acolo; fie problema e din sursa server. cumva nu ii place.


Imagine


O sa incerc sa caut acea extensie de care spui, momentan nu stiu unde ar trebui sa se afle dar ii dau eu de cap.. sper. Daca nu, o sa incep de la 0 proiectul si imi fac backup la ce am mai important.
Althaia - Hobby Project :)
Afișează semnătura
Avatar utilizator
kolenmg
Nou Venit

Nou Venit
Mesaje: 6
Membru din: 20 Iul 2023, 20:21
Regat: Chunjo
Aprecieri: 25  
Mulţumiri: 0
Discord: Copiază ID
Medalii

Am gasit problema. Overall, eu nu prea eram atent in consola dupa ce compilam game si db. aparent aveam o eroare cu char.cpp, si atunci cand compilezi si ai o eroare, procesul de compilare se opreste la fisierul in care ai probleme si nu sare peste, de unde rezulta ca fisierele modificate de mine nu ajungeau niciodata sa fie compilate de unde aparea si bug-ul din forum thread. am dat replace la char.cpp si char.h si am dat recompile si a mers totul ca unsa. M-am invatat minte sa ma uit in consola mai des. Am pierdut 10 ore active ca sa dau "debug" la treaba asta, doar pentru o eroare in consola la care nu am fost atent...

Pentru posteritate >>> Ce recomand este:
Daca aveti serverfile de la TMP, recomand sa cititi activ alea 50 de pagini din thread-ul in care a postat servefile (stiti unde sa il gasiti, daca il aveti)
De asemenea, recomand si video-ul lui: https://www.youtube.com/watch?v=HcLXXOMXG98
Mai recomand si SA VA UITATI LA FIECARE EROARE din consola!!

TIP: poate unii nu stiu, dar dupa ce faceti modificarile in exchange.cpp / common > length.h / char_item.cpp, TREBUIE SA compilati game si DB (gamecompile /dbcompile -comenzile pot sa difere in functie de SVF)

Partea buna in astea 10 ore pierdute e ca am invatat destul de multe si sunt destul de confident pe anumite parti!
Legat de acest subiect, ma puteti gasi pe discord, daca aveti aceleasi erori, pot incerca sa va ajut sa le repar (doar oameni seriosi).
Althaia - Hobby Project :)
Afișează semnătura
Răspunde
Răspunsuri
17
Vizualizări
1580
Răspunsuri
2
Vizualizări
250
Răspunsuri
4
Vizualizări
231
Răspunsuri
3
Vizualizări
310

Înapoi la “Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori