geralex | Дата: Воскресенье, 08 Мая 2011, 17:54 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Итак, простенький скрипт добычи руды. В данном случае в скрипте присутствует привязка к тому что должна одета быть одна шмотка (это может быть перчатка, кирка и т.п.) В примере приведен простой скрипт, каждый может его модифицировать, сделать рандом по добычи ресурсов, привязку к линейки опыта по добычи руды, привязку к уровню владения данным навыком, назначить каждой руде - каждый свой камень добычи, вообщем все что угодно, насколько хватает фантазии=) Выкладываю как и по предыдущим постам к двум версиям программ. В случае если будут ошибки в версии 1.083 - отпишите, так как немного позабыл синтаксис написания под 1.083 =) Скрипт для RC Standart версии 1.083 Code // RC1 Sample Project // Date/Time: 17:51:29 on 08.05.2011 // By Администратор on VERITAS
Function Main()
Player = Actor() Rock = ContextActor() speed = Attribute(Player, "Speed") mininglvl = Attribute(Player, "Mining") miningxp = Attribute(Player, "miningxp") maxxp = MaxAttribute(Player, "miningxp") newlvl = mininglvl $+ 1
If ActorGlobal(Rock, 0) == 1 Output(Player, "This rock currently has no iron ore.") Return() Endif
If HasItem(Player, "Mining Gloves", 1) time = rand(mininglvl $* 60,mininglvl $* 100) wait = 10000 $- time CreateEmitter(Player, "mining", 10, wait) Output(Player, "You start mining for iron...") SetAttribute(Player, "Speed", 0) DoEvents(wait) SetAttribute(Player, "Speed", speed) chance = Rand(1,mininglvl $+ 3) If chance == 1 Output(Player, "You failed to get iron ore.") Return() Endif GiveItem(Player, "Iron Ore", 1) Output(Player, "You recieved iron ore.") If mininglvl < 100 SetAttribute(Player, "miningxp", miningxp $+ 20) Endif If miningxp < maxxp
//ActorGlobal(Rock, 0)= 1 //DoEvents(7500) //ActorGlobal(Rock, 0) = 0
Return() Endif SetAttribute(Player, "Mining", mininglvl $+ 1) SetMaxAttribute(Player, "miningxp", maxxp $+ 20) SetAttribute(Player, "miningxp", maxxp-miningxp $+ 20) Output(Player, "You leveled up in Mining! You are now level " $+ newlvl $+ "!") Else Output(Player, "You don't have mining gloves.") Return() Endif Return() End Function Скрипт для RC Standart версий 1.20+ Code Using "RC_Core.rcm" ; RC1 Sample Project ; Date/Time: 16:46:19 on 08.05.2011 ; By Администратор on VERITAS
Function Main()
Player = Actor() Rock = ContextActor() speed = Attribute(Player, "Speed") mininglvl = Attribute(Player, "Mining") miningxp = Attribute(Player, "miningxp") maxxp = MaxAttribute(Player, "miningxp") newlvl = mininglvl + 1
If ActorGlobal(Rock, 0)= 1 Output(Player, "This rock currently has no iron ore.") Return Endif
If HasItem(Player, "Mining Gloves", 1) time = rand(mininglvl*60,mininglvl*100) wait = 10000-time CreateEmitter(Player, "mining", 10, wait) Output(Player, "You start mining for iron...") SetAttribute(Player, "Speed", 0) DoEvents(wait) SetAttribute(Player, "Speed", speed) chance = Rand(1,mininglvl+3) If chance = 1 Output(Player, "You failed to get iron ore.") Return Endif GiveItem(Player, "Iron Ore", 1) Output(Player, "You recieved iron ore.") If mininglvl <100 SetAttribute(Player, "miningxp", miningxp + 20) Endif If miningxp <maxxp
;ActorGlobal(Rock, 0)= 1 ;DoEvents(7500) ;ActorGlobal(Rock, 0) = 0
Return Endif SetAttribute(Player, "Mining", mininglvl + 1) SetMaxAttribute(Player, "miningxp", maxxp + 20) SetAttribute(Player, "miningxp", maxxp-miningxp+20) Output(Player, "You leveled up in Mining! You are now level " + newlvl + "!") Else Output(Player, "You don't have mining gloves.") Return Endif Return End Function
Сообщение отредактировал geralex - Воскресенье, 08 Мая 2011, 17:54 |
|
| |