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.