What's new

Actions [KONKURS] Skill Gems

Status
Not open for further replies.

Sheyki

Advanced User
Joined
Jan 23, 2011
Messages
188
Reaction score
8
Witam! Mam dla was dzisiaj "system", w kt?rym kryszta?y dodaj? nam skill. Jest 40% szans, ?e si? uda i 60%, ?e gem si? rozpadnie.

Code:
function onUse(cid, item, frompos, itemEx, topos)
local config = {
                --[itemid] = {skill = rodzajSkilla, efekt = magicznyEfekt, ilosc = iloscUderzen},
                [2153] = {skill = SKILL_CLUB, efekt = CONST_ME_SKULLVERTICAL, ilosc = math.random(50,200)},
                [2154] = {skill = SKILL_DISTANCE, efekt = CONST_ME_SKULLHORIZONTAL, ilosc = math.random(50,200)},
                [2155] = {skill = SKILL_AXE, efekt = CONST_ME_MAGIC_GREEN, ilosc = math.random(50,200)},
                [2156] = {skill = SKILL_SWORD, efekt = CONST_ME_MAGIC_RED, ilosc = math.random(50,200)},
                [2158] = {skill = SKILL_SHIELD, efekt = CONST_ME_MAGIC_BLUE, ilosc = math.random(50,200)}
                }
local gem = config[item.itemid]
local tak = "You train your soul!"
local nie = "Gem was broke."
	if math.random(1,10) <= 4 then
		doPlayerAddSkillTry(cid, gem.skill, gem.ilosc)
		doSendMagicEffect(getPlayerPosition(cid), gem.efekt)
		doRemoveItem(item.uid, 1)
		doCreatureSay(cid, tak, TALKTYPE_ORANGE_1)
	else
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		doRemoveItem(item.uid, 1)
		doCreatureSay(cid, nie, TALKTYPE_ORANGE_1)
	end
return true
end

Zabraniam kopiowania zawarto?ci na inne fora/serwisy.

Notka moderatorska:
+10 pkt do konkursu!



@Down
Usuwaj?c zmienne (tak, nie, gem) nie czyni skryptu kr?tszym. A tabela jest rozplanowana. Tym bardziej, ?e to skrypt wykopany z mojej skromnej biblioteki, stawiam, ?e jeden z pierwszych.
 

Arkam

Forum friend
Joined
Dec 20, 2008
Messages
1,980
Reaction score
180
Odp: [KONKURS] Skill Gems

Jezeli juz wysililes sie na napisanie tablicy to moglbys ja rozplanowac... reszta kodu tez nie zachwyca, gdybys tylko chcial spokojnie mozna skrocic ten skrypt przynajmniej o polowe =/
 

zakius

Senior User
Joined
May 25, 2008
Messages
869
Reaction score
52
Odp: [KONKURS] Skill Gems

Code:
local config = 
{
	gems = 
	{
		--[itemid] = {skill = rodzajSkilla, effect = magicznyeffect, number = numberUderzen},
		[2153] = {skill = SKILL_CLUB, effect = CONST_ME_SKULLVERTICAL, number = {50,200}},
		[2154] = {skill = SKILL_DISTANCE, effect = CONST_ME_SKULLHORIZONTAL, number = {50,200}},
		[2155] = {skill = SKILL_AXE, effect = CONST_ME_MAGIC_GREEN, number = {50,200}},
		[2156] = {skill = SKILL_SWORD, effect = CONST_ME_MAGIC_RED, number = {50,200}},
		[2158] = {skill = SKILL_SHIELD, effect = CONST_ME_MAGIC_BLUE, number = {50,200}}
	},
	success = "You train your soul!",
	failure = "Gem broke.",
	chance = 40
}

function onUse(cid, item, frompos, itemEx, topos)
	local gem = config.gems[item.itemid]
	if math.random(1,100) <= config.chance then
		doPlayerAddSkillTry(cid, gem.skill, math.random(gem.number[1], gem.number[2])
		doSendMagicEffect(getPlayerPosition(cid), gem.effect)
		doCreatureSay(cid, tak, TALKTYPE_ORANGE_1)
	else
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		doCreatureSay(cid, nie, TALKTYPE_ORANGE_1)
	end
	doRemoveItem(item.uid, 1)
return true
end
nie testowane, oszcz?dza troch? czasu procesora
mi?dzy innymi ie redefiniuje tablicy przy ka?dym wywo?aniu, na ka?de wywo??nie mamy tylko 2 math.random, a nie 6

no ale niech b?dzie






also: jaki konkurs? o_O
 
Status
Not open for further replies.
Top