Skocz do zawartości
Opublikowano

Więęęc. Jak na zalaczonym obrazku, czesci kostiumow sa "ukryte", a jednak i tak renderuje je w podgladzie graficznym.. System hide costume od owsapa, render target od Volvoxa. 
Przy okazji, jest jeszcze blad. Mianowicie w przypadku kazdej klasy, ktora moze nosic miecz, renderuje miecz dla sury, widzialem jakies ograniczenia i spojniki dla Race, ale niebardzo to chyba ma spojnosc. 
Jesli trzeba bedzie, zaplace za te fixy. 
image.png.fdf91664561fd6f86d9cfd4b32f8c93a.pngimage.png.b49d6f9401aa884fb4ad32827ca51c86.png

Featured Replies

Opublikowano
  • Autor

@Edit: 
Znalazlem drugi blad, zbroje dla roznych klas postaci renderowaly sie na innych w postaci ich odpowiednikow na dany lvl. Czyli szata baronow w eq wojownika renderowala sie jako zbroja boga.
Na to jak i na wszystko inne co dotyczy zbroi/broni jeden fix w linijce:

                if item.WEAPON_SWORD == itemSubType: 
                    if self.__ItemGetRace() == player.GetRace():     <---- fix
                        self.__ModelPreview(itemVnum, 3, player.GetRace())

Pozostaje kwestia dopisania gdzie (prawdopodobnie nizej) ifa, ktory odpowiada za pokazanie/ukrycie kostiumu.
            if (player.GetItemIndex(item.COSTUME_SLOT_BODY)==0):
                renderTarget.SetArmor(RENDER_TARGET_INDEX, player.GetItemIndex(item.EQUIPMENT_BODY))
            else:  
                renderTarget.SetArmor(RENDER_TARGET_INDEX, player.GetItemIndex(item.COSTUME_SLOT_BODY))

Opublikowano

Cos chyba zle dodales bo u mnie ten sam system pokazuje tylko ten item na ktory najade, a ignoruje to co mam na postaci
Podrzuce moj if od kostiumow moze ci cos pomoze
 

Spoiler
elif isCostumeItem:
			self.__AppendLimitInformation()
			self.__AppendAffectInformation()
			if preview != 0:
				if isCostumeBody and self.__ItemGetRace() == player.GetRace(): #body
					self.__ModelPreview(itemVnum, 2, player.GetRace())

				elif isCostumeHair: #Hair
					if item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR) == False and (player.GetRace() == 4 or player.GetRace() == 0):
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and chr.RaceToSex(player.GetRace()) == 0):
							pass
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and chr.RaceToSex(player.GetRace()) == 1):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
					if item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN) == False and (player.GetRace() == 5 or player.GetRace() == 1):
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and chr.RaceToSex(player.GetRace()) == 0):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and chr.RaceToSex(player.GetRace()) == 1):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
					if item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA) == False and (player.GetRace() == 2 or player.GetRace() == 6):
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and chr.RaceToSex(player.GetRace()) == 0):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and chr.RaceToSex(player.GetRace()) == 1):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
					elif item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN) == False and (player.GetRace() == 7 or player.GetRace() == 3):
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and chr.RaceToSex(player.GetRace()) == 0):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())
						if(item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and chr.RaceToSex(player.GetRace()) == 1):
							self.__ModelPreview(item.GetValue(3), 1, player.GetRace())

				elif app.ENABLE_WEAPON_COSTUME_SYSTEM and isCostumeWeapon: #weapon
					if player.GetRace() != 7 and player.GetRace() != 3:
						self.__ModelPreview(itemVnum, 3, player.GetRace())
					if player.GetRace() == 5 or player.GetRace() == 1:
						self.__ModelPreview(itemVnum, 3, player.GetRace())
					if player.GetRace() == 0 or player.GetRace() == 4:
						self.__ModelPreview(itemVnum, 3, player.GetRace())
					if player.GetRace() == 7 or player.GetRace() == 3:
						self.__ModelPreview(itemVnum, 3, player.GetRace())

				elif app.ENABLE_ACCE_COSTUME_SYSTEM and isCostumeAcce:
					self.__ModelPreview(itemVnum, 4, self.__ItemGetRace())

			if app.ENABLE_ACCE_COSTUME_SYSTEM and isCostumeAcce:
				## ABSORPTION RATE
				absChance = int(metinSlot[acce.ABSORPTION_SOCKET])
				self.AppendTextLine(localeInfo.ACCE_ABSORB_CHANCE % (absChance), self.CONDITION_COLOR)
				## END ABSORPTION RATE

				itemAbsorbedVnum = int(metinSlot[acce.ABSORBED_SOCKET])

				if itemAbsorbedVnum:
					## ATTACK / DEFENSE
					item.SelectItem(itemAbsorbedVnum)
					if item.GetItemType() == item.ITEM_TYPE_WEAPON:
						if item.GetItemSubType() == item.WEAPON_FAN:
							self.__AppendMagicAttackInfo(metinSlot[acce.ABSORPTION_SOCKET])
							item.SelectItem(itemAbsorbedVnum)
							self.__AppendAttackPowerInfo(metinSlot[acce.ABSORPTION_SOCKET])
						else:
							self.__AppendAttackPowerInfo(metinSlot[acce.ABSORPTION_SOCKET])
							item.SelectItem(itemAbsorbedVnum)
							self.__AppendMagicAttackInfo(metinSlot[acce.ABSORPTION_SOCKET])
					elif item.GetItemType() == item.ITEM_TYPE_ARMOR:
						defGrade = item.GetValue(1)
						defBonus = item.GetValue(5) * 2
						defGrade = self.CalcAcceValue(defGrade, metinSlot[acce.ABSORPTION_SOCKET])
						defBonus = self.CalcAcceValue(defBonus, metinSlot[acce.ABSORPTION_SOCKET])

						if defGrade > 0:
							self.AppendSpace(5)
							self.AppendTextLine(localeInfo.TOOLTIP_ITEM_DEF_GRADE % (defGrade + defBonus), self.GetChangeTextLineColor(defGrade))

						item.SelectItem(itemAbsorbedVnum)
						self.__AppendMagicDefenceInfo(metinSlot[acce.ABSORPTION_SOCKET])
					## END ATTACK / DEFENSE

					## EFFECT
					item.SelectItem(itemAbsorbedVnum)
					for i in xrange(item.ITEM_APPLY_MAX_NUM):
						(affectType, affectValue) = item.GetAffect(i)
						affectValue = self.CalcAcceValue(affectValue, metinSlot[acce.ABSORPTION_SOCKET])
						affectString = self.__GetAffectString(affectType, affectValue)
						if (not app.USE_ACCE_ABSORB_WITH_NO_NEGATIVE_BONUS and affectString and affectValue != 0) \
								or (app.USE_ACCE_ABSORB_WITH_NO_NEGATIVE_BONUS and affectString and affectValue > 0):
							self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))

						item.SelectItem(itemAbsorbedVnum)
					# END EFFECT

					item.SelectItem(itemVnum)
					## ATTR
					self.__AppendAttributeInformation(attrSlot, metinSlot[acce.ABSORPTION_SOCKET])
					# END ATTR
				else:
					# ATTR
					self.__AppendAttributeInformation(attrSlot)
					# END ATTR
			else:
				self.__AppendAttributeInformation(attrSlot)

			self.AppendWearableInformation()
			if (isCostumeBody or isCostumeHair) and self.__ItemGetRace() == player.GetRace(): #body
				self.AppendTextLine("{} - Podgląd".format(Emoji("icon\emoji\key_alt.png")))
			elif self.CanEquip(True) and not isCostumeBody and not isCostumeHair:
				self.AppendTextLine("{} - Podgląd".format(Emoji("icon\emoji\key_alt.png")))

			self.AppendLastTimeInformation(metinSlot)

 



Offtopic: tobie u martysamy odpisalem z tymi mobami czy zbieznosc nickow?

Edytowane przez lachimek
koda dodalem

Opublikowano
  • Autor

Poprosilem Volvoxa, zeby mi to zedytowal w ten sposob, aby kazdy zalozony item byl widoczny.. A u martysamy to pewnie mi, jak wiesz skad je uciuać, chetnie przyjme. Mohito z Xerem mi pomysly kradna za nim je wcielam w zycie haha.

Opublikowano

Masz na VPSie? jeśli tak to podrzuć mi na DC całego klienta jeśli byś mógł.

W dniu 27.01.2024 o 23:51, Makaveli napisał(a):

render target od Volvoxa

Najgorzej hyhyhy ale oki... 

P.S. weź opisz jeszcze dodatkowe problemy i podeślij nwm SSy z tym co pisałeś na czacie.

Opublikowano
  • Autor

Ogarnięte. Próbowałem różnych warunków od ukrycia kostiumu, ale w końcu jeden się udał. Później go podrzucę, jeśli ktoś jest zainteresowany. Teraz jest inny problem. Próbuje renderować świecenie z systemu świeceń, kod wygląda tak:

if (player.GetItemIndex(item.SHINING_SLOT_START+0)==0):

        renderTarget.ChangeShiningWeapon(RENDER_TARGET_INDEX, player.GetItemIndex(SHINING_SLOT_START+0))

if (player.GetItemIndex(item.SHINING_SLOT_START+1)==0):

 

        renderTarget.ChangeShiningWeapon(RENDER_TARGET_INDEX, player.GetItemIndex(SHINING_SLOT_START+1))

Jednak renderuje się tylko efekt ze slotu+1. Da się jakoś napisać kod w taki sposób, aby renderowalo każde świecenie, które jest aktualnie w slocie? Gpt nie pomógł za bardzo.

Gość
Dodaj odpowiedź do tematu...