- Dołączył
- Kwiecień 10, 2008
- Posty
- 617
- Liczba reakcji
- 98
- Wiek
- 30
Witam. Postanowi?em napisa? kilka nowych funkcji, kt?re mam nadziej? u?yjecie w swoim otsie. Wszystkie funkcje s? zrobione w ca?o?ci przeze mnie. Zabraniam rozpowszechniania tych funkcji bez mojej zgody. No wi?c zaczynamy:
1. Na pocz?tku otw?rz plik global.lua, kt?ry znajduje si? w folderze otsa/data.
2. Teraz zjed? na sam d??.
Lista funkcji:
Jak doda? te funkcje?
We wcze?niej otwartym pliku global.lua na samym dole dodaj odpowiednie funkcje. Reszte trzeba dorzuci? do skrypt?w ;/ Inaczej si? nie da?o niestety.
Dla doSearchCreatureInRoom:
Nast?pnie zapisujemy plik i zamykamy.
Przyk?ady u?ycia ka?dej z tych funkcji:
doPlayerAddMaxHealth:
doPlayerAddMaxMana:
doPlayerAddSkill:
doSearchCreatureInRoom:
Mam nadziej?, ?e funkcje oka?? si? pomocne. Zosta?y testowane i dzia?a?y.
Pozdro,
Gelio
P.S.: U?yjesz (albo nie) = skomentuj.
@down
Jak u ciebie jest to powiedz co to za silnik. Bo jako? nigdzie nie widzia?em skryptu, kt?ry dodawa? max mane/hp.
1. Na pocz?tku otw?rz plik global.lua, kt?ry znajduje si? w folderze otsa/data.
2. Teraz zjed? na sam d??.
Lista funkcji:
Kod:
Dodawanie maksymalnej many gracza
Dodawanie maksymalnego hp gracza
Dodawanie danego skilla (skill?w) graczowi.
doSearchCreatureInRoom(posx1, posy1, posx2, posy2, posz) -- Szuka, czy w pomiedzy tymi pozycjami jest jaki? potw?r. Zwraca ilo?? potw?r?w. Je?eli nie znalaz?o ?adnych potwor?w zwraca 0
We wcze?niej otwartym pliku global.lua na samym dole dodaj odpowiednie funkcje. Reszte trzeba dorzuci? do skrypt?w ;/ Inaczej si? nie da?o niestety.
Dla doSearchCreatureInRoom:
Kod:
function doSearchCreatureInRoom(posx1, posy1, posx2, posy2, posz)
local position1 = {x=posx1, y=posy1, z=posz}
local position2 = {x=posx2, y=posy2, z=posz}
ile_monsterow = 0
for x=position1.x, position2.x do
for y=position1.y, position2.y do
local monsterpos = {x=x, y=y, z=posz, stackpos=253}
local monster = getThingfromPos(monsterpos)
if (monster > 0) then
if (isPlayer(monster) == 0) then
ile_monsterow = ile_monsterow+1
end
end
end
end
return ile_monsterow
end
Nast?pnie zapisujemy plik i zamykamy.
Przyk?ady u?ycia ka?dej z tych funkcji:
doPlayerAddMaxHealth:
Kod:
[COLOR="Red"]local ile_godzin = 5
local ile_hp = 100[/COLOR]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, ile_godzin*1000*60*60)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTS, ile_hp)
setCombatCondition(combat, condition)
function onUse(cid, item, frompos, item2, topos)
return doCombat(cid, combat, numberToVariant(cid))
end
Kod:
[COLOR="Red"][COLOR="Red"]local ile_godzin = 5
local ile_many = 100[/COLOR][/COLOR]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, ile_godzin*1000*60*60)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANAPOINTS, ile_many)
setCombatCondition(combat, condition)
function onUse(cid, item, frompos, item2, topos)
return doCombat(cid, combat, numberToVariant(cid))
end
end
Kod:
[COLOR="Red"]local skillid = 1 -- Id skila. Mozliwe: 1-melee, 2-fist, 3-club, 4-sword, 5-axe, 6-distance, 7-shielding, 8-fishing
local ile = 10 -- Ile skil dodaje
local na_ile = 60*1000 -- Ile ma dzialac w sekundach[/COLOR]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, na_ile)
if (skillid == 1) then
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEE, ile)
elseif (skillid == 2) then
setCondituonParam(condition, CONDITION_PARAM_SKILL_FIST, ile)
elseif (skillid == 3) then
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, ile)
elseif (skillid == 4) then
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, ile)
elseif (skillid == 5) then
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, ile)
elseif (skillid == 6) then
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, ile)
elseif (skillid == 7) then
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, ile)
elseif (skillid == 8) then
setConditionParam(condition, CONDITION_PARAM_SKILL_FISHING, ile)
end
setCombatCondition(combat, condition)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Kod:
function onUse(cid, item, frompos, item2, topos)
local search = doSearchCreatureInRoom(500, 500, 600, 600, 7)
if (search == 0) then
doPlayerAddItem(cid, 1111, 1)
doPlayerSendTextMessage(cid,22,"Na tych pozycjach nie ma zadnego stwora. Dostajesz item o id 1111.")
else
doPlayerSendTextMessage(cid,22,"Na tej pozycji jest jeszcze ".. search .." potworow.")
end
end
Mam nadziej?, ?e funkcje oka?? si? pomocne. Zosta?y testowane i dzia?a?y.
Pozdro,
Gelio
P.S.: U?yjesz (albo nie) = skomentuj.
@down
Jak u ciebie jest to powiedz co to za silnik. Bo jako? nigdzie nie widzia?em skryptu, kt?ry dodawa? max mane/hp.
Ostatnia edycja:
,fajowy skrypt naprawde podziwiam cie gelio ocena 9/10-zawsze moze byc lepiej 
:up::up: