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

Wysłany: 2020-07-31, 20:09


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

Witam mam problem z skryptem na bankomat. Bankomat znalaz?em na jednej z paczek. Bankomat dzia?a og?lnie dobrze , ale nie dzia?aj? przyciski "WP?A?" i "WYP?A?". Prosi?bym kogo? z czytaj?cych ten temat o pomoc w skrypcie.
Je?li kto? by m?g? to prosi?bym o przes?anie naprawionego skryptu.

[bankomaty]

addEvent("onPlayerRequestATMInfo", true)
addEventHandler("onPlayerRequestATMInfo", resourceRoot, function()
    local dbid=getElementData(client,"player:uid")
    if not dbid then
        triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
        return
    end
    local sr=exports["ogrpg-db"]:pobierzWyniki("SELECT bank_money FROM ogrpg_users WHERE id="..(tonumber(dbid) or 0).." LIMIT 1")
    if not sr or not sr.bank_money then
        triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
        return
    end
    triggerClientEvent(client,"doFillATMInfo", resourceRoot, true, tonumber(sr.bank_money))
end)

addEvent("doATMOperation", true)
addEventHandler("doATMOperation", resourceRoot, function(kwota)
    -- kwota dodatnia - wplata
    -- kwota ujemna - wyplata
    if kwota>0 and kwota>getPlayerMoney(client) then return end -- komunikat bledu po stronie klienta
    local dbid=getElementData(client,"player:uid")
    if not dbid then return end -- nie powinno sie zdarzyc
    if kwota>0 then
        if getPlayerMoney(client)<kwota then return end
        takePlayerMoney(client, kwota)
        exports["ogrpg-db"]:zapytanie("UPDATE ogrpg_users SET bank_money=bank_money+"..(tonumber(kwota) or 0).." WHERE id="..tonumber(dbid).." LIMIT 1")
        --triggerEvent("broadcastCaptionedEvent", client, getPlayerName(client).." wp?aca pieni?dze do bankomatu", 3, 20, true)
        outputChatBox("Wp?aci?es pieni?dze", client, 255,0,0)
    elseif kwota<0 then
        local sr=exports["ogrpg-db"]:pobierzWyniki("SELECT `bank_money` FROM `ogrpg_users` WHERE id="..tonumber(dbid).." LIMIT 1")
        if not sr or not sr.bank_money then return end -- nie opwinno sie wydarzyc
        sr.bank_money=tonumber(sr.bank_money)
        if (sr.bank_money<math.abs(kwota)) then
            outputChatBox("Nie masz tyle ?rodk?w na koncie!", client, 255,0,0)
--            triggerClientEvent(client,"onAnnouncement3", root, "Nie masz tyle ?rodk?w na koncie!", 5)
            return
        end
        outputChatBox("Wyp?aci?e? pieni?dze", client, 255,0,0)
        exports["ogrpg-db"]:zapytanie("UPDATE ogrpg_users SET bank_money=bank_money-"..math.abs(tonumber(kwota)).." WHERE id="..tonumber(dbid).." LIMIT 1")
        givePlayerMoney(client, math.abs(kwota))
    end
    

end)

[bankomaty_c] - TU JEST PROBLEM !! !

addEvent("onPlayerRequestATMInfo", true)
addEventHandler("onPlayerRequestATMInfo", resourceRoot, function()
    local dbid=getElementData(client,"player:uid")
    if not dbid then
        triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
        return
    end
    local sr=exports["ogrpg-db"]:pobierzWyniki("SELECT bank_money FROM ogrpg_users WHERE id="..(tonumber(dbid) or 0).." LIMIT 1")
    if not sr or not sr.bank_money then
        triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
        return
    end
    triggerClientEvent(client,"doFillATMInfo", resourceRoot, true, tonumber(sr.bank_money))
end)

addEvent("doATMOperation", true)
addEventHandler("doATMOperation", resourceRoot, function(kwota)
    -- kwota dodatnia - wplata
    -- kwota ujemna - wyplata
    if kwota>0 and kwota>getPlayerMoney(client) then return end -- komunikat bledu po stronie klienta
    local dbid=getElementData(client,"player:uid")
    if not dbid then return end -- nie powinno sie zdarzyc
    if kwota>0 then
        if getPlayerMoney(client)<kwota then return end
        takePlayerMoney(client, kwota)
        exports["ogrpg-db"]:zapytanie("UPDATE ogrpg_users SET bank_money=bank_money+"..(tonumber(kwota) or 0).." WHERE id="..tonumber(dbid).." LIMIT 1")
        --triggerEvent("broadcastCaptionedEvent", client, getPlayerName(client).." wp?aca pieni?dze do bankomatu", 3, 20, true)
        outputChatBox("Wp?aci?es pieni?dze", client, 255,0,0)
    elseif kwota<0 then
        local sr=exports["ogrpg-db"]:pobierzWyniki("SELECT `bank_money` FROM `ogrpg_users` WHERE id="..tonumber(dbid).." LIMIT 1")
        if not sr or not sr.bank_money then return end -- nie opwinno sie wydarzyc
        sr.bank_money=tonumber(sr.bank_money)
        if (sr.bank_money<math.abs(kwota)) then
            outputChatBox("Nie masz tyle ?rodk?w na koncie!", client, 255,0,0)
--            triggerClientEvent(client,"onAnnouncement3", root, "Nie masz tyle ?rodk?w na koncie!", 5)
            return
        end
        outputChatBox("Wyp?aci?e? pieni?dze", client, 255,0,0)
        exports["ogrpg-db"]:zapytanie("UPDATE ogrpg_users SET bank_money=bank_money-"..math.abs(tonumber(kwota)).." WHERE id="..tonumber(dbid).." LIMIT 1")
        givePlayerMoney(client, math.abs(kwota))
    end
    

end)

[meta.xml]
Kod:


<?xml version="1.0"?>

-<meta>

<script type="client" src="bankomaty_c.lua"/>

<script type="server" src="bankomaty.lua"/>

</meta>

Prosi?bym o napraw? skryptu , poniewa? szuka?em go ponad 1.5h. Je?li kto? by naprawi? ten skrypt to prosz? o porad? co zmieni? lub wys?a? gotowy skrypt. lol

Ostatnio zmieniony przez Wilq 2020-07-31, 20:19, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-31, 20:20


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wys?a?e? 2 razy ten sam kod, po stronie serwera i klienta. Mo?e przez to nie dzia?a?

Zerknij na b??dy /debugscript 3 i nam je tutaj wklej.
Na przysz?o??: korzystaj z BBCode [lua] oraz [code].

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-31, 20:42


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Podaj stron? clienta, tam jest b??d.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 08:48


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

for i,v in ipairs(bankomaty) do

    v.obiekt=createObject(2942,v[1],v[2],v[3],v[4],v[5],v[6])
    setElementInterior(v.obiekt,v[7] or 0)
    setElementDimension(v.obiekt,v[8] or 0)
    setElementFrozen(v.obiekt,true)
    setObjectBreakable ( v.obiekt, false )
    
--    v.mapicon=createBlip(v[1],v[2],v[3], 52, 2, 255,255,255,255, -1000, 300)
    v.mapicon=createBlip(v[1],v[2],v[3], 52, 1, 5,255,5,255, -1000, 150)
    setElementInterior(v.mapicon,v[7] or 0)
    setElementDimension(v.mapicon,v[8] or 0)
    
    v.cs=createColSphere(v[1],v[2],v[3]+1, 1)
    setElementInterior(v.cs,v[7] or 0)
    setElementDimension(v.cs,v[8] or 0)
    v.text=createElement('text')
    setElementData(v.text,"name","Bankomat")
    setElementPosition(v.text,v[1],v[2],v[3])
end


local bw={}
bw.win = guiCreateWindow(0.7236,0.3398,0.2314,0.5,"Bankomat",true)
guiWindowSetMovable(bw.win,false)
guiWindowSetSizable(bw.win,false)
bw.lbl1 = guiCreateLabel(0.0633,0.0997,0.903,0.1571,"Stan konta:\n0PLN",true,bw.win)
local font0_money = guiCreateFont(":ogrpg-gui/fonts/money.ttf", 14)
guiSetFont(bw.lbl1, font0_money)    
guiLabelSetVerticalAlign(bw.lbl1,"center")
guiLabelSetHorizontalAlign(bw.lbl1,"center",false)
local font1_money = guiCreateFont(":ogrpg-gui/droid-sans.ttf", 7)

bw.lbl2 = guiCreateLabel(0.0759,0.2734,0.8861,0.0695,"Wp?ata &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;",true,bw.win)


bw.edt1 = guiCreateEdit(0.0675,0.3385,0.8608,0.0859,true,bw.win)
bw.btn_wplac = guiCreateButton(0.0717,0.4427,0.8608,0.0911,"Wp?a?",true,bw.win)

bw.lbl3 = guiCreateLabel(0.0759,0.5626,0.8861,0.0695,"Wyp?ata ".."&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;",true,bw.win)
bw.edt2 = guiCreateEdit(0.0675,0.6276,0.8608,0.0859,true,bw.win)
bw.btn_wyplac = guiCreateButton(0.0717,0.7344,0.8608,0.0911,"Wyp?a?",true,bw.win)

bw.btn_zamknij = guiCreateButton(0.0717,0.888,0.8608,0.0859,"Zamknij",true,bw.win)
guiSetFont(bw.win, font1_money)
guiSetFont(bw.lbl2, font1_money)
guiSetFont(bw.edt1, font1_money)
guiSetFont(bw.btn_wplac, font1_money)
guiSetFont(bw.lbl3, font1_money)
guiSetFont(bw.edt2, font1_money)
guiSetFont(bw.btn_wyplac, font1_money)
guiSetFont(bw.btn_zamknij, font1_money)


guiSetVisible(bw.win, false)



addEventHandler("onClientColShapeHit", resourceRoot, function(el,md)
    if not md or el~=localPlayer then return end
--    outputChatBox("Bankomat pokazuje napis: AWARIA.")
--    if getPlayerName(localPlayer)=="Carolynn_Trench" or getPlayerName(localPlayer)=="Bob_Euler" then
        
        
        guiSetVisible(bw.win, true)
        guiSetEnabled(bw.btn_wyplac, false)
        guiSetEnabled(bw.btn_wplac, false)
        guiSetText(bw.lbl1,"Trwa otwieranie konta bankowego...")
        triggerServerEvent("onPlayerRequestATMInfo", resourceRoot)
--showCursor(true,true)
        guiSetInputMode("no_binds_when_editing")
            guiSetText(bw.win, string.format("Bankomat F3-KURSOR (UID:%d)",getElementData(el,"player:uid"))) 
            guiSetText(bw.lbl2, "Wp?ata &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;")
            guiSetText(bw.lbl3, "Wyp?ata &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;")
            guiSetVisible(bw.btn_wyplac, true)
            guiSetPosition(bw.btn_wplac, 0.0717,0.4427, true)
--    end
end)

local function closeATMWin()
    if guiGetVisible(bw.win) then
        guiSetVisible(bw.win, false)
--showCursor(false)
    end
end

addEventHandler("onClientGUIClick", bw.btn_zamknij, closeATMWin, false)
addEventHandler("onClientColShapeLeave", resourceRoot, function(el,md)
    if el~=localPlayer then return end
    closeATMWin()
end)

-- triggerClientEvent(client,"doFillATMInfo", resourceRoot, true, sr.bank_money)
addEvent("doFillATMInfo", true)
addEventHandler("doFillATMInfo", resourceRoot, function(success, balance)
    if not success then
        guiSetText(bw.lbl1,"Stan Twojego konta:".."\n".. balance.." PLN")   --Musisz by? zarejestrowanym graczem aby skorzysta? z bankomatu.
        return
    end
    guiSetText(bw.lbl1,"Stan Twojego konta:".."\n".. balance.." PLN")
    setElementData(bw.win, "balance", tonumber(balance))
    guiSetText(bw.edt2,100 > balance and balance or 100)
    if balance>0 then
        guiSetEnabled(bw.btn_wyplac, true)
    end

    guiSetText(bw.edt1,balance)
    guiSetEnabled(bw.btn_wplac, true)
end)

addEventHandler("onClientPlayerSpawn", localPlayer, closeATMWin)


addEventHandler("onClientGUIClick", bw.btn_wplac, function()
    local kwotae=tonumber(guiGetText(bw.edt1))
    if not kwotae then return end
    local kwota=math.floor(kwotae)
    if not kwota or kwota<1 then
--        triggerEvent("onAnnouncement3", root, "Nieprawid?owa kwota wp?aty.", 4)
        outputChatBox("Nieprawid?owa kwota wp?aty!", 255,0,0)
        return
    end
    
    if guiGetVisible(bw.btn_wyplac) then --normalna wplata
    
        if kwota>getPlayerMoney() then
            outputChatBox("Nie masz tyle got?wki!", 255,0,0)
            return
        end
        
        closeATMWin()
        triggerServerEvent("doATMOperation", resourceRoot, kwota)
    end

end, false)

addEventHandler("onClientGUIClick", bw.btn_wyplac, function()
    if not tonumber(guiGetText(bw.edt2)) then return end
    local kwotae=tonumber(guiGetText(bw.edt2))
    if not kwotae then return end
    local kwota=math.floor(kwotae)
    if not kwota or kwota<1 then
--        triggerEvent("onAnnouncement3", root, "Nieprawid?owa kwota wyp?aty.", 4)
        outputChatBox("Nieprawid?owa kwota wp?aty!", 255,0,0)
        return
    end
    if getPlayerMoney()+kwota>99999999 then
--        triggerEvent("onAnnouncement3", root, "Nie mo?esz mie? tyle got?wki przy sobie.", 4)
        outputChatBox("Maksymalna ilo?? got?wki kt?r? mo?esz mie? przy sobie to 99999999 PLN", 255,0,0)
        return
    end
    closeATMWin()
    triggerServerEvent("doATMOperation", resourceRoot, -kwota)

end, false)


Komentarz Wilq dodany 2020-08-01, 09:31Używaj BBCode [lua]!
Ostatnio zmieniony przez Wilq 2020-08-01, 09:31, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

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


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wklej b??dy /debugscript 3.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 13:45


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

bw.lbl2 = guiCreateLabel(0.0759,0.2734,0.8861,0.0695,"Wp?ata ───────────────────────",true,bw.win)


bw.edt1 = guiCreateEdit(0.0675,0.3385,0.8608,0.0859,true,bw.win)
bw.btn_wplac = guiCreateButton(0.0717,0.4427,0.8608,0.0911,"Wp?a?",true,bw.win)

bw.lbl3 = guiCreateLabel(0.0759,0.5626,0.8861,0.0695,"Wyp?ata ".."───────────────────────",true,bw.win)
bw.edt2 = guiCreateEdit(0.0675,0.6276,0.8608,0.0859,true,bw.win)
bw.btn_wyplac = guiCreateButton(0.0717,0.7344,0.8608,0.0911,"Wyp?a?",true,bw.win)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 13:50


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

To jest kod, kolega prosil o bledy z db3


komenda /debugscript 3

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 13:54


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

Sorka ?e pytam ale t? komend? gdzie mam wpisa? ? Ja nie bardzo czaj? , dopiero zaczynam z LUA.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 14:37


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

To po co od razu si? brac za system bankomatow? udaj sie do poradnik?w naucz sie bynajmniej podstaw i zacznij od czego? ma?ego, nie warto robic serwera bez ?adnych umiej?tno?ci.


Cmd wszystkie wpisujemy w chat albo konsole.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 16:24


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

Wklejam b??dy:
/bankomaty_c.lua:77: Bad argument @ 'guiSentFont'
[Excepted gui-font at argument 2, got boolean]

/bankomaty_c.lua:78: Bad argument @ 'guiSentFont'
[Excepted gui-font at argument 2, got boolean]

/bankomaty_c.lua:79: Bad argument @ 'guiSentFont'
[Excepted gui-font at argument 2, got boolean]

/bankomaty_c.lua:80: Bad argument @ 'guiSentFont'
[Excepted gui-font at argument 2, got boolean]

/bankomaty_c.lua:81: Bad argument @ 'guiSentFont'
[Excepted gui-font at argument 2, got boolean]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 16:26


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Masz b??d z drugim argumentem funkcji guiSetFont, zobacz czy zdefiniowa?e? pod podan? zmienn? guiCreateFont

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 16:32


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

Co? takiego:

local font0_money = guiCreateFont(":ogrpg-gui/fonts/money.ttf", 14)
guiSetFont(bw.lbl1, font0_money)

local font1_money = guiCreateFont(":ogrpg-gui/droid-sans.ttf", 7)

A potem mam takie co?:

guiSetFont(bw.win, font1_money)
guiSetFont(bw.lbl2, font1_money)
guiSetFont(bw.edt1, font1_money)
guiSetFont(bw.btn_wplac, font1_money)
guiSetFont(bw.lbl3, font1_money)
guiSetFont(bw.edt2, font1_money)
guiSetFont(bw.btn_wyplac, font1_money)
guiSetFont(bw.btn_zamknij, font1_money)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 18:22


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Czy elementy kt?rym ustawiasz fonty, to elementy gui czy dx?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-01, 20:15


kewen6969

Mapper / Modeler 3D






Wiek: 26
Na forum: 2367 dni
Posty: 11
Nick w MP: zct7zct

Piwa: 1

Respekt: 50

EDIT: Og?lnie to naprawi?em sytuacje , ale nadal nie dzia?aj? przyciski "WP?A?" oraz "WYP?A?".

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-08-02, 21:00


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Pisz?c "nie dzia?aj?", masz na my?li to, ?e klikasz w nie i nic si? nie dzieje (?adnego powiadomienia na czacie tudzie? na ekranie), czy nie mo?esz w nie klikn?? bo s? przygaszone / wy??czone?

Postaw piwo autorowi tego posta
 

 
Tagi: bankomat
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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