What's new

Skrypty & Kody Scrypt TP + wlasne spelle

kaka492

User
Joined
May 4, 2015
Messages
47
Reaction score
0
Witam, potrzebuje scryptu na teleportowanie si? gracza do gracza

Zrobilem nowe spelle, ale nie mam pojecia jak zrobi? ?w taki scrypt

8.6 Tfs 0.4

wykona?em taki skrypt jednak sprawdzalem inne i sa inaczej napisane.

Jakby to uj?c bardziej profesjonalnie, ze lvl * mlvl etc. wiec wykonalem ze czar zdaje od tylu do tylu dmg stale
Nie wiem jak to zrobic profesjonalnie ;)

[LUA]-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{0, 0, 1, 0, 0},
{0, 1, 0, 1, 0},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{0, 1, 0, 1, 0},
{0, 0, 1, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (7500)*-1,(11250)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 100ms
local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat1_Brush,createCombatArea({{0, 1, 0},
{1, 3, 1},
{1, 1, 1},
{0, 1, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (7500)*-1,(11250)*-1
end
setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 1, 0},
{1, 0, 0, 2, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (7500)*-1,(11250)*-1
end
setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{0, 0, 1, 0, 0},
{0, 1, 0, 1, 0},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{0, 1, 0, 1, 0},
{0, 0, 1, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (7500)*-1,(11250)*-1
end
setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
i = i + 2
end
end
end
end

function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
RunPart(combat0_Brush,cid,var)
addEvent(RunPart,100,combat1_Brush,cid,var)
addEvent(RunPart,200,combat2_Brush,cid,var)
addEvent(RunPart,400,combat4_Brush,cid,var)
return true
end[/LUA]
[MENTION=66597]Edy[/MENTION]towalem i zrobilem takie cos
[LUA]local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, TRUE)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 40.6, 50.6, 70.6, 40.6)

local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
[/LUA]
wyglada chyba znacznie lepiej

Potrzebuje liste effectow ktorej szukalem na necie jednak z marnym skutkiem. Jezeli bylby ktos tak mily to bardzo mi pomoze
Potrzebuje takze wyjasnienia formuly skill
co dokladnie co oznacza
Czyli np :
COMBAT_FORMULA_SKILL, 40.6, 50.6, 70.6, 40.6)

40.6 - od czego etc. Poniewaz robie na oslep ;)

I jezeli ktos bylby wstanie dac mi ten skrypt na tp, od gracza do gracza. Bylbym w niebo wziety :)
 

Frosbite

Active User
Joined
Dec 20, 2014
Messages
99
Reaction score
8
Odp: Scrypt TP + wlasne spelle

?atwiejszy spos?b do ogarni?cia dmg
Polecam to zrobi? tak:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, TRUE)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "spell1")
function spell1(cid, level, maglevel)
local min = -(level * 5.9+ maglevel * 12 +50)
local max = -(level * 5.9+ maglevel * 13 +50)
return min, max
end
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end


Oraz cd. efekt?w polecam pobra? ObjectBuildera i wczyta? spr i dat z Twojego clienta. Tam masz zak?adk? Effects i id przy ka?dym efekcie. Pami?taj ?e ka?dy id efektu z ObjectBuildera wpisujesz w skrypcie o 1 mniej czyli: jak chcesz mie? efekt o id 50 to w skrypcie wpisz id 49 <nwm czemu tak jest xD np.
setCombatParam(combat, COMBAT_PARAM_EFFECT, 49)
 

kaka492

User
Joined
May 4, 2015
Messages
47
Reaction score
0
Odp: Scrypt TP + wlasne spelle

[LUA] <instant name="field bomb" words="exori bomb" lvl="250" maglv="1" mana="25" exhaustion="2000" prem="0" needlearn="0" blockwalls="0" aggressive="1" event="script" value="attack/field bomb.lua">
<vocation id="4"/>
</instant>[/LUA]

Twoj scrypt

[LUA]local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, TRUE)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "spell1")
function spell1(cid, level, maglevel)
local min = -(level * 59.9 + maglevel * 12 + 50)
local max = -(level * 80.9 + maglevel * 13 + 50)
return min, max
end
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end[/LUA]

I blad ktory mi sie pojawia w consoli


A efekt jesst jaki jaki ma byc, jednak nie zadaje DMG czar, a czemu to nie mam pojecia.
A i gdzioe w tym scrypcie jest opisane w jaki sposob ma czas bic, tzn ile sqm etc
 

Ciamciaj Bigos

&#3585;&#3657;&#3657;&#3657;&#3657;&#3657;&#3657;&
Joined
Jun 6, 2013
Messages
2,081
Reaction score
192
Odp: Scrypt TP + wlasne spelle

A i gdzioe w tym scrypcie jest opisane w jaki sposob ma czas bic, tzn ile sqm etc
Tutaj juz pobral z data/spells/lib/spells.lua obszar.
local area = createCombatArea(AREA_CIRCLE3X3), a wyglada to tak:
Code:
AREA_CIRCLE3X3 = {
	{0, 0, 1, 1, 1, 0, 0},
	{0, 1, 1, 1, 1, 1, 0},
	{1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 3, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1},
	{0, 1, 1, 1, 1, 1, 0},
	{0, 0, 1, 1, 1, 0, 0}
}

skrypt na teleport do innego gracza
[lua]function onSay(cid, words, param)
if(param == "") then return true end
local target = getCreatureByName(param)
if(target)then
doTeleportThing(cid, getCreaturePosition(target), true)
doSendMagicEffect(getCreaturePosition(cid), 32)
doPlayerAddMana(cid, -300) -- odbiera mane za czar
end
return true
end[/lua]
 

kaka492

User
Joined
May 4, 2015
Messages
47
Reaction score
0
Odp: Scrypt TP + wlasne spelle

Super, sliczne dzieki za wszelak? pomoc ;) Temat do zamkniecia :)
 
Top