Problema vouchere

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Avatar utilizator
hware82
Nivel 2

Nivel 2
Mesaje: 203
Membru din: 05 Iun 2018, 13:18
Server: In lucru
Regat: Jinno
Aprecieri: 36  
Mulţumiri: 11  
Medalii

*Problema:quest vouchere md
Tipologie server(PvM / PvP):pvm
*Resursa folosita: *Link exclusiv J4M*
*ServerFiles utilizat:WoT2
*Syserr:
Poza:
*Detalii suplimentare:Salut,am voucherele implementate,totul arata ok,dau pe voucher scrie ai primit ...md si rezultat zero in account/coins
questlib.lua:
give_md(z)
os.execute("mysql -u root --password='zzzzzzzz' account --execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u root --password='zzzzzzzz' log --execute='INSERT INTO voucher_log (account_id, monede, data) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end

quest voucher:
quest vouchers begin
state start begin
when 80014.use begin
say_title("Voucher Monede Dragon")
say("Ai primit 100 Monede Dragon")
give_md(100)
item.remove()
end

when 80017.use begin
say_title("Voucher Monede Dragon")
say("Ai primit 50 Monede Dragon")
give_md(50)
item.remove()
end

when 80015.use begin
say_title("Voucher Monede Dragon")
say("Ai primit 500 Monede Dragon")
give_md(500)
item.remove()
end

when 80016.use begin
say_title("Voucher Monede Dragon")
say("Ai primit 1000 Monede Dragon")
give_md(1000)
item.remove()
end
end
end

Vreo idee de la ce poate fi? Tin sa precizez,questul a fost executat corect,fara erori ! Am citit tot ce se poate pe Just4metin,nu am idee de la ce poate fi,din sursa?Si daca da dupa ce trebuie sa ma uit,multumesc !

si revin cu un edit,cand dau pe voucher in panoul mysql apare :
root@vds:/usr/game # ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
eu am pus password de la navicat in questlib
Avatar utilizator
Bgd
Nivel 2

Nivel 2
Mesaje: 269
Membru din: 13 Sep 2013, 11:52
Aprecieri: 170  
Mulţumiri: 160  
Discord: Copiază ID
Medalii

In questlib trebuie pusa parola de la "root@localhost", care probabil e diferita fata de cea pe care o folosesti tu sa te loghezi in navicat.
Uita-te in config ch1 de exemplu, ar trebui sa ai asa:
PLAYER_SQL: localhost root parola
Daca nu ai asa, ceva asemanator. Parola de pe acea linie trebuie pusa in questlib, bafta!
Daca ai altceva in loc la "root", modifica in questlib root cu ce ai tu in config.

La final, in questlib trebuie sa ai ceva de genul:
give_md(z)
os.execute("mysql -u user_din_config --password='parola_din_config' account --execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u user_din_config --password='parola_din_config' log --execute='INSERT INTO voucher_log (account_id, monede, data) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
Avatar utilizator
hware82
Nivel 2

Nivel 2
Mesaje: 203
Membru din: 05 Iun 2018, 13:18
Server: In lucru
Regat: Jinno
Aprecieri: 36  
Mulţumiri: 11  
Medalii

denyxp31 scrie:In questlib trebuie pusa parola de la "root@localhost", care probabil e diferita fata de cea pe care o folosesti tu sa te loghezi in navicat.
Uita-te in config ch1 de exemplu, ar trebui sa ai asa:
PLAYER_SQL: localhost root parola
Daca nu ai asa, ceva asemanator. Parola de pe acea linie trebuie pusa in questlib, bafta!
Daca ai altceva in loc la "root", modifica in questlib root cu ce ai tu in config.

La final, in questlib trebuie sa ai ceva de genul:
give_md(z)
os.execute("mysql -u user_din_config --password='parola_din_config' account --execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u user_din_config --password='parola_din_config' log --execute='INSERT INTO voucher_log (account_id, monede, data) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
am inteles,imediat incerc si vin cu edit,multumesc !
Din pacate aceeasi eroare,o sa mai sap prin navicat sa vad ce useri mai am.
DAR, daca eu am schimbat userul,cu grant table,e clar ca vechiul user nu mai are nici o legatura acolo,nu?
Avatar utilizator
[ST]SSH
Membru Club

Membru Club
Mesaje: 1704
Membru din: 12 Apr 2016, 23:54
Server: Fost Eluria2
Regat: Jinno
Aprecieri: 132  
Mulţumiri: 245  
 Contact:
Medalii

Trebuie sa pui user si parola de la tine!
Avatar utilizator
hware82
Nivel 2

Nivel 2
Mesaje: 203
Membru din: 05 Iun 2018, 13:18
Server: In lucru
Regat: Jinno
Aprecieri: 36  
Mulţumiri: 11  
Medalii

[ST]SSH scrie:Trebuie sa pui user si parola de la tine!
Da,le-am pus,dar nu inteleg de ce insista ca nu e ,probabil formularea nu e corecta,poti sa arunci o privire peste ea? e in descriere.Multumesc!
Avatar utilizator
Ene
Nivel 8

Nivel 8
Mesaje: 1659
Membru din: 09 Sep 2016, 01:00
Server: Clasic
Regat: Jinno
Aprecieri: 274  
Mulţumiri: 603  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

hware82 scrie:
[ST]SSH scrie:Trebuie sa pui user si parola de la tine!
Da,le-am pus,dar nu inteleg de ce insista ca nu e ,probabil formularea nu e corecta,poti sa arunci o privire peste ea? e in descriere.Multumesc!
si sursa la sv?
daca ai ati zic eu o rezolvare rapida si usoara

=============
dacă răspunsul meu te-a ajutat nu uita butonul LIKE



Imagine
Afișează semnătura
Avatar utilizator
hware82
Nivel 2

Nivel 2
Mesaje: 203
Membru din: 05 Iun 2018, 13:18
Server: In lucru
Regat: Jinno
Aprecieri: 36  
Mulţumiri: 11  
Medalii

Ene scrie:
hware82 scrie:
[ST]SSH scrie:Trebuie sa pui user si parola de la tine!
Da,le-am pus,dar nu inteleg de ce insista ca nu e ,probabil formularea nu e corecta,poti sa arunci o privire peste ea? e in descriere.Multumesc!
si sursa la sv?
daca ai ati zic eu o rezolvare rapida si usoara
da am sursa,ar fi fantastic !
Avatar utilizator
Ene
Nivel 8

Nivel 8
Mesaje: 1659
Membru din: 09 Sep 2016, 01:00
Server: Clasic
Regat: Jinno
Aprecieri: 274  
Mulţumiri: 603  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

intra in > db/src/ClientManagar.cpp
si cauta >

Cod: Selectaţi tot

sprintf(szQuery, "update account set `cash` = `cash` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
schimba cu asta

Cod: Selectaţi tot

sprintf(szQuery, "update account set `coins` = `coins` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
pe urma compileaza sursa la db si aia e
dezinstalezi questu ala cel ai tu si al bagi pe asta

Cod: Selectaţi tot

quest charge_cash_by_voucher begin
    state start begin
        function charge(amount, charge_type)
            if charge_type == nil then
                charge_type = "coins"
            end

            if 0 < amount then
                -- syntax : pc.charge_cash(amount, charge_type)
                -- warning:     1. 'charge_type' : "cash"(default) | "mileage"
                --            2. 'amount' must be positive number.
                local result = pc.charge_cash(amount, charge_type)

                if true == result then
                    local item_id = item.get_id()
                    char_log(item_id, "CHARGE_CASH_BY_VOUCHER", amount)
                    syschat("MD a fost transferat in cont. "..amount.." .... ")

                    local flag_name = "total_" .. charge_type
                    pc.setqf(flag_name, pc.getqf(flag_name) + amount)

                    item.remove()
                end
            end

            return false
        end
 
        when 80014.use or 80015.use or 80016.use or 80017.use begin
            local amount = item.get_value(0)

            charge_cash_by_voucher.charge(amount, "coins")
        end
    end
end
va merge 100% e testat de mine si merge
Pentru acest mesaj, Ene a primit 2 (de) mulţumiri
hware82 • Okami

=============
dacă răspunsul meu te-a ajutat nu uita butonul LIKE



Imagine
Afișează semnătura
Avatar utilizator
K3RN3L
Utilizator interzis !

Utilizator interzis !
Mesaje: 597
Membru din: 01 Feb 2017, 18:44
Server: N-am
Regat: Chunjo
Aprecieri: 106  
Mulţumiri: 141  
Medalii

test
edit test
Avatar utilizator
hware82
Nivel 2

Nivel 2
Mesaje: 203
Membru din: 05 Iun 2018, 13:18
Server: In lucru
Regat: Jinno
Aprecieri: 36  
Mulţumiri: 11  
Medalii

Ene scrie:intra in > db/src/ClientManagar.cpp
si cauta >

Cod: Selectaţi tot

sprintf(szQuery, "update account set `cash` = `cash` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
schimba cu asta

Cod: Selectaţi tot

sprintf(szQuery, "update account set `coins` = `coins` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
pe urma compileaza sursa la db si aia e
dezinstalezi questu ala cel ai tu si al bagi pe asta

Cod: Selectaţi tot

quest charge_cash_by_voucher begin
    state start begin
        function charge(amount, charge_type)
            if charge_type == nil then
                charge_type = "coins"
            end

            if 0 < amount then
                -- syntax : pc.charge_cash(amount, charge_type)
                -- warning:     1. 'charge_type' : "cash"(default) | "mileage"
                --            2. 'amount' must be positive number.
                local result = pc.charge_cash(amount, charge_type)

                if true == result then
                    local item_id = item.get_id()
                    char_log(item_id, "CHARGE_CASH_BY_VOUCHER", amount)
                    syschat("MD a fost transferat in cont. "..amount.." .... ")

                    local flag_name = "total_" .. charge_type
                    pc.setqf(flag_name, pc.getqf(flag_name) + amount)

                    item.remove()
                end
            end

            return false
        end
 
        when 80014.use or 80015.use or 80016.use or 80017.use begin
            local amount = item.get_value(0)

            charge_cash_by_voucher.charge(amount, "coins")
        end
    end
end
va merge 100% e testat de mine si merge
O sa incerc acu,doar ca eu am o problema cu sursa db,imi da ceva eroare din boost-nu gaseste fisiere,o sa incerc sa rezolv si rev cu edit,multumesc !
a,deci asta era problema,in loc de coins in sursa e cash si daca ar fi sa modifici quest si sectiunea coins din account cu cash ar merge? :D

cred ca e ceva ciudat cu link-urile in makefile la mine in db -I/usr/include/ deci e directionat pe include din usr nu din extern sursa,e normal asa? si lib-urile la fel

Ok,am compilat,acum intrebarea e, in questlib si functions ramane asa?

Am luat-o de la capat si surpriza : a mers,esti un geniu man,multumesc mult !!! ai :-bd
Închis
Răspunsuri
8
Vizualizări
741
Răspunsuri
2
Vizualizări
332
Răspunsuri
2
Vizualizări
192
Răspunsuri
3
Vizualizări
365

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori