What's new
  • logo_cipsoft
    Latest servers:
    New servers will open on: 16th Oct 2024:
    Bravoria (Open PvP) Aethera (Open PvP) us_logo Cantabra (Open PvP)

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

Tylko ja nie wiem gdzie to umiesci? a poza tym to ten item u?ywa si? na sobie i wydaje mi si? ?e nawet jak to dobrze dodam to za ka?dym razem kiedy to u?yje b?dzie si? robi? splash pode mn? ;/
Ta, za kazdym razem.
 

YoS

Advanced User
Joined
Aug 29, 2008
Messages
410
Reaction score
29
Odp: Support - pomoc przy pisaniu skrypt?w

oki to ja mam pytanko / prosbe
jak napisac skrypt ktory:
po uzyciu przedmiotu zwraca jakie mamy blessy? wiem ze jest getPlayerBlessing(cid, bless) ale nie wiem jak uzyc.. (na rl jest ten skrypt na krzyzyku z poi (ornamentd ankh czy jakos tak ))
 

Rage

Active User
Joined
Mar 6, 2009
Messages
141
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Mam problem ze skryptem Tairensa.
link do tematu
http://tibia.net.pl/talkactions/259879-tranform-stawiam-na-uniwersalnosc.html
A wiec Tairens napisal ze w tej lini trzeba dodac dane i bedzie dzialac:

local transform =
{
--[voc_id_before_trans] = {voc_id_after_trans, addedhealth, addedmana, outfit, required_level, required_mana}
}

Ja zamiast tych dan zmienilem na cos takiego:

local transform =
{
--[0] = {1, 5000, 5000, 59, 1, 0}
}
i niedziala niewiem czemu:S Skrypt caly wyglada tak plax help!!


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

Jesli ktos moglby to zrobic na przykladzie to podam dane:
Lvl 1
Voc przed transem 0
Voc po transie 1
Mana dodana 5000
Mana odjeta 0
HP dodane 5000
Outfit 59

Dajcie czadu:p
 
T

Tairens

Guest
Odp: Support - pomoc przy pisaniu skrypt?w

Code:
local transform = 
{
[0] = {1, 5000, 5000, {lookType = 59, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, 1, 0}
}
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

Przecie? to jest ?atwe, troch? odpocz??.
 

Rage

Active User
Joined
Mar 6, 2009
Messages
141
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

niestety nic sie nie dzieje...
Zrobilem jak napisalem nawet w talkactions wpisalem change zamiast !transform i niemozna...
Probowalem to na silniku TDB...
Jesli to nie pod ten protocol napisz pod jakim silnikiem to testowales... jesli bedzie dzialac dam reputa
 

Kubasek96

Banned
Joined
Jan 28, 2009
Messages
14
Reaction score
0
Odp: Support - pomoc przy pisaniu skrypt?w

Code:
function onStepIn(cid, item, position, fromPosition)
if(get(Player(Level(itemEx.uid) < 300
doAddCreatureSpeed(cid, *0.75)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are speeder!!!")
else
doPlayerSendCancel(cid, "Sorry niemasz 300lvl.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
return TRUE
end

gdy chce wlaczyc juz otsa wyskakuje blad jak to naprawic?? zeby dawalo 75% wiecej speeda po nadepnieciu na item o danym unique id??
 
T

Tairens

Guest
Odp: Support - pomoc przy pisaniu skrypt?w

Code:
function onStepIn(cid, item, position, fromPosition)
	if(getPlayerLevel(cid) < 300)
		doChangeSpeed(cid, 0.75 * getCreatureSpeed(cid))
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are speeder!!!")
	else
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		doPlayerSendCancel(cid, "Sorry niemasz 300lvl.")
	end
return TRUE
end
 

Aragornkk

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

A wi?c to znowu ja. Z mieczem sobie poradzi?em (po prostu losowanie losowa?o co? poza tablicami). Teraz mam jednak kolejny problem, pr?buje rozbi? funkcje poprzez explode jednak silnik nie zwraca mi nic (poprzez print).
Dok?adnie chodzi mi o to aby zrobi? co? takiego ?e poprzez komende /los Shus,2160 dawa?o by graczowi Shus storage 2160. G??wnie potrzebuje pomocy przy explode bo tylko z tym mam k?opot.


#Tairens
Acha, ju? wiem czemu nie mog?em poradzi? sobie z explode...
Tej komendy nie by?o w silniku. Jakby kto? mia? problem i te? nie mia? tej funkcji prosz? oto ona.

function explode(div,str)
if (div=='') then return false end
local pos,arr = 0,{}
-- for each divider found
for st,sp in function() return string.find(str,div,pos,true) end do
table.insert(arr,string.sub(str,pos,st-1)) -- Attach chars left of current divider
pos = sp + 1 -- Jump past current divider
end
table.insert(arr,string.sub(str,pos)) -- Attach chars right of last divider
return arr
end


Chcia?bym ci da? repa ale nie mog?. Za cz?sto daje ci reputacje i blokuje mi:/
 
Last edited:
T

Tairens

Guest
Odp: Support - pomoc przy pisaniu skrypt?w

Je?eli chodzi o dawanie graczowi storage no to jest to banalnie proste w TFS masz wbudowany talk :)
Code:
/storage player_name, storage_value, [optional_set_value]

Je?li jednak chodzi o explode to pewno chodzi Ci o rozbicie param, bo nie bardzo mo?na funkcj? podzielic, chyba ze w pewnych szczegolnych wypadkach
Co do param to dzia?a to tak:
Code:
local tableParam = string.explode(param, ',')

Gdzie przecinek jest jakby elementem dziel?cym param na elementy tablicy. Do danego elementy odnosisz si? za pomoc?
Code:
tableParam[1]
talbeParam[2]
Czyli jak do normalnej talblicy
 
Joined
Feb 26, 2010
Messages
45
Reaction score
0
Age
29
Odp: Support - pomoc przy pisaniu skrypt?w

Witam mam pytanie jak zrobi? komend? na kupowanie aola ? prosz? o pomOC!
pozdrawiam!;(
 
Joined
Feb 26, 2010
Messages
45
Reaction score
0
Age
29
Odp: Support - pomoc przy pisaniu skrypt?w

bardzo dzi?kuje!
Pozdrawiam i jeszcze raz dzi?kuj?!:p
 

Pause

Active User
Joined
Jan 8, 2009
Messages
83
Reaction score
3
Odp: Support - pomoc przy pisaniu skrypt?w

Witajcie , mam problem z manaruna , dzia?a ale sa b??dy w konsoli. Jak kto? mo?e to niech powie jak to naprawi?
Code:
Lua Script Error: [Action Interface] 
data/actions/scripts/manarune.lua:onUse

data/actions/scripts/manarune.lua:41: attempt to call global 'doPlayerSay' (a nil value)
stack traceback:
	data/actions/scripts/manarune.lua:41: in function <data/actions/scripts/manarune.lua:9>

Skrypt wygl?da tak:
Code:
local config = {
  constantManaAmount = 0, -- set on 0 to use a formula with variables like level etc (line 33, 34)
  removeItem = 0,
  exhaustSeconds = 1,
  exhaustStorageID = 25500, -- this one MUST be unused!
  onlyOnPlayersMsg = 'You may use this item only on players',
  exhaustedMsg = 'You are exhausted.'
}
function onUse(cid, item, frompos, item2, topos)
  if(isPlayer(item2.uid) == FALSE) then
    doPlayerSendCancel(cid, config.onlyOnPlayersMsg)
    doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
    return FALSE
  end
  if(os.time() < getPlayerStorageValue(cid, config.exhaustStorageID)) then
    doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
    doPlayerSendCancel(cid, config.exhaustedMsg)
    return FALSE
  end
  if config.constantManaAmount == 0 then
  	local level, mlevel = getPlayerLevel(cid), getPlayerMagLevel(cid)
  	-- formula settings
  	-- you may use 'level' and 'mlevel'
    local manaMin = (level * 2) + (mlevel * 2)
    local manaMax = (level * 2.5) + (mlevel * 2.5)
      if manaMin < 10 then
        local manaMin = 10
      end
      if manaMax < 10 then
				local manaMax = 10
			end
    local manaAdd = math.random(manaMin, manaMax)
    doPlayerAddMana(item2.uid, manaAdd)
    doSendAnimatedText(getPlayerPosition(item2.uid), manaAdd, TEXTCOLOR_YELLOW)
  else
    doPlayerAddMana(item2.uid, config.constantManaAmount)
    doSendAnimatedText(getPlayerPosition(item2.uid), config.constantManaAmount, TEXTCOLOR_YELLOW)
  end
  setPlayerStorageValue(cid, config.exhaustStorageID, os.time() + config.exhaustSeconds)
  doSendMagicEffect(getPlayerPosition(item2.uid), CONST_ME_BATS)
  doPlayerSay(cid, "Aaaah...", 16)
  if config.removeItem == 1 then
    if(item.type > 1) then 
      doChangeTypeItem(item.uid, item.type - 1)
    elseif(item.type == 1) then
      doRemoveItem(item.uid, 1)
    end
  end
end
 
Last edited:

Sterger

Advanced User
Joined
Jun 2, 2008
Messages
217
Reaction score
10
Odp: Support - pomoc przy pisaniu skrypt?w

Prosz? o skrypt na Task np. "Zabij 20 trolli to Ci dam nagrod?". Prosz? o jaki? przyk?ad itp. reszt? powinienem sobie da? rad? zmieni?... Oczekuj? szybkiej odpowiedzi :(
 

Doman08

Senior User
Joined
Dec 22, 2009
Messages
719
Reaction score
112
Odp: Support - pomoc przy pisaniu skrypt?w

Oczekuj? szybkiej odpowiedzi

Witajcie , mam problem z manaruna , dzia?a ale sa b??dy w konsoli. Jak kto? mo?e to niech powie jak to naprawi?
wklej skrypt mo?e?
Zamiast :
Code:
doPlayerSay
spr?buj mo?e:
Code:
doPlayerSendTextMessage(cid,25,"Tw?j jaki? tekst.")
 
Last edited:

florczak

Advanced User
Joined
Nov 25, 2009
Messages
271
Reaction score
18
Odp: Support - pomoc przy pisaniu skrypt?w

a ja potrebuje pomocy mo?e ma kto? jaki? poradnik jak pisa? skrypty bo robie z kumplami otsa i chcia? bym umie? hociarz zrobi? beznadziejnego skrypta thx
 

kakashininja

Advanced User
Joined
Jul 9, 2008
Messages
257
Reaction score
2
Odp: Support - pomoc przy pisaniu skrypt?w

Mam do Was jako do?wiadczonych skrypter?w pro?b?.Ot?? jestem jeszcze na etapie pocz?tkuj?cym skryptowania, wi?c sam jeszcze nie potrafi? tego zrobi?, lecz mam nadziej? ?e Wy dacie rad?.
Chodzi mi o skrypt, kt?ry pozwoli nam p?ywa? statkami, walczy? na morzu oraz transportowa? itemki w skrzyniach:).Skrypt powinien r?wnie? np. po wzi?ciu look na statek podawa? nick w?a?ciciela[kapitana].By?bym bardzo wdzi?czny za taki skrypt i jestem pewien ?e nie tylko ja:p.
 

Dragonas

Advanced User
Joined
Jul 11, 2009
Messages
321
Reaction score
18
Age
31
Odp: Support - pomoc przy pisaniu skrypt?w

Witam,
Czyta?em regulamin i wiem, ?e wypada?o by poda? cho?by moje pr?by w pisaniu skryptu, lecz niestety nawet tego nie umia?em zrobi? ..

@offtop
Ostatnio napisa?em lottery system (sam) i jestem z tego dumny. Losy zapisuj? si? w osobnej tabeli, a co 24h daj? nagrod? jednej osobie, kt?ra kupi?a los (im wi?cej kupi?e? los?w, tym wi?ksza szansa ze wygra?e?) .. Bardzo dopracowany system ...
--To by?o tak, ?eby nie by?o, ?e jestem noobkiem xD

@top
Chodzi mi o to, ?e:
Gdy zak?adasz (tworzysz) konto na moim OTS, jest pole do wpisania imienia gracza, kt?ry powiedzia? mu o OTS, a nast?pnie (to ju? sam mog? zrobi?) kiedy ten gracz wbije 50, 100, 100+x lvl to dodaje mu pkt do sms shopu.

Prosz? tylko o edycje pliku createaccount.php, aby by?o pole do wpisania tego nicku. Oraz, ?eby zapisa?o si? to imie w kolumnie o nazwie `xxx`, w tabeli Players.

Poniewa? nie ogarniam php ...

Nigdzie takiego czego? nie znalaz?em, wi?c mo?e by? to przydatne.
Z g?ry dzi?kuje

PS:ko?ystam z tfs 0.3.6 (Acc maker by gesior)
 

hitoshi

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

Prawdopodobnie trafilem jak zwykle do zlego dzialu ale bardzo potrzebuje pomocy. Czy istnieje mozliwosc napisania skryptu w ktorym wspolczynnik regeneracji hp i many bedzie zalezal od danego lvlu ( np na lvlu 100 300 regeneracji hp i many a na 500 1500) Dopiero co zaczalem zabawe ze skryptami i odrazu jakis zonk. Poprostu chce zrobic cos nowego i nie wiem jak sie za to zabrac
Chodzi mi o regeneracje z fooda gdy jestesmy najedzeni
 
Status
Not open for further replies.
Top