• 01-04.05.2026 - DOUBLE EXP / SKILL EVENT!

Actions Tworzenie Potwora przez Gold Nugget

Status
Zamknięty.

WhitePrrince

Advanced User
Zarejestrowany
Dołączył
Wrzesień 2, 2009
Posty
250
Liczba reakcji
4
Witam przedstawiam Wam jeden z moich pierwszych skryptow, ktory polega na tworzeniu potwora dobry na serwery fun, evo

Opis :

Poprzez klikniecie na gold nugget tracimy go a w zaleznosci od lvla tworzy obok nas potwora, wykorzystanie ma takie ze mozemy na nim expic :)

Item mozna dodac do sms shopu,



Wchodzimy do data/actions/scripts tworzymy tam create.lua gdzie wklejamy :

Kod:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerLevel(cid) <= 50 ) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Dragon", pozycjagracza)
	doRemoveItem(item.uid, 1)
    doPlayerSendTextMessage(cid, 5, "You are created Dragon and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 100) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Hydra", pozycjagracza)
	doRemoveItem(item.uid, 1)
    doPlayerSendTextMessage(cid, 5, "You are created Hydra and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 150) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Demon", pozycjagracza)
	doRemoveItem(item.uid, 1)
	doPlayerSendTextMessage(cid, 5, "You are created Demon and lose 1 gold nugget")
	else
			doPlayerSendTextMessage(cid, 4, "The one item is only for players from lvl smaller than 150 ")
	end
end

Nastepnie przechodzimy do data/actions/actions.xml w przedostatniej linijce dopisujemy :

Kod:
<action itemid="2157" event="script" value="create.lua"/>

Skrypt mozna edytowac poprzez dodanie nowego elseifa jest to ta czesc :

Kod:
elseif(getPlayerLevel(cid) <= od jakiego lvla mozna tworzyc potwora) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("nazwa potwora", pozycjagracza)
	doRemoveItem(item.uid, ile golden nugetsow ma to kosztowac)
    doPlayerSendTextMessage(cid, 5, "You are created Hydra and lose 1 gold nugget")


Dosyc prosty kod, prosze o wyrozumiale komentarze, dopiero zaczynam z jezykiem lua

WhitePrrince​
 
Odp: Tworzenie Potwora przez Gold Nugget

Skrypt ?wietny mo?na go jeszcze bardziej zoptymalizowa? naprawd?
10/10 ;D
 
Odp: Tworzenie Potwora przez Gold Nugget

Testowa?e? go ? Nie wywala debug?w klienta ? Bo skrypt tworzy potwora na sqm gdzie stoi gracz, a nie obok ;p
 
Odp: Tworzenie Potwora przez Gold Nugget

Kod:
--idea by WhitePrrince, REWRITED BY DUBLER--
local config = {
[1] = {50, "Dragon"},
[2] = {100, "Hydra"},
[3] = {150, "Demon"}
}
function onUse(cid, item)
local playerpos = {x=getCreaturePosition(cid).x,y=getCreaturePosition(cid).y + 1,z=getCreaturePosition(cid).z} y=1
for i = 1, #config do y=i
if (getPlayerLevel(cid) <= config[i][1]) then y=i+1 break end
end
if y >= 1 and y <= #config then
doCreateMonster(config[y][2], playerpos) doRemoveItem(item.uid, 1)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have created ".. config[y][2] .." and lose 1 gold nugget")
else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This one item is only for players with 150 or smaller lvl.") end
return true
end
podszlifuj angielski przy okazji google translate to nie najlepszy wyb?r

@down
pff... kazdy moze sobie taby pozmienia?, mog?e? przynajmniej podpowiedzie? ?eby local pozycjagracza = gerCreaturePosition(cid) by? przed ifem...
 
Ostatnia edycja:
Odp: Tworzenie Potwora przez Gold Nugget

Czemu tw?j skrypt ta dziwnie wygl?da?
Tw?j:
PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerLevel(cid) <= 50 ) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Dragon", pozycjagracza)
	doRemoveItem(item.uid, 1)
    doPlayerSendTextMessage(cid, 5, "You are created Dragon and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 100) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Hydra", pozycjagracza)
	doRemoveItem(item.uid, 1)
    doPlayerSendTextMessage(cid, 5, "You are created Hydra and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 150) then
		local pozycjagracza = getCreaturePosition(cid)
	doCreateMonster("Demon", pozycjagracza)
	doRemoveItem(item.uid, 1)
	doPlayerSendTextMessage(cid, 5, "You are created Demon and lose 1 gold nugget")
	else
			doPlayerSendTextMessage(cid, 4, "The one item is only for players from lvl smaller than 150 ")
	end
end
Poprawiony:
PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerLevel(cid) <= 50 ) then
	local pozycjagracza = getCreaturePosition(cid)
		doCreateMonster("Dragon", pozycjagracza)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, 5, "You are created Dragon and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 100) then
	local pozycjagracza = getCreaturePosition(cid)
		doCreateMonster("Hydra", pozycjagracza)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, 5, "You are created Hydra and lose 1 gold nugget")
	elseif(getPlayerLevel(cid) <= 150) then
	local pozycjagracza = getCreaturePosition(cid)
		doCreateMonster("Demon", pozycjagracza)
		doRemoveItem(item.uid, 1)
		doPlayerSendTextMessage(cid, 5, "You are created Demon and lose 1 gold nugget")
	else
		doPlayerSendTextMessage(cid, 4, "The one item is only for players from lvl smaller than 150 ")
	end
end
Wiem, ?e to niczego nie zmienia, ale ??dniej wygl?da. Skrypt podstawowy no ale c?? 7/10 za ch?ci.
 
Odp: Tworzenie Potwora przez Gold Nugget

Wiem, ?e to niczego nie zmienia, ale ??dniej wygl?da
To nie s? ?adne zawody na miss skryptu. Tak, czy tak - jeden chuj, wa?ne, ?e dzia?a.

Wydaj? mi si?, ?e skrypt b?dzie wywala? buga bo potw?r b?dzie si? summonowa? w miejscu, w kt?rym stoi gracz.
PHP:
local pozycjagracza = getCreaturePosition(cid)
Poprawi?bym to dla Ciebie, ale z racji i? jeste? nowy, to mo?esz si? nad tym pog??wkowa?, przynajmniej si? czego? nauczysz =d.

Pozdrawiam.
 
Odp: Tworzenie Potwora przez Gold Nugget

Hehe to samo pisa?em to post up, wystarczy zmieni?
PHP:
 local pozycjagracza = getCreaturePosition(cid)
na:
PHP:
local pos = getCreaturePosition(cid)
local pozycjagracza = {x = pos.x+1, y = pos.y+1, z = pos.z, stackpos = pos.stackpos}
Tak mi si? wydaj?, te? jestem pocz?tkuj?cy.
 
Odp: Tworzenie Potwora przez Gold Nugget

@Dubler:
PHP:
local playerpos = {x=getCreaturePosition(cid).x,y=getCreaturePosition(cid).y + 1,z=getCreaturePosition(cid).z} y=1
yy co ma znaczyc to y=1 ?

tutaj tak samo
PHP:
for i = 1, #config do y=i
if (getPlayerLevel(cid) <= config[i][1]) then y=i break end
end
? pozatym
PHP:
else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This one item is only for players with 150 or smaller lvl.") end
tutaj nie dales zeby wyciagalo ze zmiennej tylko zawsze wywali ze 150 lvl

:D testuj czasem skrypty zanim poprawisz innych...

@Topic; Naucz si? wykorzysytywa? p?tle oraz tablice ;s bardzo u?atwi ci to ?ycie.
 
Odp: Tworzenie Potwora przez Gold Nugget

@up
taki pro ogar powinien wiedzie? dlaczego ^^
jakbym tego nie testowa? to bym tak nie zrobi?...

a to dlatego ?e i jest lokaln? zmienn? dynamiczn? i po zako?czeniu p?tli for "znika", a trza zrobi? tak ?eby by?a globaln? dla reszty skryptu - st?d y :)
 
Ostatnia edycja:
Status
Zamknięty.
Back
Do góry