• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Druga promocja Skrypt Potrzebny

Jensej

Member
Joined
Feb 28, 2009
Messages
807
Reaction score
8
Witam
POtrzebuje skryptu na super/drugą promocję.
Szukałem ale jednak nic działającego nie znalazłem.
Jakby ktos mogł podać jakieś instrukcje+ skrypt?
Dam Rep++

Uzywałem tego skryptu, ale nie wiem dokładnie jak go dodać.Mam TFS (0.3.4)
Code:
  function onSay(cid, words, param)
local cfg = { level = 100, vocs = { 5, 6, 7, 8 }, storage = 9133, cost = 100000, msgtype = MESSAGE_STATUS_CONSOLE_BLUE }
    if getPlayerStorageValue(cid, cfg.storage) == -1 then
        if getPlayerLevel(cid) >= cfg.level then
            if isInArray(cfg.vocs, getPlayerVocation(cid)) == TRUE then
                if cfg.cost ~= 0 then
                    if doPlayerRemoveMoney(cid, cfg.cost) == TRUE then
                        setPlayerPromotionLevel(cid, getPlayerPromotionLevel(cid) + 1)
                        doPlayerSendTextMessage(cid, cfg.msgtype, "You have been promoted to ".. getVocationInfo(getPlayerVocation(cid)).name ..".")
                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
                        setPlayerStorageValue(cid, cfg.storage, 1)
                    else
                        doPlayerSendTextMessage(cid, cfg.msgtype, "You need ".. cfg.cost .." gold coins to purchase the second promotion.")
                    end
                end
            else
                doPlayerSendTextMessage(cid, cfg.msgtype, "Only players with first promotion may get the second promotion.")
            end
        else
            doPlayerSendTextMessage(cid, cfg.msgtype, "Only characters of level ".. cfg.level .." or above, may purchase the second promotion.")
        end
    else
        doPlayerSendTextMessage(cid, cfg.msgtype, "You have already purchased the second promotion.")
    end
    return FALSE
end
Code:
premiumForPromotion = "no"

Pozdrawiam
 
Funkcja onSay wskazuje że należy dodać skrypt do talkactions.xml
chyba wiesz jak to zrobić ale jeśli nie to wyjaśnię.

wklejasz:
Code:
	<talkaction words="[COLOR="Red"]!promocja[/COLOR]" event="script" value="promocja.lua"/>

zamiast !promocja ustawiasz jaka komenda gracze maja kupować nową promocję.

ale dodanie samego skryptu to nie wszystko ponieważ musisz dodać promocje do vocations.xml (na samym dole masz podany wzór nowych promocji [epic], zmieniasz do własnych potrzeb i nie zapomnij usunąć komentarzy.

Zamiast skryptu możesz łatwo przerobić NPC od promocji wzorując się na kupnie 1 promocji.

Zapomniałem dodać że powinieneś dodać nową promocję do lib->function.lua

o tak (dla każdej z voc):
Code:
function isSorcerer(cid)
	if(isPlayer(cid) == FALSE) then
		debugPrint("isSorcerer: Player not found.")
		return false
	end

	return (isInArray({1,5,[COLOR="Red"]9[/COLOR]}, getPlayerVocation(cid)) == TRUE)
end

Dzięki temu będziesz mógł używać czarów, przedmiotów itd. przeznaczonych dla danej voc.


To chyba wszystko jeśli o czymś zapomniałem lub pomyliłem się to niech mnie ktoś poprawi.
 
Last edited:
Ok all dodałem, dziala, Tylko Teraz problem
Code:
[Warning - Vocations::getVocation] Vocation 4294967295 not found.
[Warning - Vocations::getVocation] Vocation 4294967295 not found.

Jak do naprawic? bo zamiast You are Super Druid. TO jest napisane You are.
 
dodałem profesje w vocations.xml i w lib/funcions. Gdzieś jeszcze?
 
Są na samym dole

Code:
<?xml version="1.0" encoding="UTF-8"?>
<vocations>
	<vocation id="0" name="None" description="none" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="1000" soulmax="100" gainsoulticks="120" fromvoc="0">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> 
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="2.0"/>
		<skill id="2" multiplier="2.0"/>
		<skill id="3" multiplier="2.0"/>
		<skill id="4" multiplier="2.0"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="1" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.1" attackspeed="300" soulmax="100" gainsoulticks="120" fromvoc="1">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> 
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="2.0"/>
		<skill id="2" multiplier="2.0"/>
		<skill id="3" multiplier="2.0"/>
		<skill id="4" multiplier="2.0"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="2" name="Druid" description="a druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.1" attackspeed="300" soulmax="100" gainsoulticks="120" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="1.8"/>
		<skill id="2" multiplier="1.8"/>
		<skill id="3" multiplier="1.8"/>
		<skill id="4" multiplier="1.8"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="3" name="Paladin" description="a paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.6" attackspeed="300" soulmax="100" gainsoulticks="120" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.2"/>
		<skill id="1" multiplier="1.2"/>
		<skill id="2" multiplier="1.2"/>
		<skill id="3" multiplier="1.2"/>
		<skill id="4" multiplier="1.1"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="4" name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="4.0" attackspeed="300" soulmax="100" gainsoulticks="120" fromvoc="4">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="5" name="Master Sorcerer" description="a master sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="1">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="2.0"/>
		<skill id="2" multiplier="2.0"/>
		<skill id="3" multiplier="2.0"/>
		<skill id="4" multiplier="2.0"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="6" name="Elder Druid" description="an elder druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="1.8"/>
		<skill id="2" multiplier="1.8"/>
		<skill id="3" multiplier="1.8"/>
		<skill id="4" multiplier="1.8"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="7" name="Royal Paladin" description="a royal paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="1.6" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.1" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.2"/>
		<skill id="1" multiplier="1.2"/>
		<skill id="2" multiplier="1.2"/>
		<skill id="3" multiplier="1.2"/>
		<skill id="4" multiplier="1.1"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="8" name="Elite Knight" description="an elite knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.2" distDamage="1.0" defense="1.4" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="9" name="Slayer Sorcerer" description="a Slayer Sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="1">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="2.0"/>
		<skill id="2" multiplier="2.0"/>
		<skill id="3" multiplier="2.0"/>
		<skill id="4" multiplier="2.0"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="10" name="Slayer Druid" description="a Slayer Druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="1.1" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.5"/>
		<skill id="1" multiplier="1.8"/>
		<skill id="2" multiplier="1.8"/>
		<skill id="3" multiplier="1.8"/>
		<skill id="4" multiplier="1.8"/>
		<skill id="5" multiplier="1.5"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="11" name="Slayer Paladin" description="a Slayer Paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="1.6" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.2" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.2"/>
		<skill id="1" multiplier="1.2"/>
		<skill id="2" multiplier="1.2"/>
		<skill id="3" multiplier="1.2"/>
		<skill id="4" multiplier="1.1"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="12" name="Slayer Knight" description="a Slayer Knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.3" distDamage="1.0" defense="1.5" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="16" name="Super Knight" description="a Super Knight" gaincap="25" gainhp="25" gainmana="5" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.9" distDamage="1.1" defense="1.8" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="15" name="Super Paladin" description="a Super Paladin" gaincap="25" gainhp="20" gainmana="15" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.5" distDamage="1.1" defense="1.6" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="14" name="Super Druid" description="a Super Druid" gaincap="25" gainhp="10" gainmana="25" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="0.9" distDamage="1.1" defense="1.1" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
	<vocation id="13" name="Super Sorcerer" description="a Super Sorcerer" gaincap="25" gainhp="10" gainmana="25" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="0.9" distDamage="1.1" defense="1.1" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>
</vocations>
 
No i jednak źle ustawiłeś (fromvoc="4") oznacza to że tą promocje będzie można nabyć z voc 4 czyli knighta widzę że nie wiesz co to znaczy i wszędzie trochę bezmyślnie wpisałeś "4".

Podam mały wzór (będę wzorował się promocjami dla knighta):

Knight bez promocji

Code:
<vocation [COLOR="Red"]id="4"[/COLOR] name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="4.0" attackspeed="300" soulmax="100" gainsoulticks="120" [COLOR="Red"]fromvoc="4"[/COLOR]>
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>

knight z pierwszą promocja (id 4+4=8) zawsze kolejne id dla danej profesji będzie o 4 większe

Code:
<vocation [COLOR="SeaGreen"]id="8"[/COLOR] name="Elite Knight" description="an elite knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" [COLOR="Red"]fromvoc="4"[/COLOR]>
		<formula meleeDamage="1.2" distDamage="1.0" defense="1.4" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>

knight z drugą promocją (8+4=12)

Code:
<vocation [COLOR="Gray"]id="12"[/COLOR] name="Slayer Knight" description="a Slayer Knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" [COLOR="Green"]fromvoc="8"[/COLOR]>
		<formula meleeDamage="1.3" distDamage="1.0" defense="1.5" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>

knight z trzecią promocją (12+4=16)

Code:
	<vocation [COLOR="Cyan"]id="16"[/COLOR] name="Super Knight" description="a Super Knight" gaincap="25" gainhp="25" gainmana="5" gainhpticks="2" gainhpamount="350" gainmanaticks="2" gainmanaamount="350" manamultiplier="4.0" attackspeed="300" soulmax="200" gainsoulticks="15" [COLOR="Gray"]fromvoc="12"[/COLOR]>
		<formula meleeDamage="1.9" distDamage="1.1" defense="1.8" armor="1.0"/>
		<skill id="0" multiplier="1.1"/>
		<skill id="1" multiplier="1.1"/>
		<skill id="2" multiplier="1.1"/>
		<skill id="3" multiplier="1.1"/>
		<skill id="4" multiplier="1.4"/>
		<skill id="5" multiplier="1.1"/>
		<skill id="6" multiplier="1.1"/>
	</vocation>

Pokazałem tu jak zrobić kolejne promocje dla danej profesji mam nadzieję że zrozumiesz.
 
a jak to zrobić zeby ominąć tego Slayer Knight? zeby odrazu był Super Knight jako druga promocja? Jeszcze jedno pytanko da się jakoś dobrze przenieść Ots z Silnika 0.3.4 na 0.3.5? Mógłbys napisać na gg 8474856
 
Żeby ominąć Slayer knighta wystarczy u Super knighta zmienić "id" i "fromvoc" na to podane u Slayer knighta. Postaraj się zrozumieć jak co działa ponieważ bez tego nic nie zrobisz.

Czasem licząc na ludzi z forum że Ci pomogą można się ostro przejechać więc lepiej liczyć na własną wiedzę :D
 
Sprawdź w bazie danych jaka masz voc i promocję i napisz

BTW musisz na nowej postaci kupić promocje ewentualnie na tej co kupiłeś złą poprawić w bazie danych bo pewnie masz nieprawidłową promocje wpisaną.

Jak coś możesz to sprawdzić w Players -> vocations i Players -> promotion ustaw na postaci vocation (ta co była czyli 1,2,3 lub 4)
i promotion 0 i kup je od nowa następnie wejdz do bazy i podaj jaki masz voc i promotion.
 
Napisałem Ci na gg że powinieneś ogarnąć to na tfs 0.3.5pl1 bo masz vocations.xml pod 0.3.4 silnik też a mimo to mówisz że działa Ci na 8.5 i skrypt na promocje również jest na 8.5.
 
Back
Top