Wysłany: 2018-05-18, 22:08
MaciekSteal
Wiek: 32 Na forum: 3601 dni Posty: 26
Piwa : 1
Cze??.
Bazuj? na paczce newmode.
Problem polega na tym, ?e gdy dodaj? premium na 1,7 czy 14 dni to premium faktycznie dzia?a oraz zapisuje si? w tabeli sql lecz po reconnect gracza posiadaj?cego premium usuwa warto?? z tabeli oraz usuwa rang? w grze. Da si? to jako? naprawi? ?
function sprawdzIloscDni ( gracz )
local spr = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE dbid=? AND premium>NOW() LIMIT 1" , getElementData ( gracz , "dbid" ))
if ( spr and #spr > 0) then
return spr [ 1 ]. premium
end
return false
end
function ustawIloscDni ( gracz , dni )
if sprawdzIloscDni ( gracz ) then
local wyk = exports . mysql : wykonaj ( string . format ( "UPDATE konta SET premium = DATE(premium) + INTERVAL %d DAY WHERE dbid=%d" , dni , getElementData ( gracz , "dbid" )))
return end
local wyk = exports . mysql : wykonaj ( string . format ( "UPDATE konta SET premium = DATE(curdate()) + INTERVAL %d DAY WHERE dbid=%d" , dni , getElementData ( gracz , "dbid" )))
end
addEvent ( "skPremium" , true )
addEventHandler ( "skPremium" , root , function( kod , dni )
local spr = ""
fetchRemote ( spr , wyk , "" , false , client , dni )
end )
function wyk ( responseData , errno , playerToReceive , amount )
if errno == 0 then
--if string . find ( responseData , "Divine-Life" ) then
if string . find ( responseData , '"status":0' ) then
if string . find ( responseData , '"number":"71480"' ) then
amount = 1
elseif string . find ( responseData , '"number":"74480"' ) then
amount = 7
elseif string . find ( responseData , '"number":"76480"' ) then
amount = 14
elseif string . find ( responseData , '"number":"79480"' ) then
amount = 30
end
exports [ "crpg_powiadomienia" ]: noti ( "Zakupi?e? premium na " .. amount .. " dni." , playerToReceive )
setElementData ( playerToReceive , "premium" , true )
ustawIloscDni ( playerToReceive , amount )
setPlayerNametagColor ( playerToReceive , 255 , 200 , 0 )
else
exports [ "crpg_powiadomienia" ]: noti ( "Podany kod jest nieprawid?owy." , playerToReceive )
end
end
end
addCommandHandler ( "daj.premium" , function( g , _ , graczhere , dni )
if getElementData ( g , "duty" ) == 4 and graczhere and dni then
graczhere = findPlayer ( g , graczhere )
if not graczhere then return end
ustawIloscDni ( graczhere , dni )
setElementData ( graczhere , "premium" , true )
setPlayerNametagColor ( graczhere , 255 , 200 , 0 )
exports [ "crpg_powiadomienia" ]: noti ( "Nada?e? graczu " .. getPlayerName ( graczhere ).. " premium na " .. dni .. " dni" , g )
end
end )
function findPlayer ( p , ph )
for i , v in ipairs ( getElementsByType ( "player" )) do
if tonumber ( ph ) then
if getElementData ( v , "id" ) == tonumber ( ph ) then
return getPlayerFromName ( getPlayerName ( v ))
end
else
if string . find ( string . gsub ( getPlayerName ( v ): lower (), "#%x%x%x%x%x%x" , "" ), ph : lower (), 1 , true ) then
return getPlayerFromName ( getPlayerName ( v ))
end
end
end
end
Dzi?ki
Wysłany: 2018-05-18, 22:11
Hades.
Łiiiiiiiiii
Wiek: 22 Na forum: 4700 dni Posty: 372
Nick w MP: Hades
Piwa : 3214
Najprawdopodobniej nie posiadasz zapisu tej premki w skrypcie zapisu gracza.
Więcej szczegółów
Wystawiono 1 piw(a):Mezo.
Wysłany: 2018-05-18, 22:13
MaciekSteal
Wiek: 32 Na forum: 3601 dni Posty: 26
Piwa : 1
"Damian2511" napisał/a :Najprawdopodobniej nie posiadasz zapisu tej premki w skrypcie zapisu gracza.
My?lisz, ?e to prawdopodobne je?eli zapisuj? t? premke na rok a na 14 dni ju? nie ?
Zobacz? czy jest jej zapis/ dzi?ki za pomoc
[ Dodano : 2018-05-18, 22:28 ]
Mo?e wina le?y po stronie tego kodu...
Odpowiada on (chyba) za wczytywanie danych na temat premium ze sql
if spr [ 1 ]. premium == "0000-00-00" then return end
if spr [ 1 ]. premium > data () then
setElementData ( p , "premium" , true )
setPlayerNametagColor ( p , 255 , 255 , 0 )
else
setElementData ( p , "premium" , false )
setPlayerNametagColor ( p , 255 , 255 , 255 )
exports [ "crpg_powiadomienia" ]: noti ( "Twoje konto premium straci?o wa?no?c." , p )
exports . mysql : wykonaj ( "UPDATE konta SET premium=? WHERE dbid=?" , "0000-00-00" , spr [ 1 ]. dbid )
end
end
[ Dodano : 2018-05-19, 20:17 ]
Poblem dalej nie rozwi?zany wie kto? co mog? z tym zrobi? : / ?
Tagi: premium
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: