Jump to content

Zapisywanie danych.


Recommended Posts

Posted

Witam,

viewtopic.php?f=108&t=52786

Chciałem przetestować ten skrypt na swoim serwerze, ale jest pewien problem. Po restarcie skryptu wszystko znika, czy jest możliwość, aby niezabardzo doświadczona osoba (czytaj, ja...) zrobiła system zapisywania przedmiotów ? Raczej pokroju .xml, bo baza danych MysQl mnie przeraża. Chyba, że ona jest tym łatwiejszym rozwiązaniem.

Z góry dziękuje.

Posted

Hmm, teraz się tak przyjżałem i wydaje mi się, że to ma wbudowany system zapisywania... ale nie wiem... Byłbym wdzięczny jakby ktoś się temu przyjżał.

Posted

Do bazy będzie prościej niż do XML, ale nie zrobisz tego w 20 minut, ani w 2 dni, nie mając doświadczenia w tym.

Potrzebujesz zapisać wartość w element data playera o nazwie "inventory_items", być może do samego zasobu też trzeba będzie dopisać jakąś funkcję (nie przyglądałem mu się czy odczytuje przy każdym pokazaniu GUI te przedmioty z element data czy z jakiegoś "cache" (ale w sumie raczej z element data)). niej na uwadze to, że `inventory_items` to jest tablica.

ps. przyjRZyj się też słownikowi ;)

Posted

Męcze się z tym na podstawie innego systemu, ale jak widze jakieś klucze, floaty, primary keye, NULLe , nie wiadomo co i wiem, że tego nie rozumiem... to się odechciewa kombinowania... :|

Tutaj jest jakiś inny kod, próbowałem na jego podstawie, ale wyszła jakaś totalna masakra pewnie... :

database = mysql_connect( "127.0.0.1", "root", "", "mtadb" ) -- connectDB 
if database then 
    outputDebugString ('Connect') 
else 
    outputDebugString ("Trouble") 
end 
  
function saveAccounts () -- Save in the database 
    local serial = getPlayerSerial ( source ) 
    local x,y,z = getElementPosition( source ) 
    local i = getElementInterior( source ) 
    local d = getElementDimension( source ) 
    local skin = getPedSkin ( source ) 
    local money = getPlayerMoney ( source ) 
    local health = getElementHealth ( source ) 
    local armor = getPedArmor ( source ) 
    local wanted = getPlayerWantedLevel ( source ) 
    local inventory = getPlayerItemAmount ( source ) 
    local q =  mysql_query(database,"SELECT * FROM `accounts` WHERE `serial` = '".. serial .."'") 
    if(mysql_num_rows(q) == 0) then 
        mysql_query( database, "INSERT INTO accounts ( `serial` , x, y, z, intterior, demension, skin, money, health, armor, wanted, inventory ) VALUES ( '" .. serial .. "', " .. x .. ", " .. y .. ", " .. z .. "," .. i .. ", " .. d .. "," .. skin .. "," .. money .. ", ".. health ..", ".. armor ..", " .. wanted .. ", "..inventory.." )" ) 
    else 
        res = mysql_query ( database, "UPDATE `accounts` SET x = ".. x ..", y =  ".. y ..", z = ".. z ..", intterior = ".. i ..", demension = ".. d ..", skin = ".. skin ..", money = ".. money ..", health = ".. health ..", armor = ".. armor ..", wanted = ".. wanted ..", inventory = ".. inventory .." WHERE `serial` = '"..serial.."'") 
    end 
end 
  
function loadAccounts () -- Loading from the database 
    local serial = getPlayerSerial ( source ) 
    local result = mysql_query ( database ,"SELECT * FROM `accounts` WHERE `serial` = '"..serial.."'") 
    if result then 
        while true do 
            local row = mysql_fetch_assoc(result) 
            if not row then break end 
            setElementPosition ( source, row.x, row.y, row.z) 
            setElementInterior ( source, row.intterior ) 
            setElementDimension ( source, row.demension ) 
            setPedSkin ( source, row.skin ) 
            setPlayerMoney ( source, row.money ) 
            setElementHealth ( source, row.health) 
            setPedArmor ( source, row.armor ) 
            setPlayerWantedLevel ( source, row.wanted ) 
            getPlayerItemAmount ( source, row.inventory ) 
            -- outputChatBox ('You were warped at latest position',source,255,255,255,true) 
            break 
        end 
    end 
end 
addEventHandler ( "onPlayerJoin", getRootElement(), loadAccounts ) 
addEventHandler ( "onPlayerQuit", getRootElement(), saveAccounts ) 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...