Skrypty & Kody Lvl nie mniejszy niz 50

Status
Zamknięty.

Batonek

Senior User
Zarejestrowany
Dołączył
Kwiecień 26, 2008
Posty
605
Liczba reakcji
25
Witam. Chcia?bym prosi? o pomoc przy utworzeniu nast?puj?cego skryptu.
Je?eli gracz padnie i jego lvl spadnie poni?ej 50 to podczas logowania sie podniesie. Jest to TFS pod 7.6.
Nie prosz? o ca?y skrypt, tylko o jakie? wskaz?wki :)

Z g?ry dzi?kuj? za pomoc,
Pozdrawiam.
 
Odp: Lvl nie mniejszy niz 50

Polecam zapozna? si? z creaturescripts i przede wszystkim funkcje :
Kod:
onKill(cid, target, lastHit)
onDeath(cid, corpse, deathList)
onPrepareDeath(cid, deathList)

Do tego przyda sie sprawdzanie czy ofiara jest graczem i jego level.
 
Odp: Lvl nie mniejszy niz 50

A nie latwiej "login.lua" ?

Kod:
local lvl = 50
if getPlayerLevel(cid) < lvl then
   for i = getPlayerLevel(cid), lvl do
       doPlayerAddLevel(cid, 1)
   end
end

albo

Kod:
local lvl = 50
if getPlayerLevel(cid) < lvl then
   local exp = (getExperienceForLevel(lvl) - getPlayerExperience(cid)) -- +1 ?

   doPlayerAddExperience(cid, exp)
end
 
Ostatnia edycja:
Odp: Lvl nie mniejszy niz 50

Tak oczywi?cie jest to lepsze rozwi?zanie, zale?nie od tego jaki efekt chce osi?gn?? np je?li chce mie? wp?yw na loot to ju? moje rozwi?zanie. Je?eli jednak sam level, to fakt zdecydowanie lepiej w onLogin.
 
Odp: Lvl nie mniejszy niz 50

Tak, do login.lua by?o by lepszym rozwi?zaniem. Co? niestety nie chce dzia?a?. Kombinowa?em troch? ale nic z tego:

Kod:
[15/03/2012  09:52:35] data/creaturescripts/scripts/login.lua:4: attempt to call global 'doPlayerAddLevel' (a nil value)
[15/03/2012  09:52:35] Warning: [Event::loadScript] Can not load script. data/creaturescripts/scripts/login.lua
To log po wklejeniu pierwszego skryptu luzaka.

Ten silnik to w?a?ciwie nie wiadomo jaka wersja jest.
Wersja produktu 0.3
Wersja pliku 0.0.3.0

Ale no napisane by?o ?e Crying Damson wi?c skrypty pod 0.3.x powinny dzia?a??

Wi?c nie do ko?ca wiadomo jak te skrypty do niego pisa? :/
 
Ostatnia edycja:
Odp: Lvl nie mniejszy niz 50

Z b??du wynika ?e nie wklei?e? tego kou do funkcji onLogin, tylko na pocz?tku pliku, i nie znajduje "cid'a" czyli gracza...
 
Odp: Lvl nie mniejszy niz 50

Przy w??czaniu ju? nie ma b??du gdy m?j login wygl?da tak:
Kod:
function onLogin(cid)
local lvl = 50
if getPlayerLevel(cid) < lvl then
   for i = getPlayerLevel(cid), lvl do
       doPlayerAddLevel(cid, 1)
   end
end
    registerCreatureEvent(cid, "PlayerDeath")
    return TRUE
end

Niestety po zalogowaniu si? lvl nie wzrasta a w konsoli wywala b??dy:
Kod:
[15/03/2012  18:37:41] Lua Script Error: [CreatureScript Interface] 
[15/03/2012  18:37:41] data/creaturescripts/scripts/login.lua:onLogin

[15/03/2012  18:37:41] data/creaturescripts/scripts/login.lua:5: attempt to call global 'doPlayerAddLevel' (a nil value)
[15/03/2012  18:37:41] stack traceback:
[15/03/2012  18:37:41]     data/creaturescripts/scripts/login.lua:5: in function <data/creaturescripts/scripts/login.lua:1>
 
Odp: Lvl nie mniejszy niz 50

Z tego co pami?tam funkcja doPlayerAddLevel jest trzy argumentowe. Spr?buj tak
Kod:
local config = 
{
	levelToStart = 50,
}

function onLogin(cid)
	local level = getPlayerLevel(cid) - config.levelToStart
	if(level < 0) then
		doPlayerAddLevel(cid, -level, true)
	end
	registerCreatureEvent(cid, "PlayerDeath")
	return true
end

@Edit
Sprawdzi?em i w moim silniku nie ma domniemania je?eli chodzi o 3 argument, dlatego silnik wyrzuci odwo?anie si? do nieistniej?cego elementu.
 
Ostatnia edycja:
Odp: Lvl nie mniejszy niz 50

tia ale domyslnie jest to (cid, 1,false) czyli wystarczy ze u?yjesz 1 argumentu "miszczu"...
b??d polega na tym ?e ?le jest dodany kod...
 
Odp: Lvl nie mniejszy niz 50

Kod:
doPlayerAddLevel(cid, 1)
na:
Kod:
doPlayerAddLevel(cid)

ew sprobuj 2gi przyklad, bo dzisiaj nie ogrniam :(
 
Odp: Lvl nie mniejszy niz 50

Niestety nic nie idzie. Kombinuj?, ale macie mo?e jakie? inne pomys?y jak co? takiego zrobi?? Tu ci?gle wywala
Kod:
attempt to call global 'doPlayerAddLevel' (a nil value)
 
Odp: Lvl nie mniejszy niz 50

Kod:
local lvl = 50
if getPlayerLevel(cid) < lvl then
   local exp = (getExperienceForLevel(lvl) - getPlayerExperience(cid)) -- +1 ?
   doPlayerAddExperience(cid, exp)
end

...jak juz pisalem
 
Odp: Lvl nie mniejszy niz 50

Kod:
[19/03/2012  17:19:20] data/creaturescripts/scripts/login.lua:4: attempt to call global 'getExperienceForLevel' (a nil value)
[19/03/2012  17:19:20] stack traceback:
[19/03/2012  17:19:20]     data/creaturescripts/scripts/login.lua:4: in function <data/creaturescripts/scripts/login.lua:1>

Z tego tak?e nic.
 
Odp: Lvl nie mniejszy niz 50

PHP:
if isPlayer(cid) then
  if getPlayerExperience(cid) < 1847300 then
    doPlayerAddExp(cid, (1847300 - getPlayerExperience(cid)))
  end
  return 1
end

Mo?e zadzia?a co? takiego z ?ci?ganiem expa.
Oryginalnie by?a to kratka po kt?rej stani?ciu (zalogowaniu po zgonie) dodawa?o lv
 
Ostatnia edycja:
Odp: Lvl nie mniejszy niz 50

Kurrr... do funkcji to wklej a nie na pocz?tek pliku... a? taki g?upi jeste??
 
Odp: Lvl nie mniejszy niz 50

...::: R.e.f.r.e.s.h :::...​
 
Odp: Lvl nie mniejszy niz 50

...::: R.e.f.r.e.s.h :::...​
 
Status
Zamknięty.
Back
Do góry