Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] jak uzywac bazy danych w questach


Rekomendowane odpowiedzi

Opublikowano

jak uzywac bazy danych w questach?

zalozmy ze mam tabele z mobami i ich dropem np:

tabela o nazwie "drop_mysql" z kolumnami id_moba,nazwa_moba, drop,ilosc, szansa, drop1,ilosc1szansa1,drop2,ilosc2,szansa2

co uzyc w quescie aby quest kozystal z mojej tabeli?

Opublikowano

odswiezam

czy jezeli dodam takie cos

query("INSERT INTO player.drop SET `id_moba`='"m_id"', `drop`='"drop"',  `ilosc`='"szansa"' ;")

a pozniej

when m_id.kill begin
local rand = math.random(szansa)
if rand == 1 then
pc.give_item2(drop, 1)

to wszystko bedzie dzialac jak nlezy?

 

@edit

 

Zrobilem takie cos:

 

 

quest drop_mysql begin
	state start begin
		when login or levelup begin
			set_state( drop )
		end
	end
	state drop begin
		query("INSERT INTO player.drop_mysql SET `id_moba`='"m_id"', `drop`='"drop"',  `ilosc`='"szansa"' ;")
			when m_id.kill begin
				local rand = math.random(szansa)
					if rand == 1 then
						pc.give_item2(drop, 1)
					end
				end
			end
		end
	end
end

 

 

 

ale watpie zeby to dzialalo, musza gdzies w tym quescie byc dodane funkcje ze m_id to jest id moba, nie wiem jak to zrobic, pomoze ktos?

 

@edit

zrobilem jeszcze takie cos

 

 

quest drop_mysql begin
    state start begin
        when login or levelup begin
            set_state( drop )
        end
    end
    state drop begin
        query("SELECT id_moba FROM player.drop_mysql WHERE id_moba = '"..mob_vnum().."', drop = '"..pc.give_item2().."', ilosc = '"..count.."';")
            when id_moba.kill begin
                local rand = math.random(ilosc)
                    if rand == 1 then
                        pc.give_item2(drop, 1)
                    end
                end
            end
        end
    end
end

 

 

Opublikowano

Używasz złych querów. Insert Into tworzy całkiem nowy wpis w bazie a jeśli Cię dobrze rozumiem to robisz tak:


 

quest drop_mysql begin
    state start begin
        when kill begin
            local a=query("SELECT drop FROM player.moby WHERE id_moba = '"..npc.get_race().."';")
            if number(1,5 ) == 2 then
                pc.give_item2(a, 1)
 

nexi.png

 

CYTOWAĆ MOJE POSTY, JEŚLI LICZYCIE NA POMOC !!

Opublikowano

nie do konca o to mi chodzilo,

chce aby to tak dzialalo, aby mozna bylo zmieniac drop z poziomu navicata a nie fz:

1.wchodze do navicata

2.wpisuje w tabeli id moba, mozliwy drop z niego i szanse na drop (szansa nie w procentach tylko tak jak w

 

 

local rand = math.random(50)
if rand == 1 then
 

3.restart serwera

4.mam w tabeli id-101, drop-potka duza fioletowa, szansa-50, to chce aby na podstawie id moba w tabeli po zabiciu moba o id 101 wyleciala potka

 

#edit

ten quest nie bedzie dzialal? dlaczego?

quest drop_mysql begin
    state start begin
        when login or levelup begin
            set_state( drop )
        end
    end
    state drop begin
        query("SELECT id_moba FROM player.drop_mysql WHERE id_moba = '"..mob_vnum().."', drop = '"..pc.give_item2().."', ilosc = '"..count.."';")
            when id_moba.kill begin
                local rand = math.random(ilosc)
                    if rand == 1 then
                        pc.give_item2(drop, 1)
                    end
                end
            end
        end
    end
end
Opublikowano


quest test begin

state start begin

when kill with not npc.is_pc() begin

if npc.get_race() == query("SELECT id_moba FROM player.drop_mysql;")then

if number(1,2) == 1 then

local drop=query("SELECT drop1 FROM player.drop_mysql WHERE id_moba = '"..npc.get_race().."';")

local sztk=query("SELECT sztuki1 FROM player.drop_mysql WHERE id_moba = '"..npc.get_race().."';")

pc.give_tiem2(drop, sztk)

 

 

 

 

nexi.png

 

CYTOWAĆ MOJE POSTY, JEŚLI LICZYCIE NA POMOC !!

Opublikowano

czyli quest ma wygladac tak?:

    quest test begin
        state start begin
            when kill with not npc.is_pc() begin
                if npc.get_race() == query("SELECT id_moba FROM player.drop_mysql;")then
                    if number(1,2) == 1 then
                        local drop=query("SELECT drop1 FROM player.drop_mysql WHERE id_moba = '"..npc.get_race().."';")
                        local sztk=query("SELECT sztuki1 FROM player.drop_mysql WHERE id_moba = '"..npc.get_race().."';")
                        game.drop_item_with_ownership(drop, sztk)
                    end
                end
            end
         end
     end

 

 

Zobaczymy co z tego wyjdzie :D

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...