Witamy na GTAOnline Obecny czas to 2018-11-17, 17:54 Użytkowników: 76714
Strona główna | Użytkownicy | Grupy | Faq | Regulamin | Zaloguj

Poprzedni temat :: Następny temat
Sprawdzanie reputacji w xml
Autor Wiadomość

maxerxxl 





Informacje
Nick w MP: MaXI
Wiek: 23
Na forum: 2312 dni
Posty: 286
Piwa: 30
Respekt: 45,3

Wysłany: 2014-09-07, 13:08   Sprawdzanie reputacji w xml



Witam, zrobiłem sobie mini skrypcik na towary, są one w pliku xml, lecz nie sprawdza ich i cały czas wyskakuje że nie posiadam reputacji ....
Zrobiłem sobie komendę na dawanie 100 reputacji, daje ją, ale nadal nie sprawdza.

Opiszę jak skrypt ma działać:
Sprawdza wybrany towar który nacisnąłem, i sprawdza jaka jest reputacja w nim.
Jak jest reputacja taka jak w kolumnie reputacja funkcja się wykonuje.

Co może być źle?
function sprawdzReputacje(player)
    local plik xmlLoadFile("baza-fc/config/towary.xml""towary")
    if plik then
        local i 0
        while xmlFindChild(plik"towar"i) do
            local find xmlFindChild(plik"towar"i)
            if tostring(xmlNodeGetAttribute(find,"nazwa")) == tostring(xmlNodeGetAttribute(find,"nazwa")) then
                return tonumber(xmlNodeGetAttribute(find,"reputacja"))
            end
            i 1
        end
        xmlUnloadFile(xml) 
    end
    return tonumber(0)
end

addEvent("SprawdzTowar"true)
addEventHandler("SprawdzTowar"resourceRoot, function(graczopcja)
    if not opcja then
        outputChatBox("* Nie wybrałeś opcji towaru!"gracz)
    return
    end
    if sprawdzReputacje() == getElementData(player"reputacja"then
        outputChatBox("Masz reputacje, ciesz sie ;d"gracz25500true)
    else
        outputChatBox("* Nie posiadasz wystarczającej reputacji aby podjąć te zlecenie!"player25500)
    end
end)

addCommandHandler("reputacja", function(player)
    outputChatBox("Dano reputacji 5!"player)
    setElementData(player"reputacja"5)
end)


XML:
<towary>
    <towar id="0" nazwa="Paluszki" status="Dostępny" reputacja="0" wynag="50"/>
</towary>


Dzięki.

//Brat maxera

Postaw piwo autorowi tego posta
 

PolskiSebek12 
Programista





Informacje
Nick w MP: CrosRoad95
Wiek: 20
Na forum: 1591 dni
Posty: 369
Piwa: 2309
Respekt: 298,3
Respekt: 298,3Respekt: 298,3Respekt: 298,3

Wysłany: 2014-09-07, 13:41   



tak zauważyłem że twój skrypt działa na ciekawej zasadzie:
Kod:

<towary>
<towar id="0" nazwa="Paluszki" status="Dostępny" reputacja="0" wynag="50"/>
</towary>

a co jeśli będzie więcej niż tylko Paluszki ?
https://wiki.multitheftauto.com/wiki/XmlNodeGetChildren
zara dam ci wersje sprawdzReputacje() działającą

_________________
Kontakt discord: CrosRoad95#4425
Szeryf polskiej sceny mta.
Współpracuje z twórcami MTA:SA.

Tworzę serwer RPG REALM. www.mtarealm.pl
Discord tegoż serwera: https://discord.gg/UDasvH

Ostatnio zmieniony przez PolskiSebek12 2014-09-07, 13:49, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

maxerxxl 





Informacje
Nick w MP: MaXI
Wiek: 23
Na forum: 2312 dni
Posty: 286
Piwa: 30
Respekt: 45,3

Wysłany: 2014-09-07, 13:48   



dałem tylko urywek kodu, bo tych towarów jest więcej.

Postaw piwo autorowi tego posta
 

PolskiSebek12 
Programista





Informacje
Nick w MP: CrosRoad95
Wiek: 20
Na forum: 1591 dni
Posty: 369
Piwa: 2309
Respekt: 298,3
Respekt: 298,3Respekt: 298,3Respekt: 298,3

Wysłany: 2014-09-07, 13:50   



"dałem tylko urywek kodu, bo tych towarów jest więcej." tym co zrobiłeś zawsze pobierzesz towar który jest na samej gorze :)

Kod:

function SprawdzReputacje(towar)
plik = xmlLoadFile("towary.xml")
if plik then
local nodetable = xmlNodeGetChildren(plik)
for i,nodexml in ipairs(nodetable) do
if tostring(xmlNodeGetAttribute(nodexml,"nazwa")) == towar then
return xmlNodeGetAttribute(nodexml,"reputacja"),xmlNodeGetAttribute(nodexml,"wynag")
end
end
end
end

function check(gracz,cmd,towar)
if towar then
rep,wyn = SprawdzReputacje(towar)
xmlUnloadFile(plik)
if rep then
outputChatBox("Towar: "..towar..", Wymagana reputacja: "..rep..", Wynagrodzenie: "..wyn.."",gracz,255,0,0,true)
else
outputChatBox("Taki towar nie istnieje!",gracz,255,0,0,true)
end
else
outputChatBox("Podaj nazwe towaru!",gracz,255,0,0,true)
end
end
addCommandHandler("sprawdz",check)

działa na 100% tylko podaj poprawne miejsce pliku

_________________
Kontakt discord: CrosRoad95#4425
Szeryf polskiej sceny mta.
Współpracuje z twórcami MTA:SA.

Tworzę serwer RPG REALM. www.mtarealm.pl
Discord tegoż serwera: https://discord.gg/UDasvH

Postaw piwo autorowi tego posta
 

maxerxxl 





Informacje
Nick w MP: MaXI
Wiek: 23
Na forum: 2312 dni
Posty: 286
Piwa: 30
Respekt: 45,3

Wysłany: 2014-09-07, 14:17   



niestety nie działa.

Postaw piwo autorowi tego posta
 

PolskiSebek12 
Programista





Informacje
Nick w MP: CrosRoad95
Wiek: 20
Na forum: 1591 dni
Posty: 369
Piwa: 2309
Respekt: 298,3
Respekt: 298,3Respekt: 298,3Respekt: 298,3

Wysłany: 2014-09-07, 14:19   



dziwne bo mi działa bez problemów, zmieniłeś miejsce gdzie znajduje się plik .xml ?

_________________
Kontakt discord: CrosRoad95#4425
Szeryf polskiej sceny mta.
Współpracuje z twórcami MTA:SA.

Tworzę serwer RPG REALM. www.mtarealm.pl
Discord tegoż serwera: https://discord.gg/UDasvH

Postaw piwo autorowi tego posta
 

maxerxxl 





Informacje
Nick w MP: MaXI
Wiek: 23
Na forum: 2312 dni
Posty: 286
Piwa: 30
Respekt: 45,3

Wysłany: 2014-09-07, 14:54   



tak.

[ Dodano: 2014-09-07, 15:55 ]
mój kod:
function SprawdzReputacje(towar) 
    plik xmlLoadFile("baza-fc/config/towary.xml") 
    if plik then 
        local nodetable xmlNodeGetChildren(plik) 
        for i,nodexml in ipairs(nodetable) do 
            if tostring(xmlNodeGetAttribute(nodexml,"nazwa")) == towar then 
                return xmlNodeGetAttribute(nodexml,"reputacja")
            end 
        end 
    end 
end 

addEvent("SprawdzTowar"true)
addEventHandler("SprawdzTowar"resourceRoot, function(graczopcja)
    if SprawdzReputacje(graczthen
        outputChatBox("Masz reputacje, ciesz sie ;d"gracz25500true)
    else
        outputChatBox("* Nie posiadasz wystarczającej reputacji aby podjąć te zlecenie!"player25500)
    end
end)


[ Dodano: 2014-09-07, 19:58 ]
już działa thx.
Temat close.

//brat maxera

Postaw piwo autorowi tego posta
 

PolskiSebek12 
Programista





Informacje
Nick w MP: CrosRoad95
Wiek: 20
Na forum: 1591 dni
Posty: 369
Piwa: 2309
Respekt: 298,3
Respekt: 298,3Respekt: 298,3Respekt: 298,3

Wysłany: 2014-09-07, 19:56   



sory że pisze mimo że powinno być zamknięte
chodzi mi o to:
Kod:

if SprawdzReputacje(gracz) then


jaki to ma sens ? to powoduje że jeżeli cokolwiek odpowiedziało i nie jest równe false lub nil to idzie dalej

_________________
Kontakt discord: CrosRoad95#4425
Szeryf polskiej sceny mta.
Współpracuje z twórcami MTA:SA.

Tworzę serwer RPG REALM. www.mtarealm.pl
Discord tegoż serwera: https://discord.gg/UDasvH

Postaw piwo autorowi tego posta
 

maxerxxl 





Informacje
Nick w MP: MaXI
Wiek: 23
Na forum: 2312 dni
Posty: 286
Piwa: 30
Respekt: 45,3

Wysłany: 2014-09-07, 20:44   



mówię że rozwiązane :)

to mój kod który mam teraz i działa.
if (reputacja0 == "".. getElementData(gracz"reputacja") ..""then


jeszcze jedno, czemu nie sprawdza czy opcja jest równa? w ogóle jej nie sprawdza, a opcja w outputChat działa normalnie którą przetestowałem
 if (opcja == 0then
    outputChatBox("* Wybrałeś opcję 1!"player)
end


Postaw piwo autorowi tego posta
 
Tagi: sprawdzanie :: reputacji :: xml
Anonymous



Dołaczył: Wczoraj 0:00
Posty: 1
Skad: google.com


Anonymous Koniecznie zajrzyj na:








Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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
Wersja do druku

Skocz do:  


phpBB by Przemo modified by xXx 2003-2016

Template GTAONLINE created by gtaonline.pl



Strona wygenerowana w 0,18 sekundy. Zapytań do SQL: 18