@@ -1548,84 +1548,87 @@ end
1548
1548
1549
1549
-- Mainly just wrappers to the other non-player functions
1550
1550
function PlayerTextDrawDestroy (amx , player , textdrawID )
1551
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1551
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1552
1552
return false
1553
1553
end
1554
1554
clientCall (player , ' TextDrawDestroy' , amx .name , textdrawID )
1555
- amx . playertextdraws [player ][textdrawID ] = nil
1555
+ g_PlayerTextDraws [player ][textdrawID ] = nil
1556
1556
end
1557
1557
function PlayerTextDrawShow (amx , player , textdrawID )
1558
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1558
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1559
+ outputDebugString (' PlayerTextDrawShow: not showing anything, not valid' )
1559
1560
return false
1560
1561
end
1561
- local textdraw = amx .playertextdraws [player ][textdrawID ]
1562
- local playerdata = g_Players [getElemID (player )]
1563
- playerdata .visibletextdraws = playerdata .visibletextdraws or {}
1564
- if not textdraw or playerdata .visibletextdraws [textdraw ] then
1565
- return
1566
- end
1562
+ g_PlayerTextDraws [player ][textdrawID ].visible = true
1567
1563
clientCall (player , ' TextDrawShowForPlayer' , amx .name , textdrawID )
1568
- playerdata .visibletextdraws [textdraw ] = true
1569
1564
return true
1570
1565
end
1571
1566
function PlayerTextDrawHide (amx , player , textdrawID )
1572
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1567
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1573
1568
return false
1574
1569
end
1575
- local textdraw = amx .playertextdraws [player ][textdrawID ]
1576
- local playerdata = g_Players [getElemID (player )]
1577
- playerdata .visibletextdraws = playerdata .visibletextdraws or {}
1578
- if not textdraw or not playerdata .visibletextdraws [textdraw ] then
1579
- return
1580
- end
1570
+ g_PlayerTextDraws [player ][textdrawID ].visible = false
1581
1571
clientCall (player , ' TextDrawHideForPlayer' , amx .name , textdrawID )
1582
- playerdata .visibletextdraws [textdraw ] = nil
1583
1572
end
1584
1573
function PlayerTextDrawBoxColor (amx , player , textdrawID , r , g , b , a )
1585
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1574
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1586
1575
return false
1587
1576
end
1588
- amx . playertextdraws [player ][textdrawID ].boxcolor = { r , g , b , a }
1577
+ g_PlayerTextDraws [player ][textdrawID ].boxcolor = { r , g , b , a }
1589
1578
end
1590
1579
function PlayerTextDrawUseBox (amx , player , textdrawID , usebox )
1591
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1580
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1592
1581
return false
1593
1582
end
1594
- amx .playertextdraws [player ][textdrawID ].usebox = usebox
1583
+ local pId = getElemID (player )
1584
+ if pId ~= nil then
1585
+ g_PlayerTextDraws [player ][textdrawID ].usebox = usebox
1586
+ end
1595
1587
return true
1596
1588
end
1597
1589
function PlayerTextDrawTextSize (amx , player , textdrawID , x , y )
1598
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1590
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1599
1591
return false
1600
1592
end
1601
- amx .playertextdraws [player ][textdrawID ].boxsize = { x , y }
1593
+ local pId = getElemID (player )
1594
+ if pId ~= nil then
1595
+ g_PlayerTextDraws [player ][textdrawID ].boxsize = { x , y }
1596
+ end
1602
1597
return true
1603
1598
end
1604
1599
function PlayerTextDrawLetterSize (amx , player , textdrawID , x , y )
1605
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1600
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1606
1601
return false
1607
1602
end
1608
- amx .playertextdraws [player ][textdrawID ].lwidth = width
1609
- amx .playertextdraws [player ][textdrawID ].lheight = height
1603
+ local playerId = getElemID (player )
1604
+ g_PlayerTextDraws [player ][textdrawID ].lwidth = width
1605
+ g_PlayerTextDraws [player ][textdrawID ].lheight = height
1610
1606
return true
1611
1607
end
1612
- function IsPlayerTextDrawValid (amx , player , textdrawID )
1613
- if not amx .playertextdraws [player ] then
1608
+ function IsPlayerTextDrawValid (player , textdrawID )
1609
+ if not g_PlayerTextDraws [player ] then
1610
+ outputDebugString (" [ERROR] IsPlayerTextDrawValid: g_PlayerTextDraws[player] is nil! for textdrawID: " .. textdrawID )
1614
1611
return false
1615
1612
end
1616
- local textdraw = amx . playertextdraws [ player ] and amx . playertextdraws [player ][textdrawID ]
1613
+ local textdraw = g_PlayerTextDraws [player ][textdrawID ]
1617
1614
if not textdraw then
1615
+ outputDebugString (" [ERROR] IsPlayerTextDrawValid: no textdraw properties for player with textdrawID: " .. textdrawID )
1618
1616
return false
1619
1617
end
1620
1618
return true
1621
1619
end
1622
1620
function CreatePlayerTextDraw (amx , player , x , y , text )
1623
- if not amx .playertextdraws [player ] then
1624
- amx .playertextdraws [player ] = {}
1625
- end
1626
1621
outputDebugString (' CreatePlayerTextDraw called with args ' .. x .. ' ' .. y .. ' ' .. text )
1627
- local textdraw = { x = x , y = y , shadow = {align = 1 , text = text , font = 1 , lwidth = 0.5 , lheight = 0.5 } }
1628
- local id = # amx .textdraws + table.insert (amx .playertextdraws [player ], textdraw ) -- I want the ids to always be greater than the other textdraws so they don't collide when trying to use certain functions to hide them
1622
+
1623
+ if ( not g_PlayerTextDraws [player ] ) then -- Create dimension if it doesn't exist
1624
+ outputDebugString (' Created dimension for g_PlayerTextDraws[player]' )
1625
+ g_PlayerTextDraws [player ] = {}
1626
+ end
1627
+
1628
+ local textdraw = { x = x , y = y , shadow = {visible = 0 , align = 1 , text = text , font = 1 , lwidth = 0.5 , lheight = 0.5 } }
1629
+ local id = # amx .textdraws + table.insert (g_PlayerTextDraws [player ], textdraw )
1630
+
1631
+ textdraw .id = id
1629
1632
setmetatable (
1630
1633
textdraw ,
1631
1634
{
@@ -1642,65 +1645,68 @@ function CreatePlayerTextDraw(amx, player, x, y, text)
1642
1645
end
1643
1646
end
1644
1647
if different then
1645
- clientCall (player , ' TextDrawPropertyChanged' , amx .name , id , k , v )
1648
+ outputDebugString (' A property changed for ' .. textdraw .id .. ' string: ' .. textdraw .text )
1649
+ clientCall (player , ' TextDrawPropertyChanged' , amx .name , textdraw .id , k , v )
1646
1650
t .shadow [k ] = v
1647
1651
end
1648
1652
end
1649
1653
}
1650
1654
)
1655
+
1656
+ outputDebugString (' assigned id ' .. id .. ' to playertextdraws' )
1651
1657
clientCall (player , ' TextDrawCreate' , amx .name , id , table .deshadowize (textdraw , true ))
1652
1658
return id
1653
1659
end
1654
1660
function PlayerTextDrawAlignment (amx , playerid , textdrawID , align )
1655
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1661
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1656
1662
return false
1657
1663
end
1658
- amx . playertextdraws [player ][textdrawID ].align = (align == 0 and 1 or align )
1664
+ g_PlayerTextDraws [player ][textdrawID ].align = (align == 0 and 1 or align )
1659
1665
return true
1660
1666
end
1661
1667
function PlayerTextDrawBackgroundColor (amx , playerid , textdrawID , r , g , b , a )
1662
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1668
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1663
1669
return false
1664
1670
end
1665
- amx . playertextdraws [player ][textdrawID ].outlinecolor = { r , g , b , a }
1671
+ g_PlayerTextDraws [player ][textdrawID ].outlinecolor = { r , g , b , a }
1666
1672
return true
1667
1673
end
1668
1674
function PlayerTextDrawFont (amx , playerid , textdrawID , font )
1669
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1675
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1670
1676
return false
1671
1677
end
1672
- amx . playertextdraws [player ][textdrawID ].font = font
1678
+ g_PlayerTextDraws [player ][textdrawID ].font = font
1673
1679
return true
1674
1680
end
1675
1681
function PlayerTextDrawColor (amx , playerid , textdrawID , r , g , b , a )
1676
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1682
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1677
1683
return false
1678
1684
end
1679
- amx . playertextdraws [player ][textdrawID ].color = { r , g , b }
1685
+ g_PlayerTextDraws [player ][textdrawID ].color = { r , g , b }
1680
1686
return true
1681
1687
end
1682
1688
function PlayerTextDrawSetOutline (amx , playerid , textdrawID , size )
1683
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1689
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1684
1690
return false
1685
1691
end
1686
- amx . playertextdraws [player ][textdrawID ].outlinesize = size
1692
+ g_PlayerTextDraws [player ][textdrawID ].outlinesize = size
1687
1693
return true
1688
1694
end
1689
1695
function PlayerTextDrawSetProportional (amx , playerid , textdrawID , proportional )
1690
1696
-- TextDrawSetProportional(amx, textdraw, proportional)
1691
1697
end
1692
1698
function PlayerTextDrawSetShadow (amx , playerid , textdrawID , size )
1693
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1699
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1694
1700
return false
1695
1701
end
1696
- amx . playertextdraws [player ][textdrawID ].shade = size
1702
+ g_PlayerTextDraws [player ][textdrawID ].shade = size
1697
1703
return true
1698
1704
end
1699
1705
function PlayerTextDrawSetString (amx , playerid , textdrawID , str )
1700
- if not IsPlayerTextDrawValid (amx , player , textdrawID ) then
1706
+ if not IsPlayerTextDrawValid (player , textdrawID ) then
1701
1707
return false
1702
1708
end
1703
- amx . playertextdraws [player ][textdrawID ].text = str
1709
+ g_PlayerTextDraws [player ][textdrawID ].text = str
1704
1710
return true
1705
1711
end
1706
1712
-- End of player textdraws
@@ -3153,7 +3159,7 @@ g_SAMPSyscallPrototypes = {
3153
3159
TextDrawTextSize = {' x' , ' f' , ' f' },
3154
3160
TextDrawUseBox = {' x' , ' b' },
3155
3161
-- Player textdraws
3156
- PlayerTextDrawDestroy = {' p' , ' s ' },
3162
+ PlayerTextDrawDestroy = {' p' , ' i ' },
3157
3163
PlayerTextDrawShow = {' p' , ' i' },
3158
3164
PlayerTextDrawHide = {' p' , ' i' },
3159
3165
PlayerTextDrawBoxColor = {' p' , ' i' , ' c' },
0 commit comments