Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-03-13, 16:07


rolor2013







Wiek: 30
Na forum: 4469 dni
Posty: 2
Nick w MP: rolor2013



Respekt: 50

Chc? napisa? skrypt na anty przeklinanie. I nie wiem jak zobaczy? czy w czacie nie pojawi?o si? przekle?stwo.
Najpierw my?la?em ?e b?dzie to InputChatbox, ale nie ma czego? takiego.

Prosz? o podanie jak to zrobi?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 16:24


Novovix

xNinja powraca






Wiek: 26
Na forum: 4870 dni
Posty: 240
Nick w MP: xNinja

Piwa: 452

Respekt: 80,5

My?la?em, ?e tak b?dzie ale jak nie to trudno..

Ostatnio zmieniony przez Novovix 2014-03-14, 16:18, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 17:49


vipSEBOvip

A poor begginer






Wiek: 26
Na forum: 5178 dni
Posty: 597
Nick w MP: xSebaPL

Piwa: 77

Respekt: 140
Respekt: 140

[mwiki]onPlayerChat[/mwiki] -- argument message to wiadomo??
i sprawdzasz czy kt?re? ze s??w to przekle?stwo. Tyle ?e nie pami?tam jak zrobi?, by sprawdza?o wszystkie s?owa w stringu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 18:10


Riot

3X






Wiek: 29
Na forum: 5729 dni
Posty: 1123
Nick w MP: Riot/3X

Piwa: 286

Respekt: 123
Respekt: 123

"Laysiks" napisał/a:

[ Dodano: 2014-03-13, 16:25 ]
Popr?buj
Lubie Piwka :)


Chcesz piwa za napisanie totalnej bzdury? Nie?le.

Jak ju? napisa? vipSEBOvip - podepnij funkcj? pod zdarzenie onPlayerChat. Niestety, ka?de s?owo musisz zapisa? w stworzonej przez siebie tablicy (warto napisa? dwie formy, jak s?owo opisuj?ce m?ski narz?d rozrodczy (ch i h).

Sprawdzasz czy w wiadomo?ci nie ma wulgaryzmu - u?ywasz string.find. Na koniec wulgaryzm mo?esz zamieni? na inne s?owo, gwiazdki cokolwiek chcesz korzystaj?c z funkcji string.gsub.

Pozdrawiam.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 19:39


rolor2013







Wiek: 30
Na forum: 4469 dni
Posty: 2
Nick w MP: rolor2013



Respekt: 50

A czy tak zadzia?a?
Kod:


local function playerChat(message)
if message == "k****" or "s********j" then
outputChatBox ("Nie przeklinaj! To grozi mutem lub kickiem!")
end
end
addEventHandler("onPlayerChat", root, playerChat)


Niestety system anty przeklinania na tej stronie zas?oni? to.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 20:46


KukiX







Wiek: 34
Na forum: 6718 dni
Posty: 567

Piwa: 17560

Respekt: 160
Respekt: 160Respekt: 160

"rolor2013" napisał/a:

A czy tak zadzia?a?
Kod:


local function playerChat(message)
if message == "k****" or "*****" then
outputChatBox ("Nie przeklinaj! To grozi mutem lub kickiem!")
end
end
addEventHandler("onPlayerChat", root, playerChat)


Niestety system anty przeklinania na tej stronie zas?oni? to.


Nie.
Musisz u?y? jeszcze string.find.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-13, 20:55


vipSEBOvip

A poor begginer






Wiek: 26
Na forum: 5178 dni
Posty: 597
Nick w MP: xSebaPL

Piwa: 77

Respekt: 140
Respekt: 140

My?le ?e Ziomkowi chodzi bardziej o co? takiego:
local przeklenstwa = {
"k****",
"c***",
"wypierdalaj"
}

function playerChat(messagemtype)
        if (mtype==0then
        for kprzekl in ipairs(przeklenstwa) do
                if (string.find(messageprzekl)) then
                        outputChatBox ("Nie przeklinaj! To grozi mutem lub kickiem!"source)
                        cancelEvent()
                end
        end
        end
end
addEventHandler("onPlayerChat"rootplayerChat)


Nie jestem pewny czy to zadzia?a, bo za bardzo nie zrozumia?em obs?ugi string.find:
http://lua-users.org/wiki/StringLibraryTutorial

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-03-14, 07:13


Wielebny







Wiek: 41
Na forum: 5499 dni
Posty: 257
Nick w MP: Wielebny

Piwa: 1690

Respekt: 180
Respekt: 180Respekt: 180

Moja implementacja, wykorzystuje wyra?enia regularne, a w?a?ciwie ich odpowiednik w Lua - Patterns:


cenzurowane_slowa= { "[kK][uU]+[rR][wW]""[pP][iI][zZ][dD]""[pP][iI][eE][rR][dD][oO][lL]""[sS][uU][kK][iI][nN]",  "[jJ][eE][bB]""[cC][iI][pP][oO]""[hH][uU][jJ][uU]"}

function cenzurujSlowo(slowo)
    return string.gsub(slowo,"(.).*(.)","%1**%2")
end


function cenzurujZdanie(zdanie)
    local cnt=0
    for _,slowo in ipairs(cenzurowane_slowa) do
        zdanie,lcnt=string.gsub(zdanie,slowo,cenzurujSlowo)
        if lcnt and lcnt>0 then cnt=cnt+lcnt end
    end
    return zdanie,cnt
end


U?ycie: w onPlayerText, lub w dowolnej innej komendzie przekazuj?cej informacj? (np. /pm):


local msg,kara=cenzurujZdanie(msg)
if kara>0 then
 ... gracz przekln?? kara razynak?adamy kar? ...
end
... w msg mamy ocenzurowany tekst ...



"Laysiks" napisał/a:

Ja my?l?, ?e chyba powinno byc tak
if outputChatBox ...
chyba...


We? przesta? tu pisa? jak nie masz na ten temat poj?cia.

Postaw piwo autorowi tego posta
 

 
Tagi: anty-przeklinanie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku