Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Actions] Medal Wilka


rafaeru

Rekomendowane odpowiedzi

Opublikowano

A wiec pokarze wam jak stworzyć Medal Wilka

Screen:

ixfvp0_th.png

@edit: Ja działam na silniku TFS i na innych może nie być tego itema wiec wystarczy zmienic ID

dzięki któremu po założeniu na slot amuletu

zamienimy się w Orc'a Ridera i mamy polepszone skille o 150% (tzw. ZORD)

Screen:

68zl6p.jpg

A wiec bierzmy się do roboty !

Najpierw musimy dodać nasz Medal Wilka wiec w tym celu otwieramy data/items/items.xml i dodajemy linijkę :

    <item id="10140" article="an" name="Medal Wilka">
        <attribute key="description" value="Przywolaj bestie !" />
        <attribute key="slotType" value="necklace" />
        <attribute key="weight" value="100" />
    </item>

Gdy dodaliśmy nasz item pora zabrać się za cały skrypt wiec wchodzimy data/movements/movements.xml i dodajemy:

    <movevent type="Equip" itemid="10140" slot="necklace" event="script" value="medalwilka.lua"/>
    <movevent type="DeEquip" itemid="10140" slot="necklace" event="script" value="medalwilka.lua"/>

Czas na najtrudniejszy etap czyli skrypt data/movements/scripts i tworzymy nowy plik medalwilka.lua a następnie wklejamy ten kod:

-- Medal Wilka v. 1 by rafaeru 
local outfit =
{
-- Outfit u dziewczyn 
{
lookType = 4,
lookHead = 19,
lookBody = 53,
lookLegs = 92,
lookFeet = 79,
lookAddons = 0
},
-- Outfit u chlopcow
{
lookType = 4,
lookHead = 19,
lookBody = 79,
lookLegs = 3,
lookFeet = 81,
lookAddons = 0
}
}
local coinID =                    -- ID przedmiotu ktory ma bydz pobierany np. gold coins
local wastingInterval =                      -- Czas po jakim ma byc zabrany ten przedmiot w milisekundach
local wastingQuantity =                 -- Ile ma byc zabranych tych przedmiotow           
local triggerQuantity =                    -- Ile ma pobrac przedmiotow przy zalozeniu 
local warnOnLowSupply = FALSE
local lowSupplyMargin = 200
local storage = 50780
-- Config << --
local condition1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition1, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition1, CONDITION_PARAM_SKILL_CLUB, 50)                       --ile ma dodac skila club'a w tym wypadku 50
setConditionParam(condition1, CONDITION_PARAM_SKILL_SWORD, 50)                    -- ile sworda
setConditionParam(condition1, CONDITION_PARAM_SKILL_AXE, 50)                          -- ile axa
setConditionParam(condition1, CONDITION_PARAM_SKILL_DISTANCE, 50)                   -- ile dista
setConditionParam(condition1, CONDITION_PARAM_SKILL_SHIELD, 50)                         -- ile shieldingu
setConditionParam(condition1, CONDITION_PARAM_STAT_MAGICPOINTS, 35)                      -- ile magic lvl
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 150)               -- ile ma dac procent hp w tym wypadku 150%
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 150)             -- ile ma dac procent many analogicznie jak up
local condition2 = createConditionObject(CONDITION_HASTE)
setConditionParam(condition2, CONDITION_PARAM_TICKS, -1)
setConditionFormula(condition2, 2.5, 0, 3.0, 0)
local area = createCombatArea({
{0, 0, 0, 1, 0, 0, 0},                       
{0, 1, 0, 0, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 2, 0, 0, 1},
{0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 1, 0},
{0, 0, 0, 1, 0, 0, 0}                                   -- animacja transformacji
})
local animCombat = 
{
createCombatObject(),
createCombatObject()
}
local sexyEffect =
{
CONST_ME_FIREWORK_RED,
CONST_ME_FIREWORK_YELLOW,
CONST_ME_MAGIC_RED,
CONST_ME_MAGIC_GREEN
}
setCombatParam(animCombat[2], COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setCombatParam(animCombat[2], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
setCombatParam(animCombat[1], COMBAT_PARAM_EFFECT, CONST_ME_FIREWORK_RED)
setCombatParam(animCombat[1], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatArea(animCombat[2], area)
setCombatArea(animCombat[1], area)
local function StopSuperForm(cid)
if (getPlayerStorageValue(cid, storage) == 1) then
setPlayerStorageValue(cid, storage, 0)
doRemoveCondition(cid, CONDITION_OUTFIT)
doRemoveCondition(cid, CONDITION_ATTRIBUTES)
doRemoveCondition(cid, CONDITION_HASTE)
end
return TRUE
end
local function SuperForm(cid, sexIndex)
if (isCreature(cid)) then
if (getPlayerStorageValue(cid, storage) == 1) then
local goldLeft = getPlayerItemCount(cid, coinID)
if (goldLeft >= wastingQuantity) then
local position = getCreaturePosition(cid)
doPlayerRemoveItem(cid, coinID, wastingQuantity)
doSendMagicEffect(position, sexyEffect[sexIndex + 2])
doSendMagicEffect(position, sexyEffect[sexIndex])
if (goldLeft <= lowSupplyMargin and warnOnLowSupply == TRUE) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Coins left: " ..(goldLeft - wastingQuantity) .. "!")
end
addEvent(SuperForm, wastingInterval, cid, sexIndex)
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Your bangle has been destroyed!")
return StopSuperForm(cid)
end
end
end
end
function onEquip(cid, item, slot)
if (getPlayerItemCount(cid, coinID) > triggerQuantity and getPlayerStorageValue(cid, storage) ~= 1) then
local sexIndex = getPlayerSex(cid) + 1
doCombat(cid, animCombat[sexIndex], numberToVariant(cid))
doSetCreatureOutfit(cid, outfit[sexIndex], -1)
setPlayerStorageValue(cid, storage, 1)
doAddCondition(cid, condition1)
doAddCondition(cid, condition2)
doPlayerRemoveItem(cid, coinID, triggerQuantity)
SuperForm(cid, sexIndex)
elseif (getPlayerStorageValue(cid, storage) == 1) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Nie mozesz teraz tego zalozyc")
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Nie masz tyle pieniedzy")
end
return TRUE
end
function onDeEquip(cid, item, slot)
return StopSuperForm(cid)
end

I to tyle myślę ze wam się podoba i działa :D oczywiście item którym to się robi ma id 10140

Zapraszam do komentowania bo nie wiem czy pisać więcej poradników dot. OTS

  • 1 rok później...
  • 11 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...