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

Wysłany: 2017-07-24, 22:16


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

Witam, przychodz? z trzema problemami:

-Mam sobie hud, i mam sobie w nim zegarek. Gdy wpisze pewn? komend?. To wtedy m?j cash znika i si? pojawia zegarek. Tylko chcia?bym ?eby ten zegarek np.: By? przez 3 sekundy, a potem pojawia? si? znowu m?j cash.

-Drugi problem jest taki.: ?e nie wiem jak zrobi? w?asny chat. Bo ten z freeroamu mnie nie zadowala i jest z freeroamu, i pod tym chce zrobi? drugi chat, Ale w?a?ciwie jak naucz? si? robi ten na g?rze to i ten na dole zrobie.

-Ju? trzeci problem, jak zrobi? ?eby w tym moim chacie, ?eby wiadomo?ci by?y na odleg?o??. Co? w stylu playsound3D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:17


Artystek







Wiek: 23
Na forum: 3520 dni
Posty: 143
Nick w MP: Artystek

Piwa: 74

Respekt: 55,3

Chat chcia?by? z kolorami dla rang pod ACL czy bez?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:24


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

Nie w og?lne inny chat, kt?ry bym zrobi? sam.

[ Dodano: 2017-07-24, 22:25 ]
Kolorowe rangi nie, chcia?bym doda? drugi chat np.: Kt?ry b?dzie tylko pod ooc

[ Dodano: 2017-07-24, 22:25 ]
Chodzi o wszystkie komendy te? typu me itp

Podpis
Aktualny najlepszy kontakt do mnie: Szydlo#8134 (Discord)
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:28


Kalizman







Wiek: 23
Na forum: 3651 dni
Posty: 1394

Piwa: 4619

Respekt: 358,8
Respekt: 358,8Respekt: 358,8Respekt: 358,8Respekt: 358,8

Szydlo, komenda "me" jest w evencie onPlayerChat (?) czy jako? tak, s? dwa typy 0 - to globalny (zawsze mo?esz zmieni? na lokalny dodaj?c cuboid i sprawdza? czy gracze w nim s?), a typ 1 to czat /me.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:30


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

A, co z drugim? Widzia?em to na takim serwerze.

Podpis
Aktualny najlepszy kontakt do mnie: Szydlo#8134 (Discord)
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:36


Artystek







Wiek: 23
Na forum: 3520 dni
Posty: 143
Nick w MP: Artystek

Piwa: 74

Respekt: 55,3

Dla punktu drugiego i trzeciego:
Zaczynamy pisa? skrypt od:

Więcej informacji znajdziesz w Wikipedii MTA:

addEventHandler


Więcej informacji znajdziesz w Wikipedii MTA:

onPlayerChat

Przyk?ad:
 
addEventHandler('onPlayerChat'root, function (msgtype)

msq - jest to tre?? wpisywana na czacie
type - rodzaj czatu 0 = czat say, 1 = czat me (odgrywanie akcji RP)
Nast?pnie za pomoc? warunkowej if wybieramy rodzaj czatu w przypadku say jak wy?ej poda?em jest to 0
Przyk?ad:
 
addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then

Aby nie wy?wietla?o nam do tego czatu z gry (jest taki zwyk?y, brzydki globalny) musimy zako?czy? event za pomoc?:

Więcej informacji znajdziesz w Wikipedii MTA:

cancelEvent


Przyk?ad:

 
addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()

Kolejny krok jest odpowiedzialny za pobranie pozycji gracza i stworzenie wok?? niego ColSphere, dzi?ki kt?remu gracze b?d?cy wok?? gracza, kt?ry co? pisze b?d? widzie? to na czacie (reszta nie b?dzie)
Rozpoczynamy od pobrania pozycji gracza za pomoc?

Więcej informacji znajdziesz w Wikipedii MTA:

getElementPosition

Nast?pnie tworzymy ColSphere za pomoc?

Więcej informacji znajdziesz w Wikipedii MTA:

createColSphere

No i sprawdzamy czy gracz jest w ColSphere

Więcej informacji znajdziesz w Wikipedii MTA:

getElementsWithinColShape


Przyk?ad:

addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()
local x,y,getElementPosition(source)
local sphere createColSphere(x,y,z,50)
local players getElementsWithinColShape(sphere'player')

Aby?cie mieli czaty wy?szej jako?ci podam Wam przyk?ad z kolorami dla rang ACL
Teraz musimy stworzy? p?tle, kt?ra b?dzie wy?wietla?a outputChatBox ka?demu graczu, kt?ry jest w pobli?u, czyli:


addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()
local x,y,getElementPosition(source)
local sphere createColSphere(x,y,z,50)
local players getElementsWithinColShape(sphere'player')
for i,v in pairs(players) do


Nast?pnie pobieramy potrzebne nam informacje za pomoc? "local", w moim przypadku jest to ID gracza oraz login (accName):

addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()
local x,y,getElementPosition(source)
local sphere createColSphere(x,y,z,50)
local players getElementsWithinColShape(sphere'player')
for i,v in pairs(players) do
local id=getElementData(source'id')
local accName getAccountName getPlayerAccount source ) ) 


Za pomoc? warunkowej if oraz elseif dla ka?dej rangi dodajemy osobnego outputChatBox:


addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()
local x,y,getElementPosition(source)
local sphere createColSphere(x,y,z,50)
local players getElementsWithinColShape(sphere'player')
for i,v in pairs(players) do
local id=getElementData(source'id')
local accName getAccountName getPlayerAccount source ) ) 
if isObjectInACLGroup ("user."..accNameaclGetGroup "Admin" ) ) then
outputChatBox("#FFFFFF(#660000"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("SuperModerator")) then
outputChatBox("#FFFFFF(#FF0000"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("Moderator")) then
outputChatBox("#FFFFFF(#006600"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255 ,true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("Grafik")) then
outputChatBox("#FFFFFF(#440044"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255,true)
cancelEvent()
else
outputChatBox("#FFFFFF(#FFFFFF"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv,  255255255,true)
cancelEvent()
end
end


W powy?szym przyk?adzie zamkn??em p?tle oraz if za pomoc? dw?ch "end"

Po wykonaniu przez skrypt zadania, kt?rym jest wy?wietlenie tej wiadomo?ci na czacie musimy usun?? ColSphere. W tym miejscu mo?na doda? r?wnie?:

Więcej informacji znajdziesz w Wikipedii MTA:

outputServerLog

lub inne tego typu sprawy z logami. Nie mo?na tego doda? na przyk?ad pod outputchatBox, poniewa? jest on w p?tli przez co logi b?d? mno?one * ilo?? graczy, kt?rej pojawia si? ta wiadomo??. Na ko?cu zamykamy funkcj? "end" oraz event nawiasem ")"


Więcej informacji znajdziesz w Wikipedii MTA:

destroyElement


Przyk?ad:

addEventHandler('onPlayerChat'root, function (msgtype)
if type == 0 then
cancelEvent()
local x,y,getElementPosition(source)
local sphere createColSphere(x,y,z,50)
local players getElementsWithinColShape(sphere'player')
for i,v in pairs(players) do
local id=getElementData(source'id')
local accName getAccountName getPlayerAccount source ) ) 
if isObjectInACLGroup ("user."..accNameaclGetGroup "Admin" ) ) then
outputChatBox("#FFFFFF(#660000"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("SuperModerator")) then
outputChatBox("#FFFFFF(#FF0000"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("Moderator")) then
outputChatBox("#FFFFFF(#006600"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255 ,true)
cancelEvent()
elseif isObjectInACLGroup ("user."..accNameaclGetGroup ("Grafik")) then
outputChatBox("#FFFFFF(#440044"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv255255255,true)
cancelEvent()
else
outputChatBox("#FFFFFF(#FFFFFF"..id.."#FFFFFF) "..getPlayerName(source)..": "..msgv,  255255255,true)
cancelEvent()
end
end
destroyElement(sphere)
end)


[ Dodano: 2017-07-24, 22:38 ]
Je?eli chcia?by? jeszcze opr?cz tego czatu lokalnego drugi globalny mo?esz to zrobi? za pomoc?:

Więcej informacji znajdziesz w Wikipedii MTA:

addCommandHandler


Więcej informacji znajdziesz w Wikipedii MTA:

bindKey


Więcej informacji znajdziesz w Wikipedii MTA:

outputChatBox


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:42


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

Hmm, zobacz? wszystko. To jest c-side czy s-side?

Podpis
Aktualny najlepszy kontakt do mnie: Szydlo#8134 (Discord)
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:44


Artystek







Wiek: 23
Na forum: 3520 dni
Posty: 143
Nick w MP: Artystek

Piwa: 74

Respekt: 55,3

To jest s-side drogi kolego, mam nadziej?, ?e si? nie obrazisz, ?e t? pomoc dla Ciebie skopiowa?em i napisa?em poradnik, chcia?bym, aby wi?cej os?b takie co? potrafi?o zrobi?, a tutaj nikt tego potem nie znajdzie.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Szydlo
Wysłany: 2017-07-24, 22:45


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

Zrobi?em ma?a edycje doda?em

    local nick getAccountName getPlayerAccount source ) ) 
        local accName string.gsub(ncik,"_"," ")


[ Dodano: 2017-07-24, 22:50 ]
Tak og?lnie to si? pogubi?em co ten skrypt robi?

[ Dodano: 2017-07-24, 22:51 ]
Bo mi jest og?lnie potrzebne jak zrobi? ten dodatkowy chat, jak ustawi? kolor wiadomo?ci oraz komendy typu /me /do. Oraz kolor nicku

[ Dodano: 2017-07-24, 22:51 ]
I, co z tym timerem?

Podpis
Aktualny najlepszy kontakt do mnie: Szydlo#8134 (Discord)
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:53


Eitho







Wiek: 24
Na forum: 3489 dni
Posty: 330
Nick w MP: Eitho

Piwa: 746

Respekt: 256,5
Respekt: 256,5Respekt: 256,5Respekt: 256,5

Usuwa domy?lny czat widoczny dla wszystkich i zast?puje go nowym, widocznym tylko dla graczy kt?rzy znajduj? si? w okre?lonej odleg?o?ci od gracza (colSphere).

Podpis
good old days :]
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 22:54


Artystek







Wiek: 23
Na forum: 3520 dni
Posty: 143
Nick w MP: Artystek

Piwa: 74

Respekt: 55,3

Ten skrypt dodaje czat lokalny jako say i poprawia jego wygl?d, komend? /me mo?esz zrobi? w ten sam spos?b co ten czat edytuj?c outputChatBox i zmieni? if type = 0 na if type = 1 najlepiej to zrobi? po zako?czeniu endem poprzedniej warunkowej if type = 0 czyli tej od czatu lokalnego (robisz to w tym samym evencie). Skrypt /do robisz za pomoc? addCommandHandler

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 23:01


Eitho







Wiek: 24
Na forum: 3489 dni
Posty: 330
Nick w MP: Eitho

Piwa: 746

Respekt: 256,5
Respekt: 256,5Respekt: 256,5Respekt: 256,5

function render1()
dxDrawText(" jakis tam tekst"screenW 0.3656screenH 0.1553screenW 0.6273screenH 0.3193tocolor(25500255), 1.50"pricedown""center""center"falsefalsefalsefalsefalse)
end
-- tu jest tekst ale zalozmy ze to twoj obrazek w gui

function renderstop1()
removeEventHandler("onClientRender",root,render1)
end


i masz gdzie? tam sw?j kod na hud i przy komendzie na zegarek dajesz to

addEventHandler("onClientRender",root,render1) -- to ?eby zegarek (w tym wypadku napissipokaza?
setTimer(renderstop1,3000,1) -- a to ?eby znikpo 3 sekundach


Wi?cej nie dam rady pom?c bez kodu. :P
Je?li jest co? ?le to przepraszam

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 23:02


neku^







Wiek: 24
Na forum: 3522 dni
Posty: 461
Nick w MP: neku^

Piwa: 1186

Respekt: 320,5
Respekt: 320,5Respekt: 320,5Respekt: 320,5

Drogi przyjacielu na pocz?tek poprawny liter?wk?:

   local nick getAccountName getPlayerAccount source ) ) 
        local accName string.gsub(ncik,"_"," ")

Na:

   local nick getAccountName getPlayerAccount source ) ) 
        local accName string.gsub(nick,"_"," ")

Niby nic, ale dla MTA r??nica wielka

Timer

Więcej informacji znajdziesz w Wikipedii MTA:

setTimer


Warto zaznaczy? ?e interwa? czasowy ustawiamy w milisekundach (0.001 sekundy - 1000 ms(milisekund) = 1 sec


Pierwszy argument to funkcja kt?ra ma wykona? si? po ustawionym czasie.
Drugi argument to interwa? czasowy, tak jak m?wi?em ustawiamy go w milisekundach.
Trzeci argument to ilo?? razy ile ma si? wykonac funkcja (0 to niesko?czono??)
Pozosta?e argumenty to nasze w?asne argumenty kt?re mo?emy wys?a? do funkcji.


A wi?c umieszczasz w timerze removeEventHandler na ten zegarek i addEventHandler na hajs


Aktualnie nie mam czasu napisa? tutaj jakiego? przyk?adu, ale mam nadziej? ?e co? zrozumia?e? z moich wypocin.

Ostatnio zmieniony przez neku^ 2017-07-24, 23:04, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 23:03


Szydlo

Stance Works






Wiek: 25
Na forum: 3585 dni
Posty: 343
Nick w MP: Szydlo

Piwa: 4

Respekt: 105,3
Respekt: 105,3

Ale mi si? pojawi? inny chat kt?ry ma ju? od razu /me

[ Dodano: 2017-07-24, 23:03 ]
Ten od mta

Podpis
Aktualny najlepszy kontakt do mnie: Szydlo#8134 (Discord)
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 23:05


Artystek







Wiek: 23
Na forum: 3520 dni
Posty: 143
Nick w MP: Artystek

Piwa: 74

Respekt: 55,3

Od tego jest cancelEvent, aby si? nie pojawia?

Postaw piwo autorowi tego posta
 

 
Tagi: timer :: własny :: chat. :: oraz :: wiadomości :: odległość
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Timer i własny chat. Oraz wiadomości na odległość Odpowiedz do tematu

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