Wysłany: 2017-01-04, 18:41
MartinPanZycia
Zielony w LUA
Wiek: 27 Na forum: 3728 dni Posty: 476
Nick w MP: Rodzaje
Piwa : 878
Siemanko , ot?? jestem zielony w tym i mam problem , macie pewnie podstawowy killmesages wiec kodu nie musze podawac , chodzi oto ze u mnie jest tak
,?e jak kto? kogo? zabije t owidac mu np. #ff0000Nick zabi? Gracza3232
Co chce zrobi? no chce aby Ten nick , nie mia? tego wiecie napisu kolorku tylko mia? ten kolorek tam : D
jak kto? nie rozumie to powtorze
#ff0000Nick zabi? Gracza3232
Jak jest
Nick zabi? Gracza3232
a jak ma by?
kolorek podalem losowy jako przyklad ale wiecie o co chodzi
Myslalem ze sam to zrobie ale nie mog znalesc nigdzie cos co odpowiada za wyswietlanie aby to moglem jakos zmodyfikowac
szukalem w killmesages_client
addEvent ( "onClientPlayerKillMessage" , true )
function onClientPlayerKillMessage ( killer , weapon , wr , wg , wb , kr , kg , kb , width , resource )
if wasEventCancelled () then return end
outputKillMessage ( source , wr , wg , wb , killer , kr , kg , kb , weapon , width , resource )
end
addEventHandler ( "onClientPlayerKillMessage" , getRootElement (), onClientPlayerKillMessage )
function outputKillMessage ( source , wr , wg , wb , killer , kr , kg , kb , weapon , width , resource )
if not iconWidths [ weapon ] then
if type ( weapon ) ~= "string" then
weapon = 999
end
end
local killerName
local wastedName
if not tonumber ( wr ) then wr = 255 end
if not tonumber ( wg ) then wg = 255 end
if not tonumber ( wb ) then wb = 255 end
if not tonumber ( kr ) then kr = 255 end
if not tonumber ( kg ) then kg = 255 end
if not tonumber ( kb ) then kb = 255 end
if ( source ) then
if isElement ( source ) then
if getElementType ( source ) == "player" then
wastedName = getPlayerName ( source )
else
outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified" , 0 , 0 , 0 , 100 )
return false end
elseif type ( source ) == "string" then
wastedName = source
end
else
outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified" , 0 , 0 , 0 , 100 )
return false end
if ( killer ) then
if isElement ( killer ) then
if getElementType ( killer ) == "player" then
killerName = getPlayerName ( killer )
else
outputDebugString ( "outputKillMessage - Invalid 'killer' player specified" , 0 , 0 , 0 , 100 )
return false end
elseif type ( killer ) == "string" then
killerName = killer
else
killerName = ""
end
else killerName = "" end
-- create the new text
if not killerName then
killerName = ""
end
return outputMessage ( { killerName , { "padding" , width = 3 }, { "icon" , id = weapon },
{ "padding" , width = 3 },{ "color" , r = wr , g = wg , b = wb }, wastedName },
kr , kg , kb )
end
i to chyba to bo najlepiej mi pasowalo ale nwm co ruszy? aby dzia?a?o jak chce
Teamat my?le ,?e b?achy i jestem otwarty na wsp??prace jakby komu? zale?y na pomocy a nie na wy?mianiu mnie ,ze za?miecam forum
Podpis
Cześć w MTA jestem jako Rodzaje.
Wszystko jest po staremu nie zamierzam stawiać RPG.
Wysłany: 2017-01-04, 19:06
_Haze
Peace Yo!
Wiek: 24 Na forum: 4184 dni Posty: 1648
Nick w MP: Haze
Piwa : 2628
MartinPanZycia , Zapewne je?li jest to outputChatBox to musisz da? ostatni argument na true. Niestety tutaj nie widz? nic takiego. Na ko?cu masz return outputMessage musisz zobaczy? jak si? ta funkcja nazywa i j? poda?.
Wysłany: 2017-01-04, 19:22
MartinPanZycia
Zielony w LUA
Wiek: 27 Na forum: 3728 dni Posty: 476
Nick w MP: Rodzaje
Piwa : 878
function outputMessage ( message , visibleTo , r , g , b , font )
if type ( message ) ~= "string" and type ( message ) ~= "table" then
outputDebugString ( "outputMessage - Bad 'message' argument" , 0 , 112 , 112 , 112 )
return false
end
if not isElement ( visibleTo ) then
outputDebugString ( "outputMessage - Bad argument" , 0 , 112 , 112 , 112 )
return false
end
-- Turn any resources into resource names
if type ( message ) == "table" then
for i , part in ipairs ( message ) do
if type ( part ) == "table" and part [ 1 ] == "image" then
if part . resource then
message [ i ]. resourceName = getResourceName ( part . resource )
else
part . resourceName = getResourceName ( sourceResource )
end
end
end
end
return triggerClientEvent ( visibleTo , "doOutputMessage" , visibleTo , message , r , g , b , font )
end
Mam to i gdzie tu by zmieni? ?czy mam szuka? doOutputMessage ?
[ Dodano : 2017-01-04, 20:26 ]
Ziomek no pomusz m?wi?e? co? o ostatnim argumencie na true
wchodzi o to ?
dxText = {}
dxText_mt = { __index = dxText }
local idAssign , idPrefix = 0 , "c"
local g_screenX , g_screenY = guiGetScreenSize ()
local visibleText = {}
------
local defaults = {
fX = 0.5 ,
fY = 0.5 ,
bRelativePosition = true ,
strText = "" ,
bVerticalAlign = "center" ,
bHorizontalAlign = "center" ,
tColor = { 255 , 255 , 255 , 255 },
fScale = 1 ,
strFont = "default" ,
strType = "normal" ,
tAttributes = {},
bPostGUI = false ,
bClip = false ,
bWordWrap = true ,
bVisible = true ,
tBoundingBox = false , --If a bounding box is not set , it will not be used .
bRelativeBoundingBox = true ,
}
local validFonts = {
default = true ,
[ "default-bold" ] = true ,
clear = true ,
arial = true ,
pricedown = true ,
bankgothic = true ,
diploma = true ,
beckett = true ,
}
local validTypes = {
normal = true ,
shadow = true ,
border = true ,
stroke = true , --Clone of border
}
local validAlignTypes = {
center = true ,
left = true ,
right = true ,
}
function dxText : create ( text , x , y , relative )
assert ( not self . fX , "attempt to call method 'create' (a nil value)" )
if ( type ( text ) ~= "string" ) or ( not tonumber ( x ) ) or ( not tonumber ( y ) ) then
outputDebugString ( "dxText:create - Bad argument" , 0 , 112 , 112 , 112 )
return false
end
local new = {}
setmetatable ( new, dxText_mt )
-- Add default settings
for i , v in pairs ( defaults ) do
new[ i ] = v
end
idAssign = idAssign + 1
new. id = idPrefix .. idAssign
new. strText = text or new. strText
new. fX = x or new. fX
new. fY = y or new. fY
if type ( relative ) == "boolean" then
new. bRelativePosition = relative
end
visibleText [new] = true
return new
end
function dxText : text ( text )
if type ( text ) ~= "string" then return self . strText end
self . strText = text
return true
end
function dxText : position ( x , y , relative )
if not tonumber ( x ) then return self . fX , self . fY end
self . fX = x
self . fY = y
if type ( relative ) == "boolean" then
self . bRelativePosition = relative
else
self . bRelativePosition = true
end
return true
end
function dxText : color ( r , g , b , a )
if not tonumber ( r ) then return unpack ( self . tColor ) end
g = g or self . tColor [ 2 ]
b = b or self . tColor [ 3 ]
a = a or self . tColor [ 4 ]
self . tColor = { r , g , b , a }
return true
end
function dxText : scale ( scale )
if not tonumber ( scale ) then return self . fScale end
self . fScale = scale
return true
end
function dxText : visible (bool)
if type (bool) ~= "boolean" then return self . bVisible end
self . bVisible = bool
if bool then
visibleText [ self ] = true
else
visibleText [ self ] = nil
end
return true
end
function dxText : destroy ()
self . bDestroyed = true
setmetatable ( self , self )
return true
end
function dxText : extent ()
local extent = dxGetTextWidth ( self . strText , self . fScale , self . strFont )
if self . strType == "stroke" or self . strType == "border" then
extent = extent + self . tAttributes [ 1 ]
end
return extent
end
function dxText : height ()
local height = dxGetFontHeight ( self . fScale , self . strFont )
if self . strType == "stroke" or self . strType == "border" then
height = height + self . tAttributes [ 1 ]
end
return height
end
function dxText : font ( font )
if not validFonts [ font ] then return self . strFont end
self . strFont = font
return true
end
function dxText : postGUI (bool)
if type (bool) ~= "boolean" then return self . bPostGUI end
self . bPostGUI = bool
return true
end
function dxText : clip (bool)
if type (bool) ~= "boolean" then return self . bClip end
self . bClip = bool
return true
end
function dxText : wordWrap (bool)
if type (bool) ~= "boolean" then return self . bWordWrap end
self . bWordWrap = bool
return true
end
function dxText : type ( type ,...)
if not validTypes [ type ] then return self . strType , unpack ( self . tAttributes ) end
self . strType = type
self . tAttributes = {...}
return true
end
function dxText : align ( horzA , vertA )
if not validAlignTypes [ horzA ] then return self . bHorizontalAlign , self . bVerticalAlign end
vertA = vertA or self . bVerticalAlign
self . bHorizontalAlign , self . bVerticalAlign = horzA , vertA
return true
end
function dxText : boundingBox ( left , top , right , bottom , relative )
if left == nil then
if self . tBoundingBox then
return unpack ( boundingBox )
else
return false
end
elseif tonumber ( left ) and tonumber ( right ) and tonumber ( top ) and tonumber ( bottom ) then
self . tBoundingBox = { left , top , right , bottom }
if type ( relative ) == "boolean" then
self . bRelativeBoundingBox = relative
else
self . bRelativeBoundingBox = true
end
else
self . tBoundingBox = false
end
return true
end
addEventHandler ( "onClientRender" , getRootElement (),
function()
for self , _ in pairs ( visibleText ) do
while true do
if self . bDestroyed then
visibleText [ self ] = nil
break
end
local l , t , r , b
--If we arent using a bounding box
if not self . tBoundingBox then
-- Decide if we use relative or absolute
local p_screenX , p_screenY = 1 , 1
if self . bRelativePosition then
p_screenX , p_screenY = g_screenX , g_screenY
end
local fX , fY = ( self . fX )* p_screenX ,( self . fY )* p_screenY
if self . bHorizontalAlign == "left" then
l = fX
r = fX + g_screenX
elseif self . bHorizontalAlign == "right" then
l = fX - g_screenX
r = fX
else
l = fX - g_screenX
r = fX + g_screenX
end
if self . bVerticalAlign == "top" then
t = fY
b = fY + g_screenY
elseif self . bVerticalAlign == "bottom" then
t = fY - g_screenY
b = fY
else
t = fY - g_screenY
b = fY + g_screenY
end
elseif type ( self . tBoundingBox ) == "table" then
local b_screenX , b_screenY = 1 , 1
if self . bRelativeBoundingBox then
b_screenX , b_screenY = g_screenX , g_screenY
end
l , t , r , b = self . tBoundingBox [ 1 ], self . tBoundingBox [ 2 ], self . tBoundingBox [ 3 ], self . tBoundingBox [ 4 ]
l = l * b_screenX
t = t * b_screenY
r = r * b_screenX
b = b * b_screenY
end
local type , att1 , att2 , att3 , att4 , att5 = self : type ()
if type == "border" or type == "stroke" then
att2 = att2 or 0
att3 = att3 or 0
att4 = att4 or 0
att5 = att5 or self . tColor [ 4 ]
outlinesize = att1 or 2
outlinesize = math . min ( self . fScale , outlinesize ) -- Make sure the outline size isnt thicker than the size of the label
if outlinesize > 0 then
for offsetX =- outlinesize , outlinesize , outlinesize do
for offsetY =- outlinesize , outlinesize , outlinesize do
if not ( offsetX == 0 and offsetY == 0 ) then
dxDrawText ( self . strText , l + offsetX , t + offsetY , r + offsetX , b + offsetY , tocolor ( att2 , att3 , att4 , att5 ), self . fScale , self . strFont , self . bHorizontalAlign , self . bVerticalAlign , self . bClip , self . bWordWrap , self . bPostGUI )
end
end
end
end
elseif type == "shadow" then
local shadowDist = att1
att2 = att2 or 0
att3 = att3 or 0
att4 = att4 or 0
att5 = att5 or self . tColor [ 4 ]
dxDrawText ( self . strText , l + shadowDist , t + shadowDist , r + shadowDist , b + shadowDist , tocolor ( att2 , att3 , att4 , att5 ), self . fScale , self . strFont , self . bHorizontalAlign , self . bVerticalAlign , self . bClip , self . bWordWrap , self . bPostGUI )
end
dxDrawText ( self . strText , l , t , r , b , tocolor ( unpack ( self . tColor )), self . fScale , self . strFont , self . bHorizontalAlign , self . bVerticalAlign , self . bClip , self . bWordWrap , self . bPostGUI )
break
end
end
end
)
if addEvent ( "updateDisplays" , true ) then
addEventHandler ( "updateDisplays" , getRootElement (),
function( self )
setmetatable ( self , dxText_mt )
-- Remove any old ones with the same id
for text , _ in pairs ( visibleText ) do
if text . id == self . id then
visibleText [ text ] = nil
end
end
if self . bVisible and not self . bDestroyed then
visibleText [ self ] = true
end
end
)
end
Podpis
Cześć w MTA jestem jako Rodzaje.
Wszystko jest po staremu nie zamierzam stawiać RPG.
Tagi: kolor :: nicku :: skrypcie :: killmesages
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: