lila lélekkő+

Indította EnVyUs, 2018-05-19, 12:24:15

sziasztok!

Elvileg a lélekkőnek a lila változata a +-os nagyobb eséllyel fejleszt, mint a sima.

Hol tudom átírni a lélekkőnek a sikerességi esélyét?


Idézetet írta: EnVyUs Dátum 2018-05-19, 12:24:15
sziasztok!

Elvileg a lélekkőnek a lila változata a +-os nagyobb eséllyel fejleszt, mint a sima.

Hol tudom átírni a lélekkőnek a sikerességi esélyét?

Quest plz Quest..
OFF:
[spoiler]
Mi lenne, ha használnád az agyad mielőtt felteszel ide egy kérdést?
Az előző témáidban is ott a segítség (AZAZ MEGOLDÁS (((HELYETTED))) ) és annyira nem méltatsz, hogy megköszönd. Nice...
[/spoiler]

“Majdnem minden tudásunkért nem azoknak tartozunk, akik egyetértettek, hanem azoknak, akik nem.”

2018-05-19, 18:34:57 #2 Utolsó szerkesztés: 2018-05-19, 21:43:21 Szerző: EnVyUs
Később csináltam meg a fast pickupos dologot és elfelejtettem megköszönni.


Üzenet összefésülés: 2018-05-19, 18:41:50

Van agyam, ezt a questet használom:

---------------------
--Magyarosítva
--by. P3NG3R
---------------------
quest training_grandmaster_skill begin
    state start begin
when 50513.use begin
say_title("A Nagymesteri képességek edzése")
say("")
say("Ez a kő tele van lelki energiával,")
say("amely javíthatja a képességeidet.")
say("")
wait()
if pc.get_skill_group() == 0 then
say("Nincs képességed, amit fejleszthetnél!" ..pc.get_skill_group())
return
end

if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
say_title("A Nagymesteri képességek edzése")
say("")
say("Ahhoz, hogy nagymesteri képességeid")
say("fejleszthesd, kattints a 'Tovább' gombra.")
say("")
wait()
say_title("A Nagymesteri képességek edzése")
say("")
else
say("Ma már használtál egy lélekkövet!")
say("Ördögűző tekercs segítségével újat használhatsz.")
return
end
end

local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

local vnum_list = result[1]
local name_list = result[2]

if table.getn(vnum_list) == 0 then
say("Jelenleg nincs nagymesteri képességed,")
say("amit fejleszthetnél.")
return
end

say("Válaszd ki azt a képességet, amivel el szeretnéd")
say("érni a tökéletes mester szintet.")

local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Bezár")

local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
if pc.count_item(50513)==0 then
say("A mágikus lelkek ereje megszűnt,")
say("mert a kő időközben eltűnt.")
say("")
return
end

local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)

test_chat("Jelenlegi rangod: "..cur_alignment)
test_chat("Szükséges rangpontok: "..need_alignment)

local title=string.format("%s fejlesztése G%d-ről", skill_name, skill_level-30+1)
say_title(string.format("%s", title))
say("Ha felhasználod edzés közben a rossz/jó pontjaidat,")
say("akkor megtörténhet, hogy az átlagszint alá esel.")
say("")

if cur_alignment<-19000+need_alignment then
say_reward("Nem lehet tovább rontani a rangod. Muszáj javítanod")
say_reward("rajta, hogy tovább fejleszthesd a képességeid!")
say("")
return
end

if cur_alignment<0 then --Fejlesztés előtti, és utáni rangod: %d -> %d
say_reward(string.format("Fejleszés után levont rang pont ha[ENTER]sikertelen és ha sikeres: %d -> %d", need_alignment, need_alignment*2))
say_reward("Folytatáshoz kattints a 'Tovább' gombra.")
need_alignment=need_alignment*2
elseif cur_alignment<need_alignment then
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
say("")
say_reward("Ha most edzed képességed, akkor a rangod negatívba")
say_reward("csökken, ami 50. Szint felett veszélyes is lehet!")
say_reward("Ha biztosan akarod, kattints a 'Tovább' gombra.")
else
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
end
say("")
local s=select("Tovább", "Megszakít")
if s==2 then
return
end


if cur_alignment>=0 and cur_alignment<need_alignment then
say_title(string.format("%s megerősítés!", title))
say("")
say("Ha nagymester képességeket akarsz elsajátítani,")
say("akkor a rossz/jó pontjaid az átlagszint alá ")
say("eshetnek, mivel pillanatnyilag csak kevés")
say("rang ponttal rendelkezel.")
say("Ha tényleg edzeni akarsz, akkor írd be az")
say("alábbi sorba a következő szót.")
say("")
say_reward("Fejleszteni")
say()
say("Ha nem akarod edzeni, akkor hagyd üresen a")
say("szövegdobozt és nyomd meg az 'ENTER' billentyűt.")
local s=input()
if s!="Fejleszteni" then
return
end
end

if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("blabla")
return
end
end

pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))

if need_alignment>0 then
if pc.learn_grand_master_skill(skill_vnum) then
pc.change_alignment(-need_alignment)
say_title(string.format("%s sikeres!", title))
say("")
if 40 == pc.get_skill_level(skill_vnum) then
say(string.format("A %s Tökéletes mester lett.", skill_name))
else
say_reward("Képesség edzése sikeres!")
say("")
say_reward(string.format("%s elérte a G%d szintet.",skill_name, skill_level-30+1+1))
end
say("")
say_reward("Vesztettél néhány rossz/jó rangpontot, és")
say_reward("felhasználtad a lélek követ.")
say("")
else
say_title(string.format("%s sikertelen!", title))
say("")
say_reward("Képesség edzése sikertelen!")
say("")
say("Nem sikerült a képességedet feljavítani.")
say("Próbáld meg később.")
say("")
say_reward("Vesztettél néhány rossz/jó rangpontot, és")
say_reward("felhasználtad a lélekkövet.")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
pc.removeitem("50513", 1)
end
function BuildGrandMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 30
PERFECT_MASTER_SKILL_LEVEL = 40

local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}

table.foreach(skill_list,
function(i, skill_vnum)
local skill_level = pc.get_skill_level(skill_vnum)
if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
table.insert(ret_vnum_list, skill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if name == nil then
name=skill_vnum
end
table.insert(ret_name_list, name)
end
end)
return {ret_vnum_list, ret_name_list}
end
    end
end



Nem igazán találom ebbe a dolgokat


sry lemaradt, azt hittem pengernek csak egy publikált lélekköves questje van, magától érthetődő melyik na m1

2018-05-20, 08:29:08 #5 Utolsó szerkesztés: 2018-05-20, 08:47:53 Szerző: fabtam11
Tehát fogjuk az új item_id-t és a questben randommath elven csinálunk egy olyat, hogy 3 lehetőségből az első 2 opció nyerű és a maradék 1 sikertelen lehet.  ;D

Lila lélekkő 7-8 passzív skilleket húzza P-re mint ahogy GFen

Anno mikor még nem volt forrás, se GFen 7-8 képesség a lila kő néhány privát szerveren random-mal húzta a G-s képességeket az előre megírt szutyok módszer helyett. Előkotortam neked a questet rá:
[spoiler]Arra figyelj, hogy ez a quest a 70777 vnum-ú tárgyra lett írva, ha szükséges írd át.
Kód (training_grandmaster_skill_custom.quest) Kijelölés
quest training_grandmaster_skill_custom begin
state start begin
function BuildGrandMasterSkillList(job, group)
local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}
table.foreach(skill_list, function(i, skill_vnum)
local skill_level = pc.get_skill_level(skill_vnum)
if skill_level >= 30 and skill_level < 40 then
table.insert(ret_vnum_list, skill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if name == nil then name=skill_vnum end
table.insert(ret_name_list, name)
end
end)
return {ret_vnum_list, ret_name_list}
end
when 70777.use begin
if pc.count_item(70777) == 0 then
say_reward("Eltűnt a lélekkő?!")
return
end
local soulstonecount = pc.count_item(70777)
say_title("Nagymesteri képességek edzése")
say("Ez a kő tele van lelki energiával,")
say("amely javíthatja a képességeidet.")
wait()
if pc.get_skill_group() == 0 then
say_title("Nagymesteri képességek edzése")
say_reward("Nincs képességed, amit fejleszthetnél!")
return
end
say_title("Nagymesteri képességek edzése")
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if  not pc.is_skill_book_no_delay() then
say("Ez kimerítő!")
say("Pihenned kell egy keveset, újabb edzéshez.")
return
end
end
local result = training_grandmaster_skill_custom.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
local name_list = result[2]
if table.getn(vnum_list) == 0 then
say("Jelenleg nincs nagymester-szintű képességed,")
say("amit edzhetnél.")
return
end
say("Válaszd ki azt a képességet, amit edzeni akarsz.")
local menu_list = {}
table.foreach(name_list, function(i, name)
table.insert(menu_list, name)
end)
table.insert(menu_list, locale.close)
local s=select_table(menu_list)
if table.getn(menu_list) == s then return end
if pc.count_item(70777) != soulstonecount then
say_title("Nagymesteri képességek edzése")
say_reward("Az edzés sikertelen.")
return
end
if pc.count_item(70777) == 0 then
say_title("Nagymesteri képességek edzése")
say("Edzés közben elveszett a lélekköved, így nem")
say("tudod tovább folytatni a képesség edzését!")
return
end
local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)

test_chat("Jelenlegi rangod: "..cur_alignment)
test_chat("Szükséges rangpontok: "..need_alignment)

local title = string.format("%s fejlesztése G%d-ről", skill_name, skill_level-30+1)
say_title(title)
say("Ha felhasználod edzés közben a rossz/jó pontjaidat,")
say("akkor megtörténhet, hogy az átlagszint alá esel.")
if cur_alignment-need_alignment < -20000 then
say_reward("Nem lehet tovább rontani a rangod. Muszáj javítanod")
say_reward("rajta, hogy tovább fejleszthesd a képességeid!")
return
end
if cur_alignment<0 then
say_reward("Az edzéssel felhasznált rangpontok:")
say_reward(string.format("        %d", need_alignment))
say_reward("Folytatáshoz kattints a 'Tovább' gombra.")
elseif cur_alignment<need_alignment then
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
say_reward("Ha most edzed képességed, akkor a rangod negatívba")
say_reward("csökken, ami 50. Szint felett veszélyes is lehet!")
say_reward("Ha biztosan akarod, kattints a 'Tovább' gombra.")
else
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
end
if select("Tovább","Megszakít")==2 then return end
if cur_alignment>=0 and cur_alignment<need_alignment then
local key = ''
repeat
say_title(string.format("%s megerősítés![ENTER]", title))
say("Ha nagymester képességeket akarsz elsajátítani,")
say("akkor a rossz/jó pontjaid az átlagszint alá ")
say("eshetnek, mivel pillanatnyilag csak kevés")
say("rang ponttal rendelkezel.")
say("Ha tényleg edzeni akarsz, akkor írd be az")
say("alábbi sorba a következő szót.[ENTER]")
say_reward("Edzeni[ENTER]")
say("Ha nem akarod, akkor hagyd üresen a szövegdobozt")
say("és nyomd meg az 'ENTER' billentyűt.")
key = string.lower(tostring(input()))
if key == '' then
return
else
if key != "edzeni" then
say_title("Nagymesteri képességek edzése")
say_reward("Elrontottad a megerősítési kódot, kérlek próbáld")
say_reward("újra.")
wait()
end
end
until key == "edzeni"
end
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("Ez valami kiskapu elkerülő üzenet aka blabla :'D")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment > 0 then
say_title(string.format("%s[ENTER]", title))
if math.random(1, 4) ~= 4 then --75%
pc.set_skill_level(skill_vnum, skill_level+1)
if 40 == pc.get_skill_level(skill_vnum) then
say_reward(string.format("A(z) %s Tökéletes mester lett![ENTER]", skill_name))
else
say_reward(string.format("%s elérte a G%d szintet.[ENTER]", skill_name, skill_level-30+2))
end
say("Felhasználtad a lélekkövet és megannyi rangpontot.")
pc.change_alignment(-need_alignment)
else
say_reward(string.format("A(z) %s edzése nem sikerült![ENTER]", skill_name))
say("Felhasználtad a lélekkövet és valamennyi rangpontot.")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
pc.remove_item(70777, 1)
end
end
end
[/spoiler]

Köszönöm Penger!


pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment > 0 then
say_title(string.format("%s[ENTER]", title))
if math.random(1, 4) ~= 4 then --75%


Kérdésem még:
Hogyan csinálok ebből 25%-os sikerességet?
Mert nem értem ennek az (1, 4)-nek a működését.

Csak írd át a ~= kifejezést erre: == ugyanis az előbbi ennek felel meg: != (magyarán nem egyenlő).
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment > 0 then
say_title(string.format("%s[ENTER]", title))
if math.random(1, 4) == 4 then


és így most akkor ez 25%?

4 kimenetel közül egy jó, a többi failed?

Mivel minden használatkor négy szám közül választ egyet, és ha az az egy épp 4 akkor sikerül, de persze ezt átírhatod == 3-ra vagy == 2-re 1-re édesmindegy. Ez klasszikus valószínűségszámítás P = k / n
k : kedvező esetek száma [1]
n : lehetséges, összes eset száma [4] --> { 1, 2, 3, 4 } >> összesen 4 eset.
1 / 4 = 0.25
Ha megszorzod 100-zal meg is kapod a valószínűségét %-ban, ami 25%.

[spoiler]Nem tanítják ezt minden középiskolában matek órán?[/spoiler]

Nem erről van szó, hogy nem tudok ilyet számolni, hanem nem értettem ennek a mathrandomos funkciónak a működését, ezért kértem egy kis magyarázatot hozzá

Pedig alapvetően elég logikus. Ha meg nem világos, senki sem tart vissza, hogy használd a google-t, esetleg rászánj 5 percet, hogy tesztelgesd a működését.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Mindemellett köszönöm mindenkinek!

Témát zárom!