What's new

Support - pomoc przy pisaniu skrypt?w

Status
Not open for further replies.

Ldrozd

Senior User
Joined
Nov 26, 2008
Messages
572
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

Istnieje, sprobuj przerobic skrypt na manrune, ktora leczy zaleznie od lvl i mlvl.
 

19kylo20

Advanced User
Joined
Feb 1, 2009
Messages
152
Reaction score
7
Odp: Support - pomoc przy pisaniu skrypt?w

Hmmm ja mam do was pytanie chcialbym nauczyc pisac sie skryptow czy jest na to jakis program czy musze pisac wszystko sam ?
np to ...
Code:
function doPlayerEndTraining(cid)
        if isPlayerTraining(cid) == TRUE then
                doTeleportThing(cid, TRAIN_EXIT_POS, FALSE)
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
                if getPlayerStorageValue(cid, STORAGEVALUE_TRAIN_CODE) > 1 then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Nie przepisales kodu.')
                else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'To koniec twojego treningu.')
                end
                setPlayerStorageValue(cid, STORAGEVALUE_TRAINING, 0)
                setPlayerStorageValue(cid, STORAGEVALUE_TRAIN_CODE, 0)
        end
end

skad mam wiedziec ile spacji i wgl tak nie skryptowalem jedynie skrypty poprawialem mozna o pomoc proscic
 

Magic

3+3=3!
Joined
Aug 4, 2008
Messages
1,338
Reaction score
180
Odp: Support - pomoc przy pisaniu skrypt?w

Hmmm ja mam do was pytanie chcialbym nauczyc pisac sie skryptow czy jest na to jakis program czy musze pisac wszystko sam ?
np to ...
Code:
function doPlayerEndTraining(cid)
        if isPlayerTraining(cid) == TRUE then
                doTeleportThing(cid, TRAIN_EXIT_POS, FALSE)
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
                if getPlayerStorageValue(cid, STORAGEVALUE_TRAIN_CODE) > 1 then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Nie przepisales kodu.')
                else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'To koniec twojego treningu.')
                end
                setPlayerStorageValue(cid, STORAGEVALUE_TRAINING, 0)
                setPlayerStorageValue(cid, STORAGEVALUE_TRAIN_CODE, 0)
        end
end
skad mam wiedziec ile spacji i wgl tak nie skryptowalem jedynie skrypty poprawialem mozna o pomoc proscic
Spacje nie s? wa?ne, tabulatory te? nie - u?atwiaj? po prostu czytanie kodu. Musisz zna? funkcje i je wpisywa? - wtedy co? si? dzieje. Nast?pnie mo?esz u?y? wyra?e? regularnych IF(czyli je?li co? jest czym? to), i tak dalej... ; ) Poszukaj poradnika napisanego przez Rahima, tam s? zaawansowane rzeczy, a spis funkcji lua tutaj:
 

19kylo20

Advanced User
Joined
Feb 1, 2009
Messages
152
Reaction score
7
Odp: Support - pomoc przy pisaniu skrypt?w

oke dzieki a jak mam sie dowiedziec ktora funckja do czego dalbys linka do jakiegos poradnika od 0 z g?ry dzieki
 

Aragornkk

Senior User
Joined
Oct 11, 2008
Messages
705
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

Za proste pytania dostajecie, teraz ja zadam co? naprawd? trudnego. Czy da si? zrobi? tak aby NPC SAM zaczyna? rozmow? po tym jak gracz znajdzie si? 2 kratki od niego b?d? te? jak wejdzie na kratk? na pozycjach xxxxx
 

Ldrozd

Senior User
Joined
Nov 26, 2008
Messages
572
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

Za proste pytania dostajecie, teraz ja zadam co? naprawd? trudnego. Czy da si? zrobi? tak aby NPC SAM zaczyna? rozmow? po tym jak gracz znajdzie si? 2 kratki od niego b?d? te? jak wejdzie na kratk? na pozycjach xxxxx

Nie do konca. Mozna zrobic tak, ze nada sie AID kratkom wokol niego, a wtedy NPC powie jakis tekst. Podejzewam, ze w ten sposob mozna wywolac takze czat NPC, tylko musisz pokombinowa? z funkcj? doCreatureSay(uid, text, type[, ghost = false[, cid = 0[, pos]]])

PS Sory za zwloke, ale coraz rzadziej zagladam na to forum.
 

Aragornkk

Senior User
Joined
Oct 11, 2008
Messages
705
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

Ok, tak te? my?la?em.
Jeszcze jedna sprawa poniewa? nie chce ci?gle od?wie?a? mojego tematu wiesz mo?e jak przenosi? tekst do kolejnej linijki wykorzystuj?c "enter".
Dok?adnie chodzi mi o co? takiego:
DoplayerFYI(cid,"dzie? dobry/n
jak ci leci/n
bo mi fajnie/n
og?lnie jest dobrze/n")
Wszyscy polecaj? mi zrobi? p?tle jednak nie jest ona mi potrzebna poniewa? chc? wszystko robi? "r?cznie".
 

Ldrozd

Senior User
Joined
Nov 26, 2008
Messages
572
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

DoplayerFYI(cid,"jeden")
DoplayerFYI(cid,"dwa")
DoplayerFYI(cid,"trzy")

O to chodzi?
 

Aragornkk

Senior User
Joined
Oct 11, 2008
Messages
705
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

To wtedy wyskoczy bug.
Chdzi o to ?e chce abym m?g? da? ENTERA w trakcie wpisywania bardzo d?ugiej form??y. Czego to ma s?u?y?? Przej?ysto?ci kodu.
Co? takiego teraz jest
DoplayerFYI(cid,"aaaaaaaaaaaaaaaa/naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/naaaaaaaaaaaaaaaaaaaa/naaaaaaaaaaaaaaaaaaaaaaaaaaaaa/naaaaaaaaaaaaaaaaaaaaa/naaaaaaaaa/naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/naaaaaa/naaaaaaaaa/naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/naaaaaaaaaaa")

Co jest niemal nie do odczytania w skrypcie.

Zamiast tego chcia?bym wpisa?
DoplayerFYI(cid,"aaaaaaaaaaaaaaaa/naaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaa/na
aaaaaaaaaaaaaaaaaaa/naaaaaaaaaa
aaaaaaaaaaaaaaaaaaa/naaaaaaaaaa
aaaaaaaaaaa/naaaaaaaaa/naaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaa/naaa
aaa/naaaaaaaaa/naaaaaa
aaaaaaaa
aaaaaa
aaaaaaaaaaa/naa
aaaaaa
aaa")


#Down
Ukatrupie was kiedy?. Ja chce zwyk?e nawiasy a wy mi p?tle ka?ecie robi?. huh
 
Last edited:

Ldrozd

Senior User
Joined
Nov 26, 2008
Messages
572
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

To skmin sobie przy pomocy tego skryptu na spellbook:
Code:
function onSay(cid, words, param)
    local count = getPlayerInstantSpellCount(cid)
    local text = ""
    local t = {}
    for i = 0, count - 1 do
        local spell = getPlayerInstantSpellInfo(cid, i)
        if spell.level ~= 0 then
            if spell.manapercent > 0 then
                spell.mana = spell.manapercent .. "%"
            end
            table.insert(t, spell)
        end
    end
    table.sort(t, function(a, b) return a.level < b.level end)
    local prevLevel = -1
    for i, spell in ipairs(t) do
        local line = ""
        if prevLevel ~= spell.level then
            if i ~= 1 then
                line = "\n"
            end
            line = line .. "Spells for Level " .. spell.level .. "\n"
            prevLevel = spell.level
        end
        text = text .. line .. "  " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n"
    end
    doShowTextDialog(cid, 2175, text)
    return TRUE
end
 

Maku1989

New User
Joined
Jun 12, 2010
Messages
2
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Mam problem ze scryptem na mutated humany a dokladnie chodzi mi o ulozenie bp...jest z deposyterem wplaca kase kupuje manasy jak brakuje ale nie odklada loota do dp i nie wiem o co chodzi.
A i idac juz na expa z dp wylacza wszystkie bp jakie mialem otwarte.
Notka moderatorska:
To support w pisaniu skrypt?w do open tibia...
 
Last edited by a moderator:

Maku1989

New User
Joined
Jun 12, 2010
Messages
2
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

jak ktos chce moge wrzucic scrypty i jakby mogl ktos mi to sprawdzic o co chodzi co i jak to bylbym wdzieczny..
 

Ldrozd

Senior User
Joined
Nov 26, 2008
Messages
572
Reaction score
44
Odp: Support - pomoc przy pisaniu skrypt?w

jak ktos chce moge wrzucic scrypty i jakby mogl ktos mi to sprawdzic o co chodzi co i jak to bylbym wdzieczny..
Moge Ci sprawdzic, ale nie do konca wiem o co Ci chodzi. Wytlumacz mi to jasniej.
 

zabawne

User
Joined
Jun 10, 2010
Messages
11
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Jeszcze raz tu aragornkk, napisa?em skrypt kt?ry niestety nie widzi localnej "recepta". Skrypt ma dzia?a? na zasadzie dodania jeszcze jednej zmiennej w {itemwindow} ta zmienna to actionsid. Pr?bowa?em chyba wszystkich mo?liwo?ci (bez przerwy wy?wietla b??d.


Oto npc system z pocz?tku
local itemWindow = {
{id=2160, subType=0, buy=10000, sell=-1, recepta=4555,name="receptura elikiru magii"},
{id=2152, subType=0, buy=100, sell=100, recepta=4555,name="Test2"},
{id=2148, subType=0, buy=1, sell=1, recepta=4555,name="Test3"},
{id=2173, subType=0, buy=10000, sell=5000, recepta=4555,name="Test4"}
}

local items = {}
for _, item in ipairs(itemWindow) do
items[item.id] = {buyPrice = item.buy, sellPrice = item.sell, subType = item.subType, realName = item.name, recepta = item.recepta}
end

local function getPlayerMoney(cid)
return ((getPlayerItemCount(cid, 2160) * 10000) +
(getPlayerItemCount(cid, 2152) * 100) +
getPlayerItemCount(cid, 2148))
end

local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if(items[item] == nil) then
selfSay("Ehm.. sorry... this shouldn't be there, I'm not selling it.", cid)
return
end

if(getPlayerMoney(cid) >= amount * items[item].buyPrice) then
local itemz, i = doNpcSellItem(cid, item, amount, subType, ignoreCap, inBackpacks)
if(i < amount) then

if(i == 0) then
selfSay("Sorry, but you don't have space to take it.", cid)
else
selfSay("I've sold some for you, but it seems you can't carry more than this. I won't take more money than necessary.", cid)
doPlayerRemoveMoney(cid, i * items[item].buyPrice)
end
else

local itemWindow = {
{id=2160, subType=0, buy=10000, sell=-1, recepta=4555,name="klucz1"},
{id=2160, subType=0, buy=100, sell=100, recepta=4525,name="klucz2"},
{id=2160, subType=0, buy=1, sell=1, recepta=4555,name="Test3"},
{id=2160, subType=0, buy=10000, sell=5000, recepta=4555,name="Test4"}
}
doRemoveItem(cid,items[item].id)
selfSay("Thanks for the money!", cid)


doPlayerRemoveMoney(cid, amount * items[item].buyPrice)

end
else
selfSay("Stfu noob, you don't have money.", cid)
end
end

local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if(items[item] == nil) then
selfSay("Ehm.. sorry... this shouldn't be there, I'm not buying it.", cid)
end

if(subType < 1) then
subType = -1
end
if(doPlayerRemoveItem(cid, item, amount, subType)) then
doPlayerAddMoney(cid, items[item].sellPrice * amount)
selfSay("Here you are.", cid)
else
selfSay("No item, no deal.", cid)
end
end
 

drakos

Advanced User
Joined
May 1, 2008
Messages
187
Reaction score
9
Odp: Support - pomoc przy pisaniu skrypt?w

Witam , mam oto taki skrypt na mr :
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
function onCastSpell(cid, var)
local mana = math.random(getPlayerLevel(cid) * 4.0 + getPlayerMagLevel(cid) * 16.5,getPlayerLevel(cid) * 4.2 + getPlayerMagLevel(cid) * 18.0)
local kolor = 35 -- kolor napisu
doPlayerAddMana(cid, mana)
doSendAnimatedText(getPlayerPosition(cid),mana,kolor)
doCombat(cid, combat, var)
end

I oto pytanie jak zrobi? aby da?o si? manarunowa? innego gracza . Czyli gracz mo?e manarunowa? 2 gracza ale tylko je?li stoi ko?o niego . Prosz? pomocy mia?em ju? zrobione ?e da si? manarunowa? ale z daleka te? sie da?o

Pozdrawiam
 

zabawne

User
Joined
Jun 10, 2010
Messages
11
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Szersze opisanie problemu:
Tworz? skrypt na npc sprzedaj?cy klucze w starej wersji NPC. Niestety nie mog? doda? do tabeli takiej danej jak: Acid aby klucz sta? si? kluczem. Jednym s?owem mam problem ze stworzeniem w starym systemie NPC kt?ry by w systemie okienkowym sprzedawa? klucze.


#dOWN
Nie ten dzia?. Masz z?y login.lua kt?ry nie zgadza si? z twoim obecnym tfsem
 
Last edited:

hubcio202

User
Joined
Apr 24, 2009
Messages
21
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Gdy loguje sie na tibie nie zalezy czy na account managera czy goda zawsze w konsoli wyskakuje mi takie cos i nie mozna sie zalogowac tak jak by postac sie ladowala

[24/06/2010 08:40:11] Druid Sample has logged in.
[24/06/2010 08:40:11] mysql_real_query(): SELECT `auction_balance` FROM `players` WHERE `id` = 4; - MYSQL ERROR: Unknown column 'auction_balance' in 'field list' (1054)

[24/06/2010 08:40:11] [Error - CreatureScript Interface]
[24/06/2010 08:40:11] data/creaturescripts/scripts/login.lua:eek:nLogin
[24/06/2010 08:40:11] Description:
[24/06/2010 08:40:11] data/lib/004-database.lua:60: [Result:getDataInt] Result not set!
[24/06/2010 08:40:11] stack traceback:
[24/06/2010 08:40:11] [C]: in function 'error'
[24/06/2010 08:40:11] data/lib/004-database.lua:60: in function 'getDataInt'
[24/06/2010 08:40:11] data/creaturescripts/scripts/login.lua:23: in function <data/creaturescripts/scripts/login.lua:12>
[24/06/2010 08:40:11] Druid Sample has logged out.



powie mi ktos o co chodzi? ;>
 

Folgowsky

Active User
Joined
Jun 23, 2010
Messages
116
Reaction score
8
Age
31
Odp: Support - pomoc przy pisaniu skrypt?w

Mam problem z przekompilowaniem tego skryptu aby dzialal pod tibia 8.0
local transform =
{
--[voc_id_before_trans] = {voc_id_after_trans, addedhealth, addedmana, outfit, required_level, required_mana}
}
local texts =
{
level = "You don\'t have enough level.",
mana = "You don\'t have enough mana.",
transform = "You transform to "
}
function onSay(cid, param, words)
local Player = transform[getPlayerVocation(cid)]
if (Player == nil) then
return true
end
if (getPlayerLevel(cid) < Player[5]) then
doPlayerSendTextMessage(cid, 22, texts.level)
return true
end
if (getCreatureMana(cid) < Player[6]) then
doPlayerSendTextMessage(cid, 22, texts.mana)
return true
end
doPlayerSetVocation(cid, Player[1])
doCreatureAddMana(cid, -Player[6])
doSetCreatureOutfit(cid, Player[4], -1)
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + Player[2])
setCreatureMaxMana(cid, getCreatureMaxMana(cid) + Player[3])
doPlayerSendTextMessage(cid, 22, ""..texts.transform..""..getVocationInfo(Player[1]).name..".")
return true
end
 

Xart Irok

Senior User
Joined
Sep 7, 2008
Messages
2,925
Reaction score
419
Age
32
Odp: Support - pomoc przy pisaniu skrypt?w

[24/06/2010 08:40:11] mysql_real_query(): SELECT `auction_balance` FROM `players` WHERE `id` = 4; - MYSQL ERROR: Unknown column 'auction_balance' in 'field list' (1054)
To m?wi samo przez si?, brak kolumny w players.
 
Joined
Jul 7, 2010
Messages
2,061
Reaction score
193
Age
27
Odp: Support - pomoc przy pisaniu skrypt?w

czy jest taka funkcja?
if playerisonpos(x) then
.....
???
Chodzi o to ?e je?eli gracz jest na pozycji x to ....
 
Status
Not open for further replies.
Top