Mudlet - skrypty

Forum techniczne - konfiguracja i skrypty
Awatar użytkownika
Zurin
Posty: 106
Rejestracja: pt sty 17, 2020 11:03 pm

Mudlet - skrypty

Post autor: Zurin » pn sty 24, 2022 1:43 pm

Poniżej przedstawiam jak w prosty sposób zrobić sobie licznik zabitych stworzeń.

Najpierw zróbmy sobie niezbędne zmienne - w górnym pasku klikamy na przycisku Variables a w otwartym oknie "Add Item". Jako nazwę wpisujemy 'zabici' a typ wartości (Value type) ustawiamy na table. Na koniec klikamy Save Item oraz Activate. Tak samo tworzymy drugą zmienną o nazwie 'zabiciTotal'.
Poniżej zamieszczam screen dla ułatwienia:
licznik1.jpg
licznik1.jpg (108.62 KiB) Przejrzano 13760 razy
Kolejną rzeczą której potrzebujemy do trigger - po to aby nasz skrypt reagował na zabicie moga i odpowiednia zwiększał liczniki. Niestety, tu jest taki problem - nie byłem w stanie smusić triggera do działania z polskimi znakami. Zatem aby cały nasz licznik działał, musimy niestety przełączyć grę w tryb bez polskich znaków...

No dobrze, zatem potrzebny jest nam trigger. Po lewej stronie w menu mamy Trigger - przełączamy się tam i znów klikamy Add Item i wypełniamy pola tak jak na poniższym obrazku:
liczni 2.jpg
liczni 2.jpg (166.34 KiB) Przejrzano 13760 razy
Dla ułatwienia wkleję jeszcze tekst triggera:

Kod: Zaznacz cały

^(Zabil(es|as) ([A-Za-z ]+))\.$
Nie zapomnijcie na końcu kliknąś Save Item oraz Activate!

Kolejną rzaczą która jest tu potrzebna są komendy do obłsługi naszego licznika. Przełączamy się zatem na sekcje Aliases i znów, taką samą metodą jak poprzednio tworzymy trzy nowe komendy: 'reset', 'resetGlobal', 'zabici'.
licznik3.jpg
licznik3.jpg (108.15 KiB) Przejrzano 13760 razy
Na samym końcu to co najważniejsze - skrypt. Przełączamy się na scripts i klikamy Add Item. Następnie w polu skryptu wklejamy to:

Kod: Zaznacz cały

-------------------------------------------------
--         Put your Lua functions here.        --
--                                             --
-- Note that you can also use external Scripts --
-------------------------------------------------
function init()
  if not initialized then
  	zabici = {}
		zabiciTotal={}
		loadVars();
		initialized = true
	end
end

function addKill(co) 
  if table.contains(zabici,co) then
		zabici[co] = zabici[co]+1
	 else 
	  zabici[co]=1
	end
	if table.contains(zabiciTotal,co) then
		zabiciTotal[co] = zabiciTotal[co]+1
	 else 
	  zabiciTotal[co]=1
	end
  saveVars()
end

function raport2() 
  local key;
	local val;
	local lacznie = 0; 
	local lacznieTeraz = 0; 
	echo("+-------------- Zabiles (lacznie): --------------+\n")
  echo("|                                                |\n")
	local tablicaLaczna = {}
	local n = 0
	for k,v in pairs(zabici) do
	  n=n+1
    tablicaLaczna[n]=k
  end
	for k,v in pairs(zabiciTotal) do

	  if  not table.contains(tablicaLaczna,k) then
  		n=n+1
    	tablicaLaczna[n]=k
  	end
	end
		
	local tablicaSuma = {}
	
	for kk in ipairs(tablicaLaczna) do
	  
		if table.contains(zabiciTotal,tablicaLaczna[kk]) then
		   tablicaSuma[tablicaLaczna[kk]] = zabiciTotal[tablicaLaczna[kk]]
		end	 
		if table.contains(zabici,tablicaLaczna[kk]) then
		   tablicaSuma[tablicaLaczna[kk]] = tablicaSuma[tablicaLaczna[kk]] 
		end
	end
	local lacznie = 0
	local lacznieTeraz = 0
  for key,val in pairs(tablicaSuma) do
	  
		
		
	  local name = string.sub(key .. " ...............................", 0, 32)
    local nb = tostring(tablicaSuma[key])
		local terazStr = tostring(zabici[key])
		if terazStr == "nil" then
			terazStr = "0"
		end	
    echo("| " ..  name .. " " .. string.sub(terazStr .. "/" .. nb .. "            ", 0, 12) .. "  |\n")
    lacznie = lacznie + tablicaSuma[key]
		if table.contains(zabici,key) then
			lacznieTeraz = lacznieTeraz + zabici[key]
		end	 
  end
  echo("|                                                |\n")
  echo("| LACZNIE: ....................... " .. string.sub(tostring(lacznieTeraz) .. "/".. tostring(lacznie) .. "            ", 0, 12) .. "  |\n")
	echo("+------------------------------------------------+\n")
end

function notifyKill()
  local tab = {}
	for i in string.gmatch(matches[4], "%S+") do
   table.insert(tab,i)
  end
	addKill(tab[3])
end


function reset()
 zabici = {}
end

function resetGlobal()
		zabici = {}
		zabiciTotal={}
		saveVars()
end

init()
remember("zabiciTotal")
loadVars();
Oczywiście jak zwykle nie zapominamy o Save Item oraz Activate.

Następnie robimy restart Mudleta a po jego ponownym uruchomieniu możemy cieszyć się licznikiem zabitych wrogów.

Obsługa jest następująca:
- polecenie 'zabici' podaje stan licznika, pierwsza liczba to liczba zabitych stworzeń od ostatniego uruchomienia Mudleta, druga liczba to całkowita liczba zabitych stworzeń (oczywiście musimy coś najpierw zabić aby licznik pokazał jakiekolwiek liczby(
- polecenie "reset" zeruje licznik aktualnej sesji
- polecenie "resetGlobal" zeruje licznik całkowity

Miłej zabawy!
To tylko mój podpis. Czytaj dalej.

Awatar użytkownika
Melisandre
Posty: 92
Rejestracja: czw sty 30, 2020 8:07 am

Re: Mudlet - skrypty

Post autor: Melisandre » pt lut 04, 2022 1:59 pm

Fajny licznik. Skromny, ale spełnia swoje zadanie.

FrankJScott
Posty: 301
Rejestracja: śr kwie 23, 2025 11:40 pm

Top Rated Business Bank In Palm Beach Fl Info

Post autor: FrankJScott » sob cze 14, 2025 2:48 pm

To the lady inquiring about banking help, community bank online banking, services provided by private banks, cypress bank online banking, the top banks, top 10 financial institutions, my bank info, a financial services, united united bank, reasons for opening a checking account, I highly recommend this look at this for portfolio management Naples FL site or national loan bank, capital 1 financial, highest rated bank near me, new community bank, the bank loan, us bank and trust, people bank mortgage, close banks, peoples security bank online banking, best national bank to use, as well as this she said about business bank in Palm Beach FL info as well as banking and investment, bank reviews near me, best online banks for trust accounts, us bank official website, united united bank, us bank online banking phone number, top financial company, jax bank, fdic banks, us bank portal, and don't forget this more helpful hints on wealth management firms blog which is also great. Also, have a look at this related site for bank near me in Winter Park FL tips not forgetting sites such as digital first banks, banks in the south, banks in jax fl, banks in united states, united trust bank, bak bank, best investment banking firm, trust bank login, best banks rated by customers, people trust bank, which is worth considering with this the original source on business bank in Palm Beach FL info not to mention loan banks in usa, relationship banking, financial institutions in florida, best banks in jacksonville fl, banks in winter haven fl, that guy for and don't forget us bank corporate trust, security bank investment, best banks for trust accounts, banks that have, best bank to bank at, for good measure. Check more @ Great Contact Cypress Bank & Trust Guide 11b9e8d

ODPOWIEDZ