Skrypty & Kody Co doda? do kodu?

Status
Zamknięty.

Ador

Advanced User
Zarejestrowany
Dołączył
Sierpień 18, 2009
Posty
225
Liczba reakcji
11
Witam. Mam do was pro?b?, co doda? do kodu, aby wy?wietla?o po klikni?ciu na gracza ilo?? wykonanych reborn?w, i ?eby pokazywa?o, ?e wykona?e? reborn na chacie, a nie na grze (tzn. napisy na chacie, a nie te bia?e jak "sorry, not possible")

Prosz? o pomoc, poni?ej kod:
Kod:
local config = {

 needLevelToReborn = 200, -- wymagany level, aby moc uzyc rebornu

 levelAfterReborn = 8, -- jaki level bedzie mial gracz po uzyciu rebornu

 onlyInProtectionZone = false, -- czy skryptu mozna uzywac tylko w pz (true/false)

 rebornCountStorage = 10002, -- storage, w ktorym skrypt bedzie zapisywac ilosc storage'ow (0 lub false aby wylaczyc)

 newHealthAfterReborn = 180, -- ilosc hp, ktora postac bedzie miala po rebornie (ustaw false, aby wylaczyc)

 newManaAfterReborn = 100, -- ilosc many, ktora postac bedzie miala po rebornie (ustaw false, aby wylaczyc)

 vocationAfterReborn = { -- jaka profesja ma byc ustawiona po rebornie (zaleznie od wczesniejszej profesji) (aby wylaczyc, ustaw false lub zakomentuj/wyczysc tabele)

 -- [id_profesji_przed_rebornem] = {voc = id_profesji_po_rebornie, outfit = {outfit_po_rebornie} } (mozesz tez ustawic sam outfit, bez profesji, lub na odwrot, wystarczy ustawic false tam, gdzie potrzeba)

 [1] = {voc = 2, outfit = {lookType=137, lookHead=102, lookBody=11, lookLegs=68, lookFeet=24, lookAddons=3}},

 [2] = {voc = 1, outfit = {lookType=137, lookHead=70, lookBody=52, lookLegs=20, lookFeet=76, lookAddons=3}},

 [3] = {voc = 4, outfit = {lookType=137, lookHead=102, lookBody=11, lookLegs=68, lookFeet=24, lookAddons=3}},

 [4] = {voc = 3, outfit = {lookType=137, lookHead=70, lookBody=52, lookLegs=20, lookFeet=76, lookAddons=3}},

 [5] = {voc = 6, outfit = {lookType=137, lookHead=102, lookBody=11, lookLegs=68, lookFeet=24, lookAddons=3}},

 [6] = {voc = 5, outfit = {lookType=137, lookHead=70, lookBody=52, lookLegs=20, lookFeet=76, lookAddons=3}},

 [7] = {voc = 8, outfit = {lookType=137, lookHead=102, lookBody=11, lookLegs=68, lookFeet=24, lookAddons=3}},

 [8] = {voc = 7, outfit = {lookType=137, lookHead=70, lookBody=52, lookLegs=20, lookFeet=76, lookAddons=3}},

 },

 effects = { -- tabela z efektami

 enabled = true, -- czy wyswietlanie ciekawego efektu ma byc aktywowane (true / false)

 range = 5, -- w jakim zasiegu od gracza ma sie pojawiac efekt (nie ma sensu ustawiac wiekszego niz 9-10, lecz mozna)

 speed = 200, -- predkosc efektow w milisekundach

 playerEffect = CONST_ME_HOLYAREA, -- efekt, ktory sie wyswietli na graczu

 effectListImplode = {CONST_ME_HOLYDAMAGE, CONST_ME_LOSEENERGY}, -- lista efektow, ktore sie wyswietlaja, podczas gdy efekt zbliza sie do gracza

 effectListExplode = {CONST_ME_FIREAREA, CONST_ME_FIREATTACK} -- lista efektow "eksplozji" 

 }

 }



 function onSay(cid, words, param, channel)

 if(param == "count") then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have done reborn " .. math.max(0, getPlayerStorageValue(cid, config.rebornCountStorage)) .. " times. You need " .. math.max(0, config.needLevelToReborn-getPlayerLevel(cid)) .. " levels to make next reborn.") end

 local pos, level = getCreaturePosition(cid), getPlayerLevel(cid)

 if(level < config.needLevelToReborn) then

 doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You need at least level " .. config.needLevelToReborn .. " to reborn. You still need " .. config.needLevelToReborn - level .. " levels.")

 doSendMagicEffect(pos, CONST_ME_POFF)

 return 1

 end

 if(config.onlyInProtectionZone and not getTilePzInfo(pos)) then

 doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You must be in the protection zone before reborn.")

 doSendMagicEffect(pos, CONST_ME_POFF)

 return 1

 end

 local function doReborn(cid, pos) -- specjalnie dalem w formie funkcji, abym mogl uzyc w addEvencie. Co do pamieci, to jest ona zwalniana, gdy wyjdzie z bloku

 local added = false -- klopoty z zla iloscia capa podczas rebornu z zmiana profesji zmusily mnie do malego obejscia - nie kazdy silnik musi miec doPlayerSetMaxCapacity, wiec posluguje sie calkowitym resetowaniem poziomu, by potem doPlayerAddLevel nadal wlasciwa ilosc capa.

 if(type(config.vocationAfterReborn) == 'table' and #config.vocationAfterReborn > 0) then

 local info = config.vocationAfterReborn[getPlayerVocation(cid)]

 if(info ~= nil) then

 if(type(info.voc) == 'number') then 

 doPlayerAddLevel(cid, 1 - level) -- teraz skryptowi jest blizej do prawdziwego reborna, bo gracz odradza sie az od samych podstaw :s

 if(type(doPlayerSetMaxCapacity) == 'function') then -- po powrocie do 1 levela gracz zwykle ma ustawione 0 capa a domyslnie nowe postacie maja 400, wiec bez tej funkcji "znika" 400 capa (no i przy tak napisanym skrypcie nie musze uzywac getVocationInfo)

 doPlayerSetMaxCapacity(cid, 400)

 end 

 doPlayerSetVocation(cid, info.voc) 

 doPlayerAddLevel(cid, config.levelAfterReborn - 1)

 added = true

 end

 if(type(info.outfit) == 'table') then doCreatureChangeOutfit(cid, info.outfit) end

 end

 end

 if(not added) then doPlayerAddLevel(cid, config.levelAfterReborn - level) end -- profesja sie nie zmienia, wiec nie potrzeba trickow, by ilosc capa byla dobra

 if(config.rebornCountStorage) then

 setPlayerStorageValue(cid, config.rebornCountStorage, math.max(getPlayerStorageValue(cid, config.rebornCountStorage)+1, 1))

 end

 if(config.newHealthAfterReborn) then

 setCreatureMaxHealth(cid, config.newHealthAfterReborn)

 doCreatureAddHealth(cid, (getCreatureHealth(cid) < 4 and -1 or 1)) -- odswiezanie ilosci hp w kliencie, bo inaczej gracz nie zauwazy zmian (przynajmniej w 8.x)

 end

 if(type(config.newManaAfterReborn) == 'number') then

 setCreatureMaxMana(cid, config.newManaAfterReborn)

 doPlayerAddMana(cid, config.newManaAfterReborn - getPlayerMana(cid))

 end 

 doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have succesful reborned!")

 doSendMagicEffect(pos, config.effects.playerEffect)

 end

 if(config.effects.enabled) then

 local function eff_func(params) -- funkcja na szybkie znajdowanie okregu dookola danej pozycji (nie wszyscy uzytkownicy musza go rozumiec, zeby dzialal)

 local effect = params.list[params.n%#params.list+1]

 doSendMagicEffect({x=pos.x-params.n, y=pos.y, z=pos.z}, effect)

 doSendMagicEffect({x=pos.x+params.n, y=pos.y, z=pos.z}, effect)

 for i = (params.inset and params.n or 0), (params.inset and 0 or params.n), (params.inset and -1 or 1) do

 doSendMagicEffect({x=params.pos.x-i, y=pos.y-(params.n-i), z=pos.z}, effect)

 doSendMagicEffect({x=params.pos.x-i, y=pos.y+(params.n-i), z=pos.z}, effect)

 doSendMagicEffect({x=params.pos.x+i, y=pos.y+(params.n-i), z=pos.z}, effect)

 doSendMagicEffect({x=params.pos.x+i, y=pos.y-(params.n-i), z=pos.z}, effect)

 end

 if(params.inset and params.n > params.ennd or params.n < params.ennd) then

 params.n = params.n - (params.inset and 1 or -1)

 addEvent(eff_func, config.effects.speed, params)

 elseif(params.cid and isPlayer(params.cid) --[[unikanie bledow, gdy gracz zniknie z gry]]) then

 doReborn(params.cid, params.pos)

 addEvent(eff_func, config.effects.speed, {pos=params.pos, n=1, ennd=config.effects.range, list=config.effects.effectListExplode, inset=false})

 end

 end

 addEvent(eff_func, config.effects.speed, {pos=pos, n=config.effects.range, list=config.effects.effectListImplode, ennd=1, inset=true, cid=cid})

 else

 doReborn(cid, pos) 

 end

 return 1

 end
 
Odp: Co doda? do kodu?

W kazdej linijce z doPlayerSendTextMessage masz typ wiadomosci...
Wystarczy go zmienic...
Teraz masz glownie MESSAGE_INFO_DESCR i MESSAGE_EVENT_DEFAULT.

Tu masz typy wiadomosci:
MESSAGE_FIRST = 18
MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST
MESSAGE_EVENT_ORANGE = 19
MESSAGE_STATUS_CONSOLE_ORANGE = 20
MESSAGE_STATUS_WARNING = 21
MESSAGE_EVENT_ADVANCE = 22
MESSAGE_EVENT_DEFAULT = 23
MESSAGE_STATUS_DEFAULT = 24
MESSAGE_INFO_DESCR = 25
MESSAGE_STATUS_SMALL = 26
MESSAGE_STATUS_CONSOLE_BLUE = 27
MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE
A co ktore oznacza to sobie mozesz sprawdzic albo poszukac... W dokumentacji i w zrodlach mozesz wyczytac wszystko, doslownie wszystko, na temat serwera...


Co do rebow:
http://otland.net/threads/kills-and-deaths-on-look.166381/
Wystarczy zmieniac pobieranie danych o fragach na pobieranie danych o rebornach i tyle...
 
Odp: Co doda? do kodu?

Co do wiadomo?ci to rozumiem, ale co do rebow nadal nie. Co mam zmienic w tym kodzie co da?e? na otland?
 
Odp: Co doda? do kodu?

W bibliotece kod?w jak si? nie myl? znajdziesz tam "rebith system" i tam te? chyba jest skrypt do creaturescripts -> onLook wklej go do swojego TFS'a;)
 
Status
Zamknięty.
Back
Do góry