Jump to content

Codigos de Colores


Serginix

Recommended Posts

Esto es algo complicado :/

Hola gente, estaba haciendo uno scripts, basicamente sencillos, con los players, y me doy cuenta, q varias personas amigos mios tienen codigos de colores, osea los #XXXXXX en su nombre, par aponerlo de X Color, hasta aca todo bn.

Lo q susede esq estos Codigos de Colores, me Estorban, para siertos propositos, por lo tanto, pense en acer un script para removerlo, y coji mi mayor ejemplo de scripts, el Admin Panel de Lil_Toady, Para extraer la funcion q tiene de "Hide Color Color" Explore el script, y me encontre con esta funcion exportada (explore mucho mas pero realmente, es demasiado entonces quizas se me escapo algo...) :

-- remove color coding from string 
function removeColorCoding( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  

Junto con esta funcion, para removerlos de la Grid List (lo pongo como ejemplo) :

function guiGridListSetItemPlayerName( gridlist, row, col, name ) 
    local bHideColorCodes = guiCheckBoxGetSelected ( aTab1.HideColorCodes ) 
    guiGridListSetItemText( gridlist, row, col, bHideColorCodes and removeColorCoding(name) or name, false, false ) 
    guiGridListSetItemData( gridlist, row, col, name ) 
end 

Ok lo q yo hize (mmm... no me fue muy bien con los tets, y no funcionaba, simplemente no pasaba nada, no se que ago mal, y no fue lo unico con lo q intentente, pero esto fue basicamente la estructura) :

function noColor () 
    removeColorCoding (source) -- le puse ipairs a la funcion, tambien puse en los argumrntos "name" como en el ejemplo de la grid list, pero nada.... 
end 
addEventHandler("onPlayerJoin", getRootElement(), noColor) 
addEventHandler("onPlayerChangeNick", getRootElement(), noColor) 
addEventHandler("onResourceStart", getRootElement(), noColor) 
  

Muchas gracias al q se aya tomado la molestia de almenos leerlo :/ u responderme... creo q es algo avanzado...

Link to comment
function noColor () 
    setPlayerName(source, removeColorCoding (getPlayerName(source))) -- le puse ipairs a la funcion, tambien puse en los argumrntos "name" como en el ejemplo de la grid list, pero nada.... 
end 
addEventHandler("onPlayerJoin", getRootElement(), noColor) 
addEventHandler("onPlayerChangeNick", getRootElement(), noColor) 
addEventHandler("onResourceStart", getRootElement(), noColor) 

Proba con eso.

Link to comment

Justo era lo q estaba intentando, pero como yo le hize y como vos le hiciste, salie error en la consola de

(al iniciar el resource) bad argument "setPlayerName", [Expected string a argument 2]

y en el juego, como tengo un resource q diga el nuevo name del jugador cuando lo sambia, se Spameaba 1.000.000 de veces (debe de ser por el evento de "onPlayerChangeNick", y no funcionaba, sigo con los colores :/)

Espera, are unos test.

Ok, este es el resultado:

Cuando el Jugador se une, si lo remueve :D, Pero al cambiar de Nick, se spamea y no pasa nada, intentare meterlo en donde esta el resoruce q controla mis mensajes de chat al cambiarse el name...

Edited by Guest
Link to comment
-- remove color coding from string 
function removeColorCoding( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function noColor () 
    local oldNick = getPlayerName(source) 
    setTimer(setPlayerName, 1000, 1, source, removeColorCoding (oldNick)) 
end 
addEventHandler("onPlayerJoin", getRootElement(), noColor) 
addEventHandler("onPlayerChangeNick", getRootElement(), noColor) 

onResourceStart no funciona asi, no puedes cambiar el nick de "getRootElement()", para eso necesitas un loop.

Link to comment

Listo, va bien, de joya, diria yo, solo q el mensaje de chat, se repite 2 veces, pero no es nada ante el super spam de hace rato, supongo... (digamos q se vaya a poner el nombre en rojo con el #FF0000X):

"X Ahora se llama (En Rojo)X" y a el segundo (por el setTimer tuyo), "X Ahora se Llama (normal)X"

Pero ya creo saber porq es, (mi resource)

EDIT: Ya encontre el error(el del spam), susede q cuando el jugador se pone otro Nick, el setPlayerName, empieza a interferir el evento "onPlayerChangeNick", y hace q el evento se repita muchas veces, dado a q el setPlayerName, tiene un setTimer, intente borrandolo, pero el sentido de borrar los #XXXXXX No funcionaria...

si no, quitaria el outputChatBox, pero... el nombre se sigueria cambiando infinidad de veces...

Link to comment

El Big Spam Continua, ya no se ni q ahcer :/ intente varias cosas, pero nada... y mi resource de cambia e nick, seria:

addEventHandler('onPlayerChangeNick', getRootElement(), 
    function(oldNick, newNick) 
    local name = getPlayerName(source) 
                setTimer (setPlayerName, 1000, 1,  source, removeColorCoding(name)) 
    outputChatBox('#0fc0fcNICK: #ffffff' .. oldNick .. ' #0fc0fcis now known as #ffffff' .. newNick, getRootElement(), 255, 100, 100, true) 
    end 
) 

es basicamente lo mismo, exeptuando, el local:

function noColor () 
    local oldNick = getPlayerName(source) 
    setTimer(setPlayerName, 1000, 1, source, removeColorCoding (oldNick)) 
end 
addEventHandler("onPlayerChangeNick", getRootElement(), noColor) 
  

:/

Link to comment

Proba con esto:

addEventHandler('onPlayerChangeNick', getRootElement(), 
    function(oldNick, newNick) 
    setTimer (setPlayerName, 1000, 1,  source, removeColorCoding(newNick)) 
    outputChatBox('#0fc0fcNICK: #ffffff' .. oldNick .. ' #0fc0fcis now known as #ffffff' .. newNick, getRootElement(), 255, 100, 100, true) 
    end)  

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...