• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

exp ring - dzialajacy?

konolo22

Banned User
Joined
Jan 18, 2013
Messages
86
Reaction score
1
Ma ktoś prawidłowo działający skrypt na exp ring?
Bo wszystkie które znalazłem to albo nie działają albo crashują serwwa ;/

@edit

niżej podaje skrypt na ring..
lecz niestety on dodaje exp stage nie ważne czy jest założony czy też nie...

1. jak zrobić by działał wyłącznie po założeniu ? dodam do movements.. ale jak kod zmienić aby bez założenia nie działał?

2. jak zrobić by ring znikał gdy upłynie jego czas (obecnie jest że jak upłynie czas to sie ładuje crystal coinsami)
 
Last edited:
edit@
ten kod będzie łatwiej poprawić..
actions:
XML:
<action itemid="6300" event="script" value="YOURSCRIPTNAME.lua"/>
<action itemid="6301" event="script" value="YOURSECONDSCRIPTNAME.lua"/>

1-szy lua:
Lua:
local config = { 
    rate = 1.5,
} 

function onUse(cid, item, fromPosition, itemEx, toPosition)
if doPlayerRemoveMoney(cid, 20000) then
itemEx=itemid == 6300
doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1, true, cid) 
            doPlayerSetExperienceRate(cid, config.rate) 
            doTransformItem(item.uid,6301)
else
				doCreatureSay(cid, "You don't have enough money to Start Other exp condition !", TALKTYPE_ORANGE_1, true, cid)
end
			return true
		end
2-gi lua:
Lua:
function onUse(cid, item, slot) 
    if(item.itemid == 6301) then 
        doPlayerSetExperienceRate(cid, 1.0) 
           doCreatureSay(cid, "Your extra experience rate has ended.", 

TALKTYPE_ORANGE_1,true,cid) 
            doTransformItem(item.uid,6300) 
    end 
end

no ok wszystko fajnie niby działa....ale nie jako ring...tylko poprostu dodaje expa...a później można nawet wyrzucić tego ringa a exp i tak jezt podniesiony ;/
 
Last edited:
Jakiś błąd w konsoli? jaki silnik?

@down, faktycznie zmienia item w ten sam, nie wiem po co w ogóle robić "doTransformItem(item.uid, 7708)", jak można to w items.xml zrobić.
 
Last edited:
<attribute key="stopduration" value="1"/>

lol to potrzebne jest? jak przy movemencie zmieni item i tak to ten nowy chyba automatycznie już się nie "starzeje"

Lua:
if(item.itemid == 7708) then
		doPlayerSetExperienceRate(cid, 1.0)
		   doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has ended.")
			doTransformItem(item.uid, 7708)

wytłumacz mi po co item zmienia w ten sam item?XDD

to samo tutaj:
Lua:
if(item.itemid == 7708) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.")
		   doPlayerSetExperienceRate(cid, config.rate)
			doTransformItem(item.uid, 7708)
				return true
	end


widać, że skrypt z TNET'a

- - - Updated - - -

wgl teraz sobie uświadomiłem, że jeśli zequipiujesz item, a następnie go znowu zmienisz w inny to nie działać będzie efekt, wywal te transformy
 
ok dałem inny kod, będzie łatwiejszy do poprawy...
jak zrobić by ring działał tylko i wyłącznie wtedy jak jest założony... ?
bo na chwilę obecną działa to tak że po kliknięciu na ringa = dodawany jest większy exp stage....
ale czy ring jest założony czy też leży w depo...to nie gra roli..można i bez ringa chodzić a exp będzie większy już....
jak to naprawić ?

chce aby działał tylko i wyłącznie po założoniu...
a po skończeniu jego czasu to żeby znikał...bo tu jest że konczy się czas i się kupuje za cc dalszy czas...a wolałbym aby ring całkiem znikał..
 
po chuj zmieniasz movementa na actiona lol, zastanów się, jak może action działać? to jedynie by działało jeśli by jakaś pętla non stop sprawdzała czy gracz ma ten ring przy sobie lol

zostań przy movemencie.
 
ale to jest całkiem nowy skrypt :p tamten jakiś nieudany był....a ten działa (wow) tylko że tak jak napisałem ;/ niezależnie czy ring założony czy nie ;/

jak to przerobić?
dodam do movements go itd...ale przecież jakieś linijki trzeba wykasować aby nie działał bez założenia?
jak to zmienić ?
 
a tam ots odrazu kawałek kodu Ci ciężko edytować? -.-

local config = {
rate = 2.0
}

function onDeEquip(cid, item, slot)
if(item.itemid == 7708) then
doPlayerSetExperienceRate(cid, 1.0)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has ended.")
doTransformItem(item.uid, 7697)
end
end

function onEquip(cid, item, slot)

if(item.itemid == 7697) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.")
doPlayerSetExperienceRate(cid, config.rate)
doTransformItem(item.uid, 7708)
return true
end
end

movemoents.xml

<movevent type="Equip" itemid="7697" slot="ring" event="function" value="onEquipItem"/>
<movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/>
 
dodalem to co napisales, skrypt w movements i te linijki w movements.xml
ale niestety po zalozeniu ringa nic sie nie dzieje ;/
 
Last edited:
Back
Top