Project1

标题: 怎么用代码获得多数道具 [打印本页]

作者: 无名之狼    时间: 2017-11-5 21:36
标题: 怎么用代码获得多数道具
获得单个道具的代码懂了,但是感觉一个道具没必要用到代码,直接新建增减物品就好了,由于是代码小白,只能来求教各位大神了
作者: 芯☆淡茹水    时间: 2017-11-5 22:04
1+1+1+1+1+1......不是就是多数了?!
$gameParty.gainItem($dataItems[1],10);
$gameParty.gainItem($dataItems[5],7);
$gameParty.gainItem($dataWeapons[12],1);
$gameParty.gainItem($dataArmors[2],3);
.
.
多个一起执行,就是多数了。
作者: 无名之狼    时间: 2017-11-5 22:06
本帖最后由 无名之狼 于 2017-11-5 22:12 编辑
芯☆淡茹水 发表于 2017-11-5 22:04
1+1+1+1+1+1......不是就是多数了?!
$gameParty.gainItem($dataItems[1],10);
$gameParty.gainItem($data ...

我是想要类似VX的方法,在VX里有这么一个简单的代码,但是在MV里不能通用
JAVASCRIPT 代码复制
  1. (1..16).each{ |i|
  2. $game_party.gain_item($data_items[i],99)}


作者: yang1zhi    时间: 2017-11-5 22:09
$gameParty.duishudaoju()
把他们放进一个函数里面就只用一条代码就执行了
Game_Party.prototype.duishudaoju = function() {
$gameParty.gainItem($dataItems[1],10);
$gameParty.gainItem($dataItems[5],7);
$gameParty.gainItem($dataWeapons[12],1);
$gameParty.gainItem($dataArmors[2],3);
}
作者: 芯☆淡茹水    时间: 2017-11-5 22:09
本帖最后由 芯☆淡茹水 于 2017-11-5 22:23 编辑

JAVASCRIPT 代码复制
  1. $dataItems.forEach(function(item) {if (!!item) $gameParty.gainItem(item,99);});

奇怪,还是要用代码框才行

作者: 无名之狼    时间: 2017-11-5 22:18
芯☆淡茹水 发表于 2017-11-5 22:09
$dataItems.forEach(fonction(item){if (!!item) $gameParty.gainItem(item,99);});

fonc?确定不是func?
作者: 无名之狼    时间: 2017-11-5 22:19
yang1zhi 发表于 2017-11-5 22:09
$gameParty.duishudaoju()
把他们放进一个函数里面就只用一条代码就执行了
Game_Party.prototype.duishudao ...

MV没有像3L我说的那个在VX里这么简单的易懂的方法了么
作者: 无名之狼    时间: 2017-11-5 22:22
芯☆淡茹水 发表于 2017-11-5 22:09
$dataItems.forEach(fonction(item){if (!!item) $gameParty.gainItem(item,99);});

这个应该不能指定哪个道具吧,没见有定义道具ID
作者: yang1zhi    时间: 2017-11-5 22:23
无名之狼 发表于 2017-11-5 22:19
MV没有像3L我说的那个在VX里这么简单的易懂的方法了么

那是循环,6楼那就是一种
还有
For 循环

For/In 循环

While 循环


作者: 无名之狼    时间: 2017-11-5 22:27
yang1zhi 发表于 2017-11-5 22:23
那是循环,6楼那就是一种
还有
For 循环

3L那个VX的代码是可以指定道具ID的,比如那个代码里面指定了1-16号ID每一个物品99个,MV里的话又该怎么写
作者: 芯☆淡茹水    时间: 2017-11-5 22:33
无名之狼 发表于 2017-11-5 22:22
这个应该不能指定哪个道具吧,没见有定义道具ID

那么这个也许能行
  1. var data = $dataItems.slice(1,16);
  2. data.forEach(function(item) {if (!!item) $gameParty.gainItem(item,99);});
复制代码

作者: 梦想家大魔王    时间: 2017-11-5 22:41
一种方法:
JAVASCRIPT 代码复制
  1. var Things = [1, 2, 3, 7, 8, 9, 100];
  2. for (var i = Things.length - 1; i >= 0; i--) {
  3.     $gameParty.gainItem($dataItems[Things[i]], 10);
  4. }



另一种方法:
JAVASCRIPT 代码复制
  1. [1, 2, 3, 7, 8, 9, 100].forEach(function(i) {
  2.     $gameParty.gainItem($dataItems[i], 10);
  3. });




作者: 无名之狼    时间: 2017-11-5 22:45
梦想家大魔王 发表于 2017-11-5 22:41
一种方法:var Things = [1, 2, 3, 7, 8, 9, 100];
for (var i = Things.length - 1; i >= 0; i--) {
    $ ...

你的第二种方法和我知道的那个VX的像了,但是貌似ID要1-100自己打?而且还要一个一逗号.....
作者: yang1zhi    时间: 2017-11-5 23:13
for (i=1;i<17;i++) {
$gameParty.gainItem($dataItems[i],99);
}
作者: 汪汪    时间: 2017-11-5 23:13
for(var i =1; i<=100;i++){
      $dataItems && $gameParty.gainItem($dataItems, 10)
}





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1