What's new

Support Scripts - tworzymy/naprawiamy

Status
Not open for further replies.

ErMex

Egzekucja
Joined
Dec 1, 2010
Messages
574
Reaction score
181
1293652582_fd87b8d4_1293652703.gif

Jako i? ostatnio nie widz? podobnego tematu a pomocy oczekuje wielu u?ytkownik?w, postanowi?em wraz z Oskarem stworzy? temat gdzie naprawiamy oraz piszemy skrypty. Prosz?c nas o pomoc jeste? zobowi?zany przestrzega? regulaminu dzia?u oraz stosowania si? to wzoru podania. Prosz? wyra?nie napisa? z jakim problemem si? do nas zg?aszacie. Czy ma to by? skrypt action czy monster czy jaki? inny. Tworzymy skrypty tylko i wy??cznie pod silniki SQL (8.1+). Je?eli oka?e si?, ?e skrypt, kt?ry dla was zrobili?my nie dzia?a - pisa? PW a nie w temacie. Dodaje, ?e nie robimy skrypt?w z pokemonami zwi?zanymi!


Pracuj? dla was:
ErMex
Oskar

Wz?r, kt?ry macie stosowa? je?li mamy napisa? skrypt:
Typ: (np. actions, talkactions itp.)
Opis: (na czym polega? ma skrypt?
Dodatkowe: (co? od siebie, mo?e by? puste)

Jesli mamy wam naprawi? skrypt zapraszam do tego tematu:
Support Scripts - naprawiamy
 

Bartastkd

Advanced User
Joined
Nov 11, 2008
Messages
464
Reaction score
10
Odp: Support Scripts - tworzymy

Odp: Support Scripts - tworzymy

Typ: Talkactions

Opis: No to jak wam si? nudzi, to mo?ecie napisa? zmiane profesji w lua, zerowanie skill i mlvli za pkty z shopa. Ja zacze?em pisa?, ale nie mam czasu sko?czy?. Zobaczymy jak wam wyjdzie :)

To nie trudne, ale d?ugie.
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Support Scripts - tworzymy/naprawiamy

Najpierw dodaj now? funkcj?, w data/lib/050-function.lua dodaj:
PHP:
function doPlayerRemovePremiumPoints(cid, points)
    return db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
Plik talkaction:
PHP:
local points = 1
local voc = 6

function onSay(cid, words, param)
local rookedGUID = getPlayerGUID(cid)
doPlayerRemovePremiumPoints(cid, points)
doPlayerSetVocation(cid, voc)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `maglevel` = '0', `manaspent` = '0' WHERE `id` = " .. rookedGUID .. " LIMIT 1;")
db.executeQuery("UPDATE `player_skills` SET `value` = '10', `count` = '0' WHERE `player_id` = " .. rookedGUID .. " LIMIT 7;")
return true
end
Z edytuj na swoje potrzeby.
 
Last edited:

Mistersi

Active User
Joined
Nov 28, 2010
Messages
54
Reaction score
0
Odp: Support Scripts - tworzymy/naprawiamy

Typ: NPC
Opis: Chcia?bym aby?cie napisali mi skrypt na npc kt?ry dodawa? by m lvl.
Dodatkowe: Form? p?atno?ci maj? by? punkty soul ;] a nie cc.
 

Collerk

Active User
Joined
Jul 12, 2010
Messages
96
Reaction score
2
Odp: Support Scripts - tworzymy/naprawiamy

Witam Jestem Collerk i te? potrzebuje pomocy.

Typ: Wydaje mi si? ?e action ale nie jestem pewien.
Opis : (Wi?c tak, poprosz? skrypt w kt?rym. Masz posta? kt?ra wszed?a w tibie no i jest np. na trinerach- jest tam ponad 2 min no i pisze napis afk(co 1 sekund?), no i po 2 kolejnych minutach posta? zostaje wologowana.)
Dodatkowe: (Mam nadziej? ?e dobrze opisa?em to @up)
Dzi?kuje i prosz? o szybk? odpowiedz z Pana i Oskara strony.
 

Acetone

Active User
Joined
Nov 22, 2010
Messages
108
Reaction score
35
Odp: Support Scripts - tworzymy/naprawiamy

Typ: Actions, movements i jakie? takie ;d
Opis:
We wtorki odbywa? si? b?dzie walka o zamek (tzw. Castle War Event). W?a?cicielem zamku zostaje gildia, kt?ra zabije (lub zada najwi?cej obra?e?) Kinga pojawiaj?cego si? na zamku podczas Eventu. W dni kiedy odbywa si? Event, og?aszana jest na broadca?cie informacja o obronie zamku. Lider gildii, kt?ra chce wzi?? udzia? w obronie musi w tym czasie wpisa? komende !castle. W tym momencie je?eli spe?nia warunki przyst?pienia do ataku ( 100 lvl oraz co najmniej 5 member?w online), wszyscy cz?onkowie gildii tepowani s? do jednego z 3 spawn?w pod zamkiem.
Po up?ywie 10 minut od otwarcia Eventu bramy do zamku zostaj? otwarte. G??wnym celem jest zadanie jak najwi?kszych obra?e? Kingowi, kt?rego trzeba poszuka? na zamku. Oczywistym jest, ?e gildia, kt?ra jest ownerem zamku musi kr?la broni?. Gdy, kr?l zostanie zabity nowym ownerem zamku zostaje gildia, kt?ra zada?a najwi?cej obra?e? zabitemu kr?lowi.
Zapo?yczone od tiberia ots
Dodatkowe: Ciekawe kiedy to zrobicie : )

Regards,
Acetone
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Support Scripts - tworzymy/naprawiamy

#Mistersi
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)                          npcHandler:onCreatureAppear(cid)                        end
function onCreatureDisappear(cid)                       npcHandler:onCreatureDisappear(cid)                     end
function onCreatureSay(cid, type, msg)                  npcHandler:onCreatureSay(cid, type, msg)                end
function onThink()                                      npcHandler:onThink()                                    end
function creatureSayCallback(cid, type, msg)
        if(not npcHandler:isFocused(cid)) then
                return false
        end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local przelicznik_magic_lvla = 5 --jeden magic level za 5 soula
if msgcontains(msg, 'magic level') or msgcontains(msg, 'magic') or msgcontains(msg, 'mlv') then
	if getPlayerSoul(cid) > przelicznik_magic_lvla then
		doPlayerAddMagLevel(cid, 1)
		doPlayerAddSoul(cid, -przelicznik_magic_lvla)
		selfSay('Straciles '..przelicznik_magic_lvla..' soula na koszt jednego magic levela', cid)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

#collerk
W data/movements/scripts stw?rz plik:
PHP:
local czas_po_jakim_logout = 2 --w minutach
local czas_napis_afk = 1 --w sekundach

function onStepIn(cid)
if isPlayer(cid) then
	logo = addEvent(doRemoveCreature, czas_po_jakim_logout * 60 * 1000, cid)
	afker = addEvent(afk, czas_napis_afk * 1000, {cid = cid})
end
return true
end

function onStepOut(cid)
if isPlayer(cid) then
	stopEvent(afker)
	stopEvent(logo)
end
return true
end

function afk(p)
if isCreature(p.cid) then
	doSendAnimatedText(getCreaturePosition(p.cid), "afk", COLOR_ORANGE)
	afker = addEvent(afk, czas_napis_afk * 1000, p)
end
return true
end
Do movements.xml wklej:
PHP:
<movevent type="StepIn" actionid="1999" event="script" value="nazwa.lua"/>
<movevent type="StepOut" actionid="1999" event="script" value="nazwa.lua"/>

#up
Pomoc odrzucona. Nie b?d? pisa? Ci ca?ych system?w. My piszemy skrypty (czyt. jeden skrypt, nie 3413).
 
Last edited:

Mistersi

Active User
Joined
Nov 28, 2010
Messages
54
Reaction score
0
Odp: Support Scripts - tworzymy/naprawiamy

Typ: Talkactions
Opis: Chodzi mi o taki system reputacji piszemy np.!reputacja i wyswietla nam sie Masz 0% reputacji.
Dodatkowe: Np. Gdy mam storage 100-Mam 0% reputacji, gdy mam 101-Mam 25% reputacji, Gdy mam 102-Mam 50% reputacji. I jezeli mozecie to jeszcze podloge przez ktora mozna przejsc od wyznaczonego storage.
 

Bartastkd

Advanced User
Joined
Nov 11, 2008
Messages
464
Reaction score
10
Odp: Support Scripts - tworzymy/naprawiamy

Najpierw dodaj now? funkcj?, w data/lib/050-function.lua dodaj:
PHP:
function doPlayerRemovePremiumPoints(cid, points)
    return db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
Plik talkaction:
PHP:
local points = 1
local voc = 6
function onSay(cid, words, param)
local rookedGUID = getPlayerGUID(cid)
doPlayerRemovePremiumPoints(cid, points)
doPlayerSetVocation(cid, voc)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `maglevel` = '0', `manaspent` = '0' WHERE `id` = " .. rookedGUID .. " LIMIT 1;")
db.executeQuery("UPDATE `player_skills` SET `value` = '10', `count` = '0' WHERE `player_id` = " .. rookedGUID .. " LIMIT 7;")
return true
end
Z edytuj na swoje potrzeby.


Funny, tu nie ma przynajmniej po?owy kodu, jak ju? co? robisz to porz?dnie :

Nie czy?ci skilli i mlvla, nie ustala hp/many/capa.

Btw, ja ju? mam prawie sko?czony w?asny bo jak widz? taki nie profesjonalizm to...

Code:
#up
Pomoc odrzucona. Nie b?d? pisa? Ci ca?ych system?w. My piszemy skrypty (czyt. jeden skrypt, nie 3413).

Zr?b to w modzie, b?dzie 1.
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Support Scripts - tworzymy/naprawiamy

#up
Nie miej do mnie pretensji. Cytuj?:
napisa? zmiane profesji w lua, zerowanie skill i mlvli za pkty z shopa
Gdzie tu mowa o zmianie ilo?ci HP/many/capa? Skille i mlv czy?ci, poniewa? testowa?em.
Je?li on szuka castle systemu to niech najpierw poszuka na forach co?
Notka moderatorska:


#2 up
W data/talkactions/scripts stw?rz plik o nazwie reputacja.lua i wklej:
PHP:
local storage = 2000
local punkty_rep = {
					--[storage_value], {procenty}
					[0] = {0},
					[1] = {25},
					[2] = {50},
					[3] = {75},
					[4] = {100}
					}
local przelicznik = 5 --5% za ka?dy jeden storage value, dla przykladu gdy mamy storage 2415 o wartosci 20 to mamy 100% reputacji.
local tabelka_czy_przelicznik = "przelicznik"

function onSay(cid, words, param)
if tabelka_czy_przelicznik == "tabelka" then
	for k, v in pairs(punkty_rep) do
		if getPlayerStorageValue(cid, storage) == k then
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Masz '..v[1]..'% reputacji.')
			return true
		else
			if k == #punkty_rep then
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Nie masz zadnych punktow reputacji.')
				return true
			end
		end
	end
elseif tabelka_czy_przelicznik == "przelicznik" then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Masz '..przelicznik * getPlayerStorageValue(cid, storage)..'% reputacji.')
end
return true
end
Do talkactions.xml wklej:
PHP:
<talkaction words="!reputacja" script="reputacja.lua"/>

A tutaj kratka od danego storage:
PHP:
local config = {
				--[storage i actionid], {wartosc_storage}
				[2000] = {2},
				[2001] = {8},
				[2002] = {42},
				}

function onStepIn(cid, item, position, fromPosition)
local kratka = config[item.actionid]
if isPlayer(cid) then
	if getPlayerStorageValue(cid, item.actionid) ~= kratka[1] then
		doTeleportThing(cid, fromPosition)
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Nie mozesz tedy przejsc.')
	end
end
return true
end

#down
Gdybym ja mia? tyle czasu by to napisa?. Od razu Ci go nie napisz?. Ale oczekuj od?wie?enia tego tematu przeze mnie.
 
Last edited:
Joined
Dec 15, 2010
Messages
41
Reaction score
1
Odp: Support Scripts - tworzymy/naprawiamy

#UP
Czyli nie do zrobienia jest ?
Spoko mam czas i dzi?ks

Typ: Szczerze nie wiem do czego to zaliczy?


Opis: No wi?c potrzebuj? systemu polegaj?cego na :
?e ka?da z 9 profesji ma swojego summona
np: voc1 - orc , voc2 - orc warior , voc 3 - minotaur ....
i ka?dy z tych summon?w mo?na przywo?a? ( wiem gdzie ustawi? przywo?ywanie )
ale gdy przywo?amy i np:napiszemy jaki? czar i dodamy do tego orc'u wariorze u?yj miecza to on bije z miecza i dostaje do?wiadczenie i gdy napiszemy nast?pny czar kt?ry zapisuje jego do?wiadczenie i go chowa np: do bp jako maskotka.

Dodatkowe: Ka?dy z monsterk?w po zdobyciu Poziomu dostaje 1 skill np : Orc dostaje 1 skill Club a orc warior dostaje 1 skill sword :) [TFS 0.3.6pl]
Mam nadziej? ?e to nie b?dzie dla was k?opot bo dla mnie straszny ;)
 
Last edited:

Mistersi

Active User
Joined
Nov 28, 2010
Messages
54
Reaction score
0
Odp: Support Scripts - tworzymy/naprawiamy

Typ: NPC
Opis: Jak nikt was nie prosi o skrypty to ja poprosze jeszcze jeden ;p chodzi mi o npc kt?ry daje nam zadania, musimy je wykonywa? po kolei i po ka?dym wykonanym zmienia nam sie storage value.
Dodatkowe: Chodzi mi o zadanie typu. Gdy wpiszemy misja1 to npc mowi"przynies mi 10 ryb" gdy wykonamy to mozemy wziac misja2 i mowi nam np. "zabij 10 demonow"
Dzi?kuje za poprzednie skrypty ;p.
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Support Scripts - tworzymy/naprawiamy

NPC
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)                          npcHandler:onCreatureAppear(cid)                        end
function onCreatureDisappear(cid)                       npcHandler:onCreatureDisappear(cid)                     end
function onCreatureSay(cid, type, msg)                  npcHandler:onCreatureSay(cid, type, msg)                end
function onThink()                                      npcHandler:onThink()                                    end
function creatureSayCallback(cid, type, msg)
        if(not npcHandler:isFocused(cid)) then
                return false
        end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local config = {
				storage = 5321,
				fish = 2227,
				count = 10
				}
if msgcontains(msg, 'misja1') then
	if getPlayerStorageValue(cid, config.storage) == -1 then
		selfSay('Przynies mi {10 ryb}.', cid)
		doPlayerSetStorageValue(cid, config.storage, 0)
	elseif getPlayerStorageValue(cid, config.storage) == 0 then
		selfSay('Przyniosles mi to {10 ryb}?', cid)
		talkState[talkUser] = 1
	end
elseif msgcontains(msg, 'misja2') then
	if getPlayerStorageValue(cid, config.storage) == 1 then
		selfSay('Idz zabij {10 demonow}.', cid)
		doPlayerSetStorageValue(cid, config.storage, 2)
	elseif getPlayerStorageValue(cid, config.storage) == 2 then
		selfSay('Zabiles {10 demonow}?', cid)
		talkState[talkUser] = 2
	end
elseif msgcontains(msg, 'yes') then
	if talkState[talkUser] == 1 then
		if doPlayerRemoveItem(cid, config.fish, config.count) then
			selfSay('Dzieki bardzo. Mozesz teraz wziac {misja2}.', cid)
			doPlayerSetStorageValue(cid, config.storage, 1)
		end
	elseif talkState[talkUser] == 2 and getPlayerStorageValue(cid, config.storage) == 3 then
		selfSay('Gratz.', cid)
		doPlayerSetStorageValue(cid, config.storage, 3)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Z tym sobie poradzisz.

Teraz id? do data/creaturescripts/scripts i stw?rz tam plik o nazwie demce.lua i wklej:
PHP:
local config = {	
				["demon"] = {storage = 5321, mob_storage = 64999, race_name = "demons", begin_storage_value = 2, finished_storage_value = 3, count = 10},
				}
function onKill(cid, target)
local mob = config[string.lower(getCreatureName(target))]
if mob and isMonster(target) then
	if getPlayerStorageValue(cid, mob.storage) == mob.begin_storage_value then
		doPlayerSetStorageValue(cid, mob.mob_storage, getPlayerStorageValue(cid, mob.mob_storage) + 1)
			x = 0
			s = "You killed "
			for k, v in pairs(config) do
				if getPlayerStorageValue(cid, v.storage) == v.begin_storage_value then
					count = getPlayerStorageValue(cid, v.mob_storage)
					if count < 0 then
						count = 0
					end
					s = s ..count.." " .. k .. ","
					x = x + count
				end
			end
			s = string.sub(s, 1, string.len(s) - 1)..". You have killed " .. x .." of ".. mob.count .." "..mob.race_name.."."
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, s)
			if x == mob.count then 
				doPlayerSetStorageValue(cid, mob.storage, mob.finished_storage_value)
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! You have killed enough "..mob.race_name..".")
			end
	end
end
	return true
end
Do creaturescripts.xml wklej:
PHP:
<event type="kill" name="Demce" event="script" value="demce.lua"/>
Do login.lua wklej:
PHP:
registerCreatureEvent(cid, "Demce")
 

rafixkka

Active User
Joined
Jul 11, 2010
Messages
93
Reaction score
7
Odp: Support Scripts - tworzymy/naprawiamy

Typ: NPC
Opis: Jak tak mowicie o storage to ja mam pro?be nie wiem czy to jest mo?liwe chcia?bym taki skrypcik, gdy gdzie? tam chce wej?? a obok stoi npc i nie mamy storage np. 100 to npc nas teleportuje dwie kratki w tyl od tego wyznaczonego miejsca za kt?re nie mo?na przejsc a gdy mamy to storage to npc mowi np. Mozesz przejsc ;p
Dodatkowe: Nie wiem czy to jest do zrobienia, ale prosze was o to ;p
Edit:
Mo?e by? te? tak ?e piszemy do npc. teleport i on nas teleportuje w wybrane miejsce tylko gdy mamy storage. ;p
 
Last edited:

ErMex

Egzekucja
Joined
Dec 1, 2010
Messages
574
Reaction score
181
Odp: Support Scripts - tworzymy/naprawiamy

@rafixkka
Data/npc/name_npc.lua:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Name Npc" script="teleport.lua" walkinterval="2000" floorchange="0">
	<health now="150" max="150"/>
	<look type="142" head="114" body="0" legs="95" feet="114" corpse="2212"/>
	<parameters>
		<parameter key="Witaj. Moge cie teleportowac pod warunkiem ze masz odpowiednie storage."/>
	</parameters>
</npc>
data/npc/scripts/teleport.lua:
PHP:
local keywordHandler = KeywordHandler:new()  
local npcHandler = NpcHandler:new(keywordHandler)  
NpcSystem.parseParameters(npcHandler)  
local talkState = {}  
function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)            end  
function onCreatureDisappear(cid)        npcHandler:onCreatureDisappear(cid)            end  
local keywordHandler = KeywordHandler:new()  
local npcHandler = NpcHandler:new(keywordHandler)  
NpcSystem.parseParameters(npcHandler)  
local talkState = {}  
function onCreatureAppear(cid)                          npcHandler:onCreatureAppear(cid)                        end  
function onCreatureDisappear(cid)                       npcHandler:onCreatureDisappear(cid)                     end  
function onCreatureSay(cid, type, msg)                  npcHandler:onCreatureSay(cid, type, msg)                end  
function onThink()                                      npcHandler:onThink()                                    end  
function creatureSayCallback(cid, type, msg)  

local cfg = { 
    pos = {x=1027, y=979, z=6}, 
    storage = 65984
    } 
if msgcontains(msg, 'teleport') then  
if getPlayerStorageValue(cid, cfg.storage) == 1 then 
selfSay('Zostales teleportowany.', cid)  
doTeleportThing(cid, cfg.pos) 
doSendMagicEffect(cfg.pos, 10)
else 
selfSay('Przepraszam, nie masz odpowiedniego storage.', cid)  
end 
end 
return true 
end 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)  
npcHandler:addModule(FocusModule:new())
 
Last edited:

Hemick

Active User
Joined
May 11, 2008
Messages
132
Reaction score
2
Odp: Support Scripts - tworzymy/naprawiamy

Typ: Actions
Opis: Quest tylko ze gdy klikniemy na skrzynke to sie otwiera skrzynka i z niej bierzemy itemki a nie ze item sie pojawia w bp
Dodatkowe: da sie cos takiego zrobic ??:D
 

Mistersi

Active User
Joined
Nov 28, 2010
Messages
54
Reaction score
0
Odp: Support Scripts - tworzymy/naprawiamy

Typ:Talkactions
Opis: Chodzi mi o takie punkty umiejetnosci: Na level dostajemy 4 punkty umiejetnosci, komenda !pu mo?emy sprawdzi? ile ich teraz mamy, Punkty umiejetnosci mo?emy ?adowa? w skille ;d
Dodatkowe: ;]
 
Last edited:

orzeleagle122

Advanced User
Joined
May 18, 2010
Messages
449
Reaction score
16
Odp: Support Scripts - tworzymy/naprawiamy

witam,
wzoruj?c sie na ani wykminilem takie cos,
5vs5.png

Typ: Actions
Opis:
i tak, w skrypcie wpisuje pozycje po prawej stronie i po lewej (na obrazku)
po przesunieciu wajchy skrypt sprawdza czy wszyscy maja 100+lvl (i najlepiej jakby sprawdzal czy wszyscy sa w guildiii jakiejs, a jeszcze lepiej jak by sprawdzalo czy cij po lewej wszyscy maja ta sam? guildie) i teleportuje graczy w lewej na pozycje inne niz tych z prawej. i zeby mozna bylo kilka razy to robic tzn nie raz dziennie.
podzrawiam.
rep ++ za pomoc
tfs 0.4 - 8.54-8.57
 
Last edited:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Support Scripts - tworzymy/naprawiamy

#Hemick
PHP:
local config = {
				[1111] = {items = {2315,2457,2152}, counts = {1,1,1}},
				[1112] = {items = {2315,2148}, counts = {1,42}},
				[1113] = {items = {2315}, counts = {1}}
				}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local skrzynka = config[item.uid]
x = "Znalazles "
if getPlayerStorageValue(cid, item.uid) == -1 then
	if isContainer(item.uid) then
		for i = 1, #skrzynka.items do
			doAddContainerItem(item.uid, skrzynka.items[i], skrzynka.counts[i])
			if isItemStackable(skrzynka.items[i]) then
				skrzynka.counts[i] = skrzynka.counts[i] .. " "
			else
				skrzynka.counts[i] = ""
			end
			if i < #skrzynka.items - 1 then
				x = x .. skrzynka.counts[i] .. getItemNameById(skrzynka.items[i]) .. ", "
			elseif i == #skrzynka.items - 1 then
				x = x .. skrzynka.counts[i] .. getItemNameById(skrzynka.items[i]) .. " oraz "
			else
				x = x .. skrzynka.counts[i] .. getItemNameById(skrzynka.items[i]) .. "."
			end
		end
		doPlayerSetStorageValue(cid, item.uid, 1)
	end
else
	x = "Pusto."
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, x)
return false
end
Warunek - do skrzynki mo?e mie? doj?cie tylko jedna osoba jednocze?nie.
#Mistersi
Sporo tego,
data/creaturescripts/scripts stw?rz plik o nazwie advance_points.lua i wklej:
PHP:
local storage = 5000
local storage_na_punkty = 5001
local od_jakiego_lvla_zaczyna_sie_gre = 8
function onAdvance(cid, skill, oldLevel, newLevel)
local getStorage, getPktStorage = getPlayerStorageValue(cid, storage), getPlayerStorageValue(cid, storage_na_punkty)
if isPlayer(cid) and skill == SKILL__LEVEL and getStorage < getPlayerLevel(cid) - 1 and newLevel > oldLevel then
	if getPktStorage == -1 then getPktStorage = 0 end
		local level = (newLevel - oldLevel) * 4
		doPlayerSetStorageValue(cid, storage_na_punkty, getPktStorage + level)
		doPlayerSetStorageValue(cid, storage, getPlayerLevel(cid))
	end
return true
end
Do login.lua wklej:
PHP:
registerCreatureEvent(cid, "Points_For_Level")
Do creaturescripts.xml wklej:
PHP:
<event type="advance" name="Points_For_Level" event="script" value="advance_points.lua"/>
Id? teraz do data/talkactions/scripts i stw?rz plik punkty_za_level.lua i wklej:
PHP:
local storage_na_punkty = 5001
local config = {
				['fist'] = {SKILL_FIST},
				['club'] = {SKILL_CLUB},
				['sword'] = {SKILL_SWORD},
				['axe'] = {SKILL_AXE},
				['distance'] = {SKILL_DISTANCE},
				['shielding'] = {SKILL_SHIELD},
				['fishing'] = {SKILL_FISHING},
				['magic'] = {SKILL__MAGLEVEL}
				}

function onSay(cid, words, param)
local params = config[string.lower(param)]
local getPktStorage = getPlayerStorageValue(cid, storage_na_punkty)
if param == '' then
	if getPktStorage == -1 then getPktStorage = 0 end
	doShowTextDialog(cid, 5785, 'Masz aktualnie '..getPktStorage..' punktow do rozdania.')
elseif params or isInArray({'health','mana'}, param) then
	if getPktStorage > 0 then
		if param == 'health' then
			setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 10)
			doCreatureAddHealth(cid, 10, false)
		elseif param == 'mana' then
			setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 10)
			doCreatureAddMana(cid, 10, false)
		else
			doPlayerAddSkill(cid, params[1], 1)
		end
		doPlayerSetStorageValue(cid, storage_na_punkty, getPktStorage - 1)
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Nie masz zadnych punktow do rozdania.')
	end
end
return true
end
Do talkactions.xml wklej:
PHP:
<talkaction words="!pu" script="punkty_za_level.lua"/>
Komend? !pu sprawdzasz ile masz punkt?w, komend? !pu nazwa_skilla dodajesz +1 do swojego skilla kosztem jednego punktu.
#down
Co wpisujesz do skrzynki? Do actions.xml poka? wpis.
#edit
Edytowa?em skrypt na skrzynk?. Wklej ten tutaj.
#down
Skrzynka ma mie? uniqueid nie actionid. Tak samo w actions.xml, zmie? actionid na uniqueid. Wtedy b?dzie ?adnie dzia?a?.
 
Last edited:

Hemick

Active User
Joined
May 11, 2008
Messages
132
Reaction score
2
Odp: Support Scripts - tworzymy/naprawiamy

#up
DALEJ TO SAMO ://
 
Last edited:
Status
Not open for further replies.
Top