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

Wysłany: 2020-01-29, 14:41


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Witam, z zamiarem utrwalenia sobie jak robic GUI robie skrypt na banowanie i mutowanie jednak w momencie gdy ma mi sprawdzac czy sa wypelnione pola to wyskakuje "Nie znaleziono gracza", obojetnie czy wpisuje czy nic nie wpisuje.
Blad lezy na pewno w pliku po stronie clienta
Kod:
local gui = {}
gui.window guiCreateWindow(0.380.200.240.38"Panel v1.0 by Ramzes"true)
        guiWindowSetSizable(gui.windowfalse)
        guiSetVisible(gui.windowfalse)

        gui.powod guiCreateEdit(0.030.570.940.09""truegui.window)
        gui.labelpowod guiCreateLabel(0.040.450.900.08"Wpisz powod"truegui.window)
        guiLabelSetHorizontalAlign(gui.labelpowod"center"false)
        guiLabelSetVerticalAlign(gui.labelpowod"center")
        gui.buttonban guiCreateButton(0.030.690.940.12"Ban"truegui.window)
        gui.mute guiCreateButton(0.030.840.940.12"Mute/Unmute"truegui.window)
        gui.nick guiCreateEdit(0.030.330.940.09""truegui.window)
        gui.labelnick guiCreateLabel(0.040.240.930.06"Wpisz nick gracza"truegui.window)
        guiLabelSetHorizontalAlign(gui.labelnick"center"false)
        guiLabelSetVerticalAlign(gui.labelnick"center")
        gui.buttonexit guiCreateButton(0.890.070.080.08"X"truegui.window)
        guiSetFont(gui.buttonexit"default-bold-small")
        guiSetProperty(gui.buttonexit"NormalTextColour""FFFFFFFF")
nickgraczaguiban guiGetText(gui.nick)
powodguiban guiGetText(gui.powod)
graczguiban getPlayerFromName(nickgraczaguiban)

function kliknietyMute()
    if nickgraczaguiban and powodguiban then
        if graczguiban then
            triggerServerEvent("kliknietyMute",resourceRoot,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    else
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
        return
    end
end
addEventHandler("onClientGUIClick",gui.mute,kliknietyMute,false)

function kliknietyBan()
    if nickgraczaguiban and powodguiban then
        if graczguiban then
            triggerServerEvent("kliknietyBan",resourceRoot,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    else
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
        return
    end
end
addEventHandler("onClientGUIClick",gui.buttonban,kliknietyBan,false)

local function wylaczGUI()
    guiSetVisible(gui.windowfalse)
    showCursor(false)
end
addEventHandler("onClientGUIClick",gui.buttonexit,wylaczGUI,false)

local function wlaczGuiBan()
        guiSetVisible(gui.windowtrue)
        showCursor(truetrue)
end
addCommandHandler("mute"wlaczGuiBan)
addCommandHandler("unmute"wlaczGuiBan)
addCommandHandler("ban"wlaczGuiBan)


[ Dodano: 2020-01-29, 14:44 ]
Nie ma zadnych bledow na /debugscript 3

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-29, 17:17


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Szukaj gracza (getPlayerFromName) dopiero w momencie klikni?cia przycisku GUI.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-29, 17:53


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Zrobilem tak, nawet zmienilem na elseif czyli tak:
local gui = {}
gui.window guiCreateWindow(0.380.200.240.38"Panel v1.0 by Ramzes"true)
        guiWindowSetSizable(gui.windowfalse)
        guiSetVisible(gui.windowfalse)

        gui.powod guiCreateEdit(0.030.570.940.09""truegui.window)
        gui.labelpowod guiCreateLabel(0.040.450.900.08"Wpisz powod"truegui.window)
        guiLabelSetHorizontalAlign(gui.labelpowod"center"false)
        guiLabelSetVerticalAlign(gui.labelpowod"center")
        gui.buttonban guiCreateButton(0.030.690.940.12"Ban"truegui.window)
        gui.mute guiCreateButton(0.030.840.940.12"Mute/Unmute"truegui.window)
        gui.nick guiCreateEdit(0.030.330.940.09""truegui.window)
        gui.labelnick guiCreateLabel(0.040.240.930.06"Wpisz nick gracza"truegui.window)
        guiLabelSetHorizontalAlign(gui.labelnick"center"false)
        guiLabelSetVerticalAlign(gui.labelnick"center")
        gui.buttonexit guiCreateButton(0.890.070.080.08"X"truegui.window)
        guiSetFont(gui.buttonexit"default-bold-small")
        guiSetProperty(gui.buttonexit"NormalTextColour""FFFFFFFF")
nickgraczaguiban guiGetText(gui.nick)
powodguiban guiGetText(gui.powod)

function kliknietyMute()
    if nickgraczaguiban and powodguiban then
        local graczguiban getPlayerFromName(nickgraczaguiban)
        if graczguiban then
            triggerServerEvent("kliknietyMute",resourceRoot,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    elseif not nickgraczaguiban then
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
    elseif not powodguiban then
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
    end
end
addEventHandler("onClientGUIClick",gui.mute,kliknietyMute,false)

function kliknietyBan()
    if nickgraczaguiban and powodguiban then
        local graczguiban getPlayerFromName(nickgraczaguiban)
        if graczguiban then
            triggerServerEvent("kliknietyBan",resourceRoot,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    else
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
    end
end
addEventHandler("onClientGUIClick",gui.buttonban,kliknietyBan,false)

local function wylaczGUI()
    guiSetVisible(gui.windowfalse)
    showCursor(false)
end
addEventHandler("onClientGUIClick",gui.buttonexit,wylaczGUI,false)

local function wlaczGuiBan()
        guiSetVisible(gui.windowtrue)
        showCursor(truetrue)
end
addCommandHandler("mute"wlaczGuiBan)
addCommandHandler("unmute"wlaczGuiBan)
addCommandHandler("ban"wlaczGuiBan)

I nadal to samo, zero bledow debugscript 3 i wyskakuje "Nie znaleziono gracza" gdy zostawiam pola puste, a gdy wypelniam pola nadal "Nie znaleziono gracza"

EDIT:
Wprowadzilem male poprawki do kodu i teraz wykrywa gracza gdy wpisuje poprawny nick ale to dziala tak jakby w ogole nie istnialo cos takiego jak "powod" - niewazne czy wpisze czy nie, znajdzie gracza lub nie jesli nie ma takiego...

Lepiej dam kod z pliku po stronie serwera tez, a wiec kod po stronie clienta:
function kliknietyMute()
    local nickgraczaguiban guiGetText(gui.nick)
    local powodguiban guiGetText(gui.powod)
    if nickgraczaguiban and powodguiban then
        local graczguiban getPlayerFromName(nickgraczaguiban)
        if graczguiban then
            triggerServerEvent("kliknietyMute",resourceRoot,plr,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    else
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
    end
end
addEventHandler("onClientGUIClick",gui.mute,kliknietyMute,false)

function kliknietyBan()
    local nickgraczaguiban guiGetText(gui.nick)
    local powodguiban guiGetText(gui.powod)
    if nickgraczaguiban and powodguiban then
        local graczguiban getPlayerFromName(nickgraczaguiban)
        if graczguiban then
            triggerServerEvent("kliknietyBan",resourceRoot,plr,graczguiban,powod)
        else
            outputChatBox("Nie znaleziono gracza!",255,0,0)
        end
    else
        outputChatBox("Wypelnij wszystkie pola!",255,0,0)
    end
end
addEventHandler("onClientGUIClick",gui.buttonban,kliknietyBan,false)

Kod po stronie serwera:
function zbanujGracza(plr,graczguiban,powodguiban)
    if ( hasObjectPermissionTo plr"function.banPlayer" ) ) then
        outputChatBox("Dziala ban",plr)
    else
        outputChatBox("Nie masz uprawnien!",plr,255,0,0)
    end
end

function zmutujGracza(plr,graczguiban,powodguiban)
    if ( hasObjectPermissionTo plr"function.banPlayer" ) ) or (hasObjectPermissionTo (plr,"function.mutePlayer")) then
        outputChatBox("Dziala mute",plr)
    else
        outputChatBox("Nie masz uprawnien!",plr,255,0,0)
    end
end

addEvent("kliknietyBan",true)
function zbanujGraczaPrzycisk(graczguiban,powodguiban)
    local plr client
    zbanujGracza(plr,graczguiban,powodguiban)
end
addEventHandler("kliknietyBan",resourceRoot,zbanujGraczaPrzycisk)

addEvent("kliknietyMute",true)
function zmutujGraczaPrzycisk(graczguiban,powodguiban)
    local plr client
    zmutujGracza(plr,graczguiban,powodguiban)
end
addEventHandler("kliknietyMute",resourceRoot,zmutujGraczaPrzycisk)

Na pewno nie zrobilem literowki ani nie wprowadzilem blednej nazwy czegokolwiek, zmienne z GUI sa w pierwszym poscie jak cos (nic nie zmienialem tam)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 00:21


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Tekst z elementu 'gui.powod' definiujesz jako 'powodguiban' a chwil? p??niej w triggerze u?ywasz ju? samo 'powod'.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 04:23


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

O kurde, ze pominalem to, mialem wrazenie, ze zmienilem hah, ale nadal skrypt zachowuje sie jakby nie bylo miejsca na "powod"

[ Dodano: 2020-01-30, 05:00 ]
Dobra, juz sam sobie poradzilem, dzieki za pomoc z tym getPlayerFromName i powiedzenie o bledzie przy triggerowaniu

[ Dodano: 2020-01-30, 05:40 ]
Teraz mam inny problem (xD)

function zmutujGracza(plr,graczguiban,powodguiban)
    local gracz getPlayerFromName(graczguiban)
    if ( hasObjectPermissionTo plr"function.banPlayer" ) ) or (hasObjectPermissionTo (plr,"command.mute")) then
        if not isPlayerMuted(graczthen
            setPlayerMuted(gracztrue)
            outputChatBox("Gracz "..getPlayerName(gracz).." zostal wyciszony za "..powodguiban.." przez "..getPlayerName(plr),root,255,0,0)
        else
            if isPlayerMuted(graczthen 
                setPlayerMuted(graczfalse)
                outputChatBox(graczguiban.." zostal odmutowany przez "..getPlayerName(plr),root,0,255,0)
            end
        end
    else
        outputChatBox("Nie masz uprawnien!",plr,255,0,0)
    end
end

addEvent("kliknietyMute",true)
function zmutujGraczaPrzycisk(graczguiban,powodguiban)
    local plr client
    zmutujGracza(plr,graczguiban,powodguiban)
end
addEventHandler("kliknietyMute",resourceRoot,zmutujGraczaPrzycisk)


Nie wiem co jest nie tak...
Bledy w debugscript 3:
Bad argument @ 'getPlayerFromName' [Expected string at argument 1, got nil]
Bad argument @ 'isPlayerMuted' [Expected player at argument 1, got boolean]
Access denied @ 'setPlayerMuted'
Bad argument @ 'getPlayerName' [Expected element at argument 1, got boolean]

attempt to concatenate local 'powodguiban' (a userdata value)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 09:08


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

- graczguiban to ju? jest gracz, kt?ry zosta? znaleziony po kliencie. Nie szukaj go ponownie tylko u?yj od razu ta zmienna.
- Po kliencie w triggerze nie ma zdefiniowanego plr. Je?li mia? to by? gracz, kt?ry mutuje to u?ywaj po serwerze 'client.
- Nadaj skryptowi uprawnienia Admina w ACL.

Poka? klienta po swoich zmianach.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 12:03


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Wiec tak, wszystko dziala tylko nie chce mutowac bo "Access denied setPlayerMuted"
Dalem uprawnienia admina skryptowi
Kod clienta:
function kliknietyMute()
    nickgraczaguiban guiGetText(gui.nick)
    powodguiban guiGetText(gui.powod)
    graczguiban getPlayerFromName(nickgraczaguiban)
    if not graczguiban then
        outputChatBox("Wpisz poprawny nick gracza")
        return
    end
    if graczguiban then
        if powodguiban=="" then
            powodguiban "Admin ma zawsze racje!"
            outputChatBox('Powod zostal automatycznie ustawiony na "'..powodguiban..'"')
            triggerServerEvent("kliknietyMute",resourceRoot,graczguiban,powodguiban)
            return
        end
        if powodguiban then
            triggerServerEvent("kliknietyMute",resourceRoot,graczguiban,powodguiban)
            return
        end
    end
end

Kod serwera:
function zmutujGracza(client,graczguiban,powodguiban)
    if ( hasObjectPermissionTo client"function.banPlayer" ) ) or (hasObjectPermissionTo (client,"command.mute")) then
        if not isPlayerMuted(graczguibanthen
            setPlayerMuted(graczguibantrue)
            outputChatBox("Gracz "..getPlayerName(graczguiban).." zostal wyciszony za "..powodguiban.." przez "..getPlayerName(client),root,255,0,0)
        else
            if isPlayerMuted(graczguibanthen 
                setPlayerMuted(graczguibanfalse)
                outputChatBox(graczguiban.." zostal odmutowany przez "..getPlayerName(client),root,0,255,0)
            end
        end
    else
        outputChatBox("Nie masz uprawnien!",client,255,0,0)
    end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 12:12


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

poka? met? i powiedz jak nazywa si? skrypt

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 14:03


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Skrypt nazywa sie "customban" - taka nazwa na szybko wymyslana, a jesli chodzi o acl request to wszystko w ACL dodalem

Ostatnio zmieniony przez MrVip615 2020-01-30, 14:55, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 14:50


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Yy nie mete tylko acl, pomy?ka.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-30, 14:59


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Grupa skryptu (mam nadzieje, ze rozumiesz o co mi chodzi)




ACL:





[ Dodano: 2020-01-30, 19:03 ]
A tak z innej beczki, wie ktos moze jak zrobic aby dxDraw byl ciagle wyswietlany, a nie przez ulamek sekundy?

[ Dodano: 2020-02-04, 16:39 ]
Ref

Postaw piwo autorowi tego posta
 

 
Tagi: sprawdzanie :: pól :: gui
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » sprawdzanie pól w GUI 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