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

Wysłany: 2020-09-03, 00:36


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

Witam, posiadam skrypt na VoiceChat w grze i pojawi? si? problem, gdy? funkcja table.remove oczekuje w drugim elemencie numeru i tu pojawia si? problem, gdy? nie wiem jak mam iterowa? userdata, tak aby skrypt dzia?a? poprawnie. Dok?adniej chodzi o linijke t?= ( table.remove(broadcoastTo, source)), tworzy ona error na serwerze o tre?ci dok?adnie takiej jak powiedzia?em (oczekuje liczby w drugim elemencie)

local voiceCols = {}
local broadcoastTo = {}
 
addEventHandler("onPlayerVoiceStart"root,
    function()
        local voiceSource source
        local sxsysz getElementPosition(voiceSource)
        voiceCols[voiceSource] = createColSphere(sxsysz100)
        attachElements(voiceCols[voiceSource], voiceSource)
        broadcoastTo[voiceSource] = getElementsWithinColShape(voiceCols[voiceSource], "player")
        setPlayerVoiceBroadcastTo(voiceSourcebroadcoastTo[voiceSource])
        addEventHandler("onColshapeHit"voiceCols[voiceSource],
            function(element)
                if (getElementType(element) == "player"then
                    table.insert(broadcoastTo[voiceSource], element)
                    setPlayerVoiceBroadcastTo(voiceSourcebroadcoastTo[voiceSource])
                end
            end
        )
       
        addEventHandler("onColshapeLeave"voiceCols[voiceSource],
            function(element)
                if (getElementType(element) == "player"then
                    for keyplayer in pairs(broadcoastTo[voiceSource]) do
                        if (element == playerthen
                            table.remove(broadcoastTo[voiceSource], key)
                            break
                        end
                    end
                    setPlayerVoiceBroadcastTo(voiceSourcebroadcoastTo[voiceSource])
                end
            end
        )
    end
)      
 
addEventHandler("onPlayerVoiceStop"root,
    function()
        if isElement(voiceCols[source]) then
            destroyElement(voiceCols[source])
        end
       
        if (broadcoastTo[source]) then
            table.remove(broadcoastTosource)
        end
 
        setPlayerVoiceBroadcastTo(source)
    end
)


Za ka?d? Pomoc dzi?kuje

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 08:20


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Musisz tam wskaza? numer indeksu elementu z tabeli. Mo?esz wykona? p?tl?, sprawdzasz czy v to dany element, i wtedy k to indeks kt?ry dajesz do 2 argumentu.

for kv in pairs(tabela) do
if == element then 
table.remove(tabelak)


Mo?e kto? zna lepszy spos?b, ja zawsze z tego tak korzysta?em. Oczywi?cie mo?esz zrobi? sobie oddzieln? funkcj? do tego, wtedy podajesz 2 argumenty i elementy si? usuwaj?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 16:20


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

Zmieni?em t? linijk?:

  if (broadcoastTo[source]) then
            table.remove(broadcoastTosource)
        end
 
        setPlayerVoiceBroadcastTo(source)
    end
)


Na tak?:

 if (broadcoastTo[source]) then
            for kv in pairs(broadcoastTo) do
            if == element then 
            table.remove(broadcoastTok)
            end
        end
        end
 
        setPlayerVoiceBroadcastTo(sourcebroadcoastTo[voiceSource])
    end
)


I teraz pytanie czy to ma prawo dzia?a??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 16:26


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Zmienna element si? zgadza? Czy mo?e powinno tam by? source.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 16:33


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

W sensie, ?e zamiast broadcastTo w for i table.remove powinna by? source?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 16:42


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Nie, czy w p?tli zmienna 'element' w warunku sprawdzaj?cym jest poprawna. Czy masz j? zdefiniowan?, czy powiniene? u?y? zmiennej 'source' zamiast tego.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 16:49


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

Zmienna element jest u?yta tylko w funkcjach przy dodawaniu Eventa, nie jest zdefiniowana, powinienem w takim razie u?y? zmiennej source zamiast niej?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-03, 18:34


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Tak.

Postaw piwo autorowi tego posta
 

 
Tagi: voice
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Voice 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