• Perp problem
    52 replies, posted
I had some problem in perp mod i'm trying to fix This problem jumps when i'm looking at something i think thats problem with the preview of the items [lua\vgui\dmodelpanel.lua:69] ClientsideModel cannot be called while rendering How do i fix this .. i tried for hours to understand.
Yea but where i calling it Line 69 self.Entity = ClientsideModel( strModelName, RENDER_GROUP_OPAQUE_ENTITY )
You know little how the perp mod works and where the item preview is?
Sorry i didn't i tried for hours
Thats what i found self.ModelPanel = vgui.Create('DModelPanel', self);
[QUOTE=iRzilla;26585341]Check for a DModelPanel that doesn't exist and find the code that makes it.[/QUOTE] Don't you think that since it's referencing to the Table containing the Entity member as 'self', this would mean a custom Derma panel / a .Paint override?
[QUOTE=iRzilla;26585846]Nope not at all, it's just some poor coder trying to make vgui panels in a render/paint/draw hook.[/QUOTE] Sorry i'm new lol
So can you guys help me There is 2 functions that doing the problem (i think) [lua] function PANEL:SetItem ( Item, Type ) if !GAMEMODE.ItemDatabase[Item] then DebugMessage(Item .. ' is not a valid item.'); return false; end if self.MonitorItem == Item and self.MonitoringType == Type then return false; end self.MonitorItem = Item; self.MonitoringType = Type; local ItemTable = GAMEMODE.ItemDatabase[Item]; if self.ModelPanel then self.ModelPanel:Remove(); end self.ModelPanel = vgui.Create('DModelPanel', self); self.ModelPanel:SetModel(ItemTable.Model); self.ModelPanel:SetPos(4, 4); self.ModelPanel:SetSize(self:GetWide() - 8, self:GetTall() - 8); self.ModelPanel:SetCamPos(ItemTable.ModelCamPos) self.ModelPanel:SetLookAt(ItemTable.ModelLookAt) self.ModelPanel:SetFOV(ItemTable.ModelFOV) function self.ModelPanel:LayoutEntity( Entity ) local iSeq = self.ModelPanel.Entity:LookupSequence('ragdoll'); self.ModelPanel.Entity:ResetSequence(iSeq); end end [/lua] And this function [lua] function PANEL:SetItem ( Item, Type, Shop ) if !GAMEMODE.ItemDatabase[Item] then DebugMessage(Item .. ' is not a valid item.'); return false; end self.Type = Type; self.MonitorItem = Item; local IsTrade = self.Type == TYPE_TRADE_INVENTORY or self.Type == TYPE_TRADE_OFFER_LOCAL or self.Type == TYPE_TRADE_OFFER; if IsTrade then self.Quantity = Shop; elseif self.Type == TYPE_SHOP then self.Shop = Shop; end local ItemTable = GAMEMODE.ItemDatabase[Item]; if self.ModelPanel then self.ModelPanel:Remove(); end self.ModelPanel = vgui.Create('DModelPanel', self.Entity); self.ModelPanel:SetModel(ItemTable.Model); self.ModelPanel:SetPos(4, 4); self.ModelPanel:SetSize(self:GetWide() -8, self:GetTall() - 8); self.ModelPanel:SetCamPos(ItemTable.ModelCamPos) self.ModelPanel:SetLookAt(ItemTable.ModelLookAt) self.ModelPanel:SetFOV(ItemTable.ModelFOV) self.ModelPanel:SetMouseInputEnabled(false); function self.ModelPanel:LayoutEntity( Entity ) end local iSeq = self.ModelPanel.Entity:LookupSequence('ragdoll'); self.ModelPanel.Entity:ResetSequence(iSeq); end [/lua] ----I know it's the same function but in another file----
No idea =\
Help me? I found where it's called from local ItemPanel = vgui.Create('perp_item', PanelList1); ItemPanel:SetItem(k, TYPE_LOCAL);
Instead of fixing perp code a better gamemode
[QUOTE=c-unit;26599719]Instead of fixing perp code a better gamemode[/QUOTE] I don't want a better gamemode it's makes me busy to fix it i'm doing it for fun and to learn more.. And there is no hook
Personally, I do not think that taking PERP and fixing it up will ever help you to learn. Also, if there is no hook, then what function is it in? Is it getting called?
lol It's Panel and it registered.
Wow i can give you the whole page it gonna help?
We aren't here to fix it for you, we are here to help you fix it.
So tell me how lol.
snippp
I meant help me "we are here to help you fix it. " So help me lol
[QUOTE=Crapy;26615387]I meant help me "we are here to help you fix it. " So help me lol[/QUOTE] I hate it when people call me dumb when people like you exist.
[QUOTE=c-unit;26615470]I hate it when people call me dumb when people like you exist.[/QUOTE] lol.
Dude i got it You said if there is no hook then how it's getting called Leave this! why it's giving me error?
Dude i did this [lua] function PANEL:SetItem ( Item, Type ) if !GAMEMODE.ItemDatabase[Item] then DebugMessage(Item .. ' is not a valid item.'); return false; end if self.MonitorItem == Item and self.MonitoringType == Type then return false; end self.MonitorItem = Item; self.MonitoringType = Type; local ItemTable = GAMEMODE.ItemDatabase[Item]; if self.ModelPanel then self.ModelPanel:Remove(); end self.ModelPanel = vgui.Create('DModelPanel', self); // self.ModelPanel:SetModel(ItemTable.Model); self.ModelPanel:Center() self.ModelPanel:SetSize(self:GetWide() - 8, self:GetTall() - 8); self.ModelPanel:SetModel(ItemTable.Model) function self.ModelPanel:LayoutEntity( Entity ) local iSeq = self.ModelPanel.Entity:LookupSequence('ragdoll'); self.ModelPanel.Entity:ResetSequence(iSeq); end end vgui.Register('perp_item_elarged', PANEL); [/lua] Not working
[lua] for k, v in pairs(LocalPlayer():GetTable().RoleplayData.Items) do if !GAMEMODE.ItemDatabase[k] then LocalPlayer():GetTable().RoleplayData.Items[k] = nil; end local ItemPanel = vgui.Create('perp_item', PanelList1); ItemPanel:SetItem(k, TYPE_LOCAL); PanelList1:AddItem(ItemPanel); end [/lua]
[lua] function GM.CreateInventoryMenu ( ) local W, H = 500, 419; local DermaPanel = vgui.Create("DFrame") DermaPanel:SetPos(ScrW() * .5 - W * .5, ScrH() * .5 - H * .5) DermaPanel:SetSize(W, H) DermaPanel:SetTitle("Pulsar Effect RP - Inventory") DermaPanel:SetVisible(true) DermaPanel:SetDraggable(true) DermaPanel:ShowCloseButton(true) DermaPanel:MakePopup() local PanelList1 = vgui.Create("DPanelList", DermaPanel); PanelList1:EnableHorizontal(true) PanelList1:EnableVerticalScrollbar(true) PanelList1:SetPos(5, H - 389); PanelList1:SetSize(320, 384); PanelList1:SetSpacing(0); local PanelList2 = vgui.Create("DPanelList", DermaPanel); PanelList2:EnableHorizontal(true) PanelList2:EnableVerticalScrollbar(true) PanelList2:SetPos(330, 30); PanelList2:SetSize(165, 25); local PanelList3 = vgui.Create("DPanelList", DermaPanel); PanelList3:EnableHorizontal(true) PanelList3:EnableVerticalScrollbar(true) PanelList3:SetPos(330, 60); PanelList3:SetSize(165, 165); local PanelList4 = vgui.Create("DPanelList", DermaPanel); PanelList4:EnableHorizontal(true) PanelList4:EnableVerticalScrollbar(true) PanelList4:SetPos(330, 230); PanelList4:SetSize(165, 184); for k, v in pairs(LocalPlayer():GetTable().RoleplayData.Items) do if !GAMEMODE.ItemDatabase[k] then LocalPlayer():GetTable().RoleplayData.Items[k] = nil; end local ItemPanel = vgui.Create('perp_item', PanelList1); ItemPanel:SetItem(k, TYPE_LOCAL); PanelList1:AddItem(ItemPanel); end GAMEMODE.InventoryPanel_ItemList = PanelList1; PanelList2:AddItem(vgui.Create('perp_weight', PanelList2)); GAMEMODE.EnlargedImage = vgui.Create('perp_item_elarged', PanelList3); PanelList3:AddItem(GAMEMODE.EnlargedImage); GAMEMODE.EnlargedInfo = vgui.Create('perp_item_info', PanelList4); PanelList4:AddItem(GAMEMODE.EnlargedInfo); GAMEMODE.InventoryPanel = DermaPanel; end [/lua]
When you press F3 it's running it.
Listen dude we doing this for nothing I got problem with this if we fix it toghter i think it work [lua] local PANEL = {}; function PANEL:Init ( ) self:SetSize(165, 165); end function PANEL:PerformLayout ( ) end function PANEL:Paint ( ) end function PANEL:PaintOver ( ) end function PANEL:SetItem ( Item, Type ) if !GAMEMODE.ItemDatabase[Item] then DebugMessage(Item .. ' is not a valid item.'); return false; end if self.MonitorItem == Item and self.MonitoringType == Type then return false; end self.MonitorItem = Item; self.MonitoringType = Type; local ItemTable = GAMEMODE.ItemDatabase[Item]; if self.ModelPanel then self.ModelPanel:Remove(); end self.ModelPanel = vgui.Create('DModelPanel', self); self.ModelPanel:SetModel(ItemTable.Model); self.ModelPanel:SetPos(4, 4); self.ModelPanel:SetSize(self:GetWide() - 8, self:GetTall() - 8); self.ModelPanel:SetCamPos(ItemTable.ModelCamPos) self.ModelPanel:SetLookAt(ItemTable.ModelLookAt) self.ModelPanel:SetFOV(ItemTable.ModelFOV) function self.ModelPanel:LayoutEntity( Entity ) end local iSeq = self.ModelPanel.Entity:LookupSequence('ragdoll'); self.ModelPanel.Entity:ResetSequence(iSeq); end function PANEL:BlowItem ( Item, Type ) if self.MonitorItem == Item and self.MonitoringType == Type then self.ModelPanel:Remove(); self.MonitorItem = nil; end end vgui.Register('perp_item_elarged', PANEL); [/lua] The errors i get: [lua\vgui\dmodelpanel.lua:69] ClientsideModel cannot be called while rendering [Perp\gamemode\vgui\item_enlarged.lua:41] attempt to index field 'Entity' (a nil value) M
function GM.NW_ShowInventory ( UMsg ) GAMEMODE.CreateInventoryMenu(); end usermessage.Hook('perp_show_inventory', GM.NW_ShowInventory);
No And btw the command function GM:ShowSpare1 ( Player ) umsg.Start('perp_show_inventory', Player); umsg.End(); end
Or just fix it.
Sorry, you need to Log In to post a reply to this thread.