したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

スクリプトの雑談&質問&制作スレ

333 ◆yPNC7oQE.I:2014/09/07(日) 22:37:38 ID:EQN8EgHg0
>>331
deathHook(a,b)
a、bをPlayer、 Pigに変えても中身は同じで意味がない
(変数の名前を変えただけ)
いろいろおかしいが、主な原因はx、y、z、radiusの変数の宣言が無いことだろうね
↓宣言してないが、こんな感じに書く
function deathHook(player,entity){
if(player==getPlayerEnt()){
if(Entity.getEntityTypeId(entity)==12){
Level.spawnMob(Entity.getX(entity),Entity.getY(entity),Entity.getZ(entity),36,mob/pigzombie.png);
}else if(Entity.getEntityTypeId(entity)==33){
explode(Entity.getX(entity),Entity.getY(entity),Entity.getZ(entity),3);
}
}
}

334 ◆yPNC7oQE.I:2014/09/07(日) 22:40:40 ID:EQN8EgHg0
>>332
テクスチャは実装されてるようだよ
両方ブロックランチャーの作者のページっぽい

335名無しさん:2014/09/08(月) 15:58:53 ID:14SWnAus0
>>333

ありがとうございます
変数が必要なのか・・・
本当にいろいろおかしかったですね・・・
いい勉強になりました

336名無しさん:2014/09/08(月) 16:00:07 ID:14SWnAus0
>>335

間違えました
>>333 でした

337名無しさん:2014/09/09(火) 17:49:31 ID:MhCWe.Ik0
ModPE.setItem(500, "ruby", 0, "explode ruby");
ModPE.addCraftRecipe(500,1,0,[331,0,331,0,331,0,331,0,331,0,331,0]);

function useItem(x,y,z,itemId,blockId,side){
if(itemId==500){
explode(x,y,z,3);
}
}
ルビー追加してどっかタップで爆発するmod作ったんだが
レシピ追加でつまづいた

338名無しさん:2014/09/09(火) 19:08:57 ID:MhCWe.Ik0
なんか質問しまくりですみませんな
煩わしかったら言ってください...

339 ◆yPNC7oQE.I:2014/09/10(水) 14:58:53 ID:EFOJEXl60
>>337
addCraftRecipeはModPEからItemに移動したみたい
あと、ID・個数・ダメージ値で1セットだね
Item.addCraftRecipe(500,1,0,[331,1,0,331,1,0,331,1,0,331,1,0,331,1,0,331,1,0]);

少なくとも俺は自己満足のためにやってる

340 ◆yPNC7oQE.I:2014/09/10(水) 15:00:53 ID:EFOJEXl60
あ、それと
爆発位置がブロックの角だからそれぞれ+0.5するといいと思う

341名無しさん:2014/09/10(水) 16:24:43 ID:MhCWe.Ik0
>>339
ありがとうです
海外wiki見たら
Item.addCraftRecipe(500,1,0, [331,6,0]);
でもいいらしいですな

342名無しさん:2014/09/10(水) 16:25:12 ID:WmDSKhJM0
クラフトレシピは Item.addShapedRecip の方がいい気がしますけど。

343 ◆yPNC7oQE.I:2014/09/12(金) 17:35:17 ID:jePL5Avw0
getBiomeとgetBiomeNameの引数について何か情報ないですか?
動いた人いたら教えてください(´・ω・`)

344名無しさん:2014/09/12(金) 18:38:48 ID:tawtr9.I0
>>343
今試してみたけど全部海として認識されちゃうみたい
http://imgur.com/uTMVhaK.png

345名無しさん:2014/09/13(土) 10:59:31 ID:te5ROX2g0
>>343
intはプレイヤーのx値とz値を入れればいいらしいですよ。

346名無しさん:2014/09/13(土) 12:06:42 ID:tawtr9.I0
>>345
おっ、動作したわ
http://imgur.com/tNOL7iO.png

347 ◆yPNC7oQE.I:2014/09/15(月) 17:57:32 ID:K1CGkWjc0
>>345
ありがとうございます\(^o^)/
引数二個でしたか(^^;

348名無しさん:2014/09/28(日) 20:20:50 ID:JqNxhKrM0
http://www.minecraftforum.net/forums/minecraft-pocket-edition/mcpe-mods-tools/1987484-too-many-items-mod
これってどういうしくみですか?

349名無しさん:2014/09/29(月) 00:25:23 ID:IaMxdmPQ0
>>348
apkをインストールしてブロックランチャーのManage addonsをオンにすれば完了です。
再起動してワールドを開けばTMIのボタンが出るようになりますよ。

350名無しさん:2014/09/29(月) 08:13:40 ID:vRKLUzgM0
1,2年mcpeやってたんだけど飽きてきてしまった
一応知識もたくさん。
誰か助けて

351名無しさん:2014/09/29(月) 16:20:30 ID:MhCWe.Ik0
>>350
スレチじゃね

352名無しさん:2014/10/06(月) 19:33:04 ID:VpLQqSas0
MODの質問はここでいいですか

Minebotを導入して正規の手順で入るのを待ったのですが
一向に来ません

samsung/SC-02F/4.3/LR
最新verです

現段階で問題なく使用できている方はいませんか

追記
最初の二回は入ってきましたがMinebotが強制終了しました

353名無しさん:2014/10/06(月) 21:27:27 ID:tawtr9.I0
>>352
minebotはスクリプトModじゃないからスレチな気もするけど…
自分は普通に使えてます
ただ入ってくるのは少し遅い時もありますね
そういう時はアプリを一旦落としてからもう一度やってます

それでも無理ならSAMSUNGのKNOXが関係あるのかな…

354名無しさん:2014/10/06(月) 21:31:41 ID:VpLQqSas0
>>353
スレチでしたかすみません
回答ありがとうございます

355名無しさん:2014/10/06(月) 21:31:46 ID:tawtr9.I0
>>353
言い忘れた
Local server multiplayerをオンにしないと出てきません

356ryo:2014/10/11(土) 09:44:36 ID:E95POeuQ0
自分でMobを作っています。
lLeg.setTextureOffset(?,?, true);
lLeg.addBox(?, ?,?, 2, 3, 2);
「?」に入る数字をもうちょっと詳しく教えてもらえますか?よろしくお願いします

357nokonokonoko ◆EVNMMniAjo:2014/10/12(日) 19:24:42 ID:m46rYNec0
ModPE.joinServer("server ip","server port");
を使ってコマンドを使うといつでもサーバーに参加できるmodを作っているのですがなかなかうまくできません
誰か助言をお願いします....
https://www.dropbox.com/s/u532ahlugats143/server%20join.js?dl=0
modurlです

358 ◆yPNC7oQE.I:2014/10/14(火) 19:00:18 ID:lMEXA5JU0
>>356
引数の名前から考えるとテクスチャ内のどこを使うか(xとy)と、
mobの中心からの、足の起点?の相対位置
予想だけど・・・

359 ◆yPNC7oQE.I:2014/10/14(火) 19:13:18 ID:lMEXA5JU0
>>357
text1へ代入されてない(どうでもいい

if文のcmd[2]との比較範囲が変じゃないか?
あと、

360 ◆yPNC7oQE.I:2014/10/14(火) 19:15:13 ID:lMEXA5JU0
続き

あと、ModPE.joinServerが単体で動くか確認してみて

361名無しさん:2014/10/14(火) 20:37:33 ID:NIBVQuNo0
>>359-360
cmd[2]の比較範囲はうろ覚えでやったのであとで書き直すつもりでした

単独で実行してもエラーになりますね。。。
http://i.imgur.com/jcRFv3q.jpg
対応していないのかな?

362名無しさん:2014/10/17(金) 17:51:23 ID:fl6XWjLYO
超初心者です。
新しくMODを開発したいです。
スプリクトからのテクスチャの指定の仕方を教えてください。

363yootako:2014/10/21(火) 17:49:22 ID:JqNxhKrM0
ミニマップmodって断面図じゃないですか
だから上が空気ブロックに触れてる一番
座標が高いブロックを表示っていう
スプリクトをかきたせはいい感じになると
思うんですけど 思うだけですか?
スプリクト作れないんで作ってくれたらうれしいてす。

364 ◆yPNC7oQE.I:2014/10/27(月) 16:56:31 ID:6s4NH7U60
>>362
(今さらだけど)解決した?
>>307のリファレンスを見るといいよ

365 ◆yPNC7oQE.I:2014/10/27(月) 17:02:55 ID:6s4NH7U60
>>363
付け焼き刃で書き換えてみたが、マップの更新が20秒間隔ぐらいになって使い物にならなかった
(スレチだけど他にスレないからいいよね?w)

366コウ:2014/11/06(木) 21:40:29 ID:HJjb55Eg0
致命的なバグ発見した
スーパーフラットでなんか普通のワールドの断面の塊?みたいなやつが突然出てきた。
今までこんな事なかったのに・・・
致命的だからとりあえず報告しといた。

367名無しさん:2014/11/21(金) 13:50:51 ID:h/X0CBo20
1マスほったら奥の9マスを掘るようにしたいんですが、どうすればいいのでしょう?

368名無しさん:2014/12/04(木) 09:17:58 ID:FaYwHNQA0
おあげ

369nokonokonoko ◆EVNMMniAjo:2014/12/10(水) 18:30:04 ID:jNhazLp.0
ModPE.overrideTexture(a,b);
の使い方を教えてください。
function wikiを見てもさっぱり
なんかサイトからテクスチャ画像を取ってくるまではわかったのですがもう片方のほうが意味わかんねです

370nokonokonoko ◆EVNMMniAjo:2014/12/10(水) 18:49:18 ID:jNhazLp.0
>>369はあきらめた
松明みたいにブロックの中を通れるようになれるものってあります?
当たり判定を無くすような

371nokonokonoko ◆EVNMMniAjo:2014/12/10(水) 18:49:50 ID:jNhazLp.0
>>370
もの=スクリプト

372 ◆sXCLHolFJ6:2014/12/11(木) 13:44:19 ID:/DUb.lvQ0
>>370
Block.setShape(ID,x1,y1,z1,x2,y2,z2)
Block.defineBlock(id,"name","texture",materialSourceId,opaque,rendertype)
Block.setShapeで、ブロックを平たくしとけば、rendertypeによってはそれっぽくなるね

373 ◆yPNC7oQE.I:2014/12/11(木) 13:59:47 ID:/DUb.lvQ0
トリップ間違えた

>>369
余計かもしれんが、aは書き換えるテクスチャとかスキンのファイルパス
どんなのがあるかは、適当なテクスチャパックを解凍して、見てみるといいよ

374名無しさん:2014/12/11(木) 22:25:34 ID:48PJljnE0
function useItem(x,y,z,itemId,blokId,side){

Stick = 280;

Grass = 2;

Diamond = 57;

if(itemId == Stick){

if(blockId == Grass){

setTile(x,y,z,Diamond,0);

}else if(blockId == Diamond){

setTile(x,y,z,Grass,0);

}

}

}function procCmd(cmd){

if(cmd == "give stick")

addItemInventoly(280,1);

}

チャットで/give stick と打つと棒を入手し、棒で芝付き土をタップするとダイアモンド、
ダイアモンドをタップすると芝付き土になるmodを作ったのですが、チャットで/give stickと打つとエラーになってしまいます。
初心者で自分にはよく分からないので誰かアドバイスを下さい。
お願いします。

375 ◆yPNC7oQE.I:2014/12/12(金) 12:31:06 ID:kI5qG8AA0
>>374
addItemInventory
綴り間違いだね

あと、useItem(...blokId...)のとこ
cが抜けてる

376名無しさん:2014/12/12(金) 17:32:44 ID:48PJljnE0
>>375
ありがとうございます!

377名無しさん:2014/12/15(月) 19:16:06 ID:0rVvb/hA0
特定のアイテムの時弓みたいに真ん中に+を出せるコードってありませんかね?

378名無しさん:2014/12/15(月) 23:39:53 ID:Vr7bjCFA0
ModPE.setItem(501, "record_11", 0, "テスト");
Item.addShapedRecipe(501, 1, 0, [
" ",
" g ",
" "], ["g", 3, 0]);


var itemar=501

var textview1;
var ctx;
function leaveGame(){
del();
show();

settext();
show();
}
function show(){
ctx = com.mojang.minecraftpe.MainActivity.currentMainActivity.get();
ctx.runOnUiThread(new java.lang.Runnable({ run: function() {
try{
var dp=ctx.getResources().getDisplayMetrics().density;
simpleGUI = new android.widget.PopupWindow();
var layout = new android.widget.RelativeLayout(ctx);
textview1 = new android.widget.TextView(ctx);
textview1.setTextColor(android.graphics.Color.GREEN);
textview1.setTextSize(15);
//textview.setTextSize(15);
layout.addView(textview1);
simpleGUI.setContentView(layout);
simpleGUI.setWidth(android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
simpleGUI.setHeight(android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
simpleGUI.showAtLocation(ctx.getWindow().getDecorView(), android.view.Gravity.CENTER | android.view.Gravity.CENTER,0, 0);
}catch(err){
print("Error: "+err);
}
} }));
}

function del(){
if(ctx!=null) {
ctx.runOnUiThread(new java.lang.Runnable({ run: function() {
try{
if(simpleGUI != null) {
simpleGUI.dismiss();
simpleGUI = null;
}
}catch(err){
print("Error: "+err);
}
}}));
}
}

function settext(){
if(ctx!=null) {
ctx.runOnUiThread(new java.lang.Runnable({ run: function() {
try{
if(textview1 != null) {
x=Math.floor(Player.getX());
y=Math.floor(Player.getY());
z=Math.floor(Player.getZ());
id=Player.getPointedBlockId();
da=Player.getPointedBlockData();
b=Player.getCarriedItemData();
a=Player.getCarriedItem();

if(id!==-1){
textview1.setText("*");
}
if(id==-1){
textview1.setText("*");
}
}
}catch(err){
//print("Error: "+err); //will cause spam of dialogue boxes because of modTick
}
}}));
}
}

501のアイテムを手に持ったとき真ん中に何か現れるようにしたいんですけどここからどうすればいいかわかりません(T^T)

379名無しさん:2014/12/16(火) 18:33:37 ID:3K..G6Jw0
ScriptMODの仕様について誰か詳しく教えてください

380 ◆XFNcxrpuHc:2014/12/16(火) 19:33:42 ID:SPwQdH5A0
>>379
http://wiki.mcpe.jp/lite/d/Script%20mod%a4%ce%ba%ee%a4%ea%ca%fd
ここみたほうがはやい

381 ◆yPNC7oQE.I:2014/12/16(火) 21:54:12 ID:dmZDuKoY0
>>378
Javaはまだ理解してないので無理やり書き換えた感じだけど、こんなもんでどうでしょう?

ModPE.setItem(501, "record_11", 0, "テスト");
Item.addShapedRecipe(501, 1, 0, [
" ",
" g ",
" "], ["g", 3, 0]);


var itemar=501

var textview1;
var ctx;
var f1=0;
var f2=0;
var tx="*";
function modTick(){
if(getCarriedItem()==501){
f1=1;
}else{
f1=0;
}
if((f1==1)&&(f2==1)){
tx="*";
settext();
f2=0;
}else if((f1==0)&&(f2==0)){
tx=" ";
settext();
f2=1;
}


}
function newLevel(){
show();
}
function leaveGame(){
del();
}
function show(){
長いので省略(変更なし)
}

function del(){
上に同じく
}

function settext(){
if(ctx!=null) {
ctx.runOnUiThread(new java.lang.Runnable({ run: function() {
try{
if(textview1 != null) {
x=Math.floor(Player.getX());
y=Math.floor(Player.getY());
z=Math.floor(Player.getZ());
id=Player.getPointedBlockId();
da=Player.getPointedBlockData();
b=Player.getCarriedItemData();
a=Player.getCarriedItem();

if(id!==-1){
textview1.setText(tx);
}
if(id==-1){
textview1.setText(tx);
}
layout.addView(textview1);
}
}catch(err){
//print("Error: "+err); //will cause spam of dialogue boxes because of modTick
}
}}));
}
}

とりあえず、持ってるものが501なのかどうかは、modTick()で確認すればおk

382名無しさん:2014/12/17(水) 19:01:27 ID:yBeE3FY.0
だれか/tpwのできるシンプルワールドv1.0.2.2のURL教えてください

383 ◆XFNcxrpuHc:2014/12/17(水) 19:05:24 ID:o.GOqYJk0
>>382
スレチ

384KON710:2014/12/17(水) 19:26:13 ID:BdjL/WLU0
MCPEでマルチして友達と遊んでいるのですが、ホストとゲストでワールドの大きさが違うみたいです。解決策ありましたらお願いします。

385名無しさん:2014/12/17(水) 19:31:10 ID:tawtr9.I0
>>384
スレチ

386k12 (けいじ) ◆e6Zp3r4RVk:2014/12/26(金) 20:26:16 ID:oDcuNZic0
アイテムをもっただけで光るようなこーどってあります?

387 ◆XFNcxrpuHc:2014/12/26(金) 22:55:16 ID:pN2qWMvM0
>>386
何を光らせるんだい

388nokonokonoko ◆EVNMMniAjo:2015/01/02(金) 22:03:35 ID:ghTiHpF60
addshapedrecipeでブロックのレシピがどうやってもストーンカッターのレシピに追加されてしまいます。
クラフティングテーブルに追加する方法はどうすればよいのでしょうか

389名無しさん:2015/01/03(土) 10:31:10 ID:3K..G6Jw0
javascriptのことをjavaと混同すんな

391nokonokonoko ◆EVNMMniAjo:2015/01/04(日) 02:46:00 ID:XHatpuXM0
>>390
原木の17にしてもstonecutterレシピだったんですよね...
addcraftにすると普通に追加されるのでそっちを使っていきますw

392 ◆1Mg5HZxlLU:2015/01/04(日) 14:37:14 ID:GVhwO.uE0
>>391
390です
逆にこっちは原木にするとストーンカッターにレシピが追加できない
なぜだ・・・

393nokonokonoko ◆EVNMMniAjo:2015/01/04(日) 17:51:25 ID:2/k9KSOE0
>>392
機種の個別差でしょうかね...

394kokoa:2015/01/11(日) 03:12:03 ID:.gngND0E0
>>391 >>392
Item.setCategory(itemId,category,0);
たしかこれで指定できた気がする

395名無しさん:2015/01/17(土) 19:52:42 ID:XVpf1bkE0
ゾンビやスケルトンが朝になっても燃えなくなるようにしたいのですがどのよようなコードを使えばいいですかね

396名無しさん:2015/01/17(土) 20:30:58 ID:tawtr9.I0
>>395
function entityAddedHookで特定のmobスポーン時にEntitity.removeすればおk

397名無しさん:2015/01/17(土) 22:56:34 ID:XVpf1bkE0
特定のmobのスポーン時を調べる方法がよく分かりません

398名無しさん:2015/01/18(日) 09:58:44 ID:tawtr9.I0
>>397
スマン
なんか知らないけどゾンビやスケルトンをスポーンさせないようにに見えた

で改めて考え直してみたけどaddedhookで取得したゾンビの座標をmodTickで取得して更にその座標の明るさが12以上の時に炎を消す処理をすればおkなんだけど炎を消す処理がないわ
点ける処理ならあるけどこれは使えない
BlocklauncherのAPIに追加されることを願うね

399kokoa:2015/01/20(火) 00:47:05 ID:aFqpKlcY0
>>395 >>398
試してないけど
Entity.setFireTicks(ent,0);
で固定すれば昼でも死ななくなるかも

400名無しさん:2015/01/20(火) 18:10:29 ID:tawtr9.I0
>>399
残念ながら無理でした

401名無しさん:2015/01/22(木) 18:49:42 ID:hHYUzyIw0
preventDefault();使えば出来ませんか?

402名無しさん:2015/01/22(木) 19:55:22 ID:7agqUyJU0
>>395
patchmodのsleepanyway使った方が早い気がする

403名無しさん:2015/01/22(木) 22:28:08 ID:hHYUzyIw0
自分で追加したmobを自分の方向に向いてくれるようにしたいのですがどうしたらいいですか?

404名無しさん:2015/01/24(土) 21:04:10 ID:hHYUzyIw0
ワールドから出たら選択したmobが消えるようにしたいのですがどうすればいいですか?

405syouma0421:2015/02/04(水) 22:04:46 ID:F7elswjQ0
Mobを叩いたらそのMobが爆発し続けるようにしたいのですがどうすれば良いですか?

406名無しさん:2015/02/04(水) 22:55:39 ID:QVikVW1Q0
>>405
爆発->死ぬ
無理

407 ◆1Mg5HZxlLU:2015/02/05(木) 11:35:55 ID:Aky6YjUs0
体力増やし続ければいけるんじゃない?
動けるかは知らんけど

408syouma0421:2015/02/05(木) 21:35:52 ID:F7elswjQ0
>>406攻撃用です。
>>407動けなくても良いです。

409 ◆1Mg5HZxlLU:2015/02/06(金) 00:18:17 ID:Aky6YjUs0
>>408
attackHookでNativeEntity(モブの番号)を変数に保存して、modTickを使って好きなタイミングで爆発させればおk

410名無しさん:2015/02/06(金) 00:57:59 ID:4n8qVKes0
作ってみたらノックバックしながら岩盤まで発破して行って面白かった

var enemyEntId = [ 32, 33, 34, 35, 36, 37, 38, 39 ];
var ent = [];
var tm = 0;

function attackHook(attacker, victim)
{
var isEnemy = false;
var entTypeId = Entity.getEntityTypeId(victim);
for(var i = 0; i < enemyEntId.length; i++) {
if(entTypeId == enemyEntId[i]) {
isEnemy = true;
break;
}
}
if(isEnemy == false) { return; }

var now = new Date();
for(var i = 0; i < ent.length; i++) {
if(Entity.getUniqueId(victim) == Entity.getUniqueId(ent[i].ent)) {
Entity.setHealth(ent[i], 10);
ent.splice(i, 1);
return;
}
}
var now = new Date();
ent.push({ ent: victim, time: now.getTime() + 2000 });
Entity.setHealth(victim, 10000);
}

function modTick()
{
var now = new Date();
var tm = now.getTime();
for(var i = 0; i < ent.length; i++) {
if(ent[i].time < tm) {
var e = ent[i].ent;
ent[i].time = tm + 500;
Level.explode(Entity.getX(e), Entity.getY(e), Entity.getZ(e), 3);
}
}
}

function deathHook(murderer, victim)
{
for(var i = 0; i < ent.length; i++) {
if(Entity.getUniqueId(victim) == Entity.getUniqueId(ent[i].ent)) {
ent.splice(i, 1);
return;
}
}
}

411syouma0421:2015/02/06(金) 13:08:41 ID:F7elswjQ0
>>410ありがとうございます!何度も質問するのも悪いですがMobを叩いたら
p=player M=Mob 1.2.3=爆発の順番
p1.2.3-M
というふうにできませんか?まだコードはよくわからないので

412名無しさん:2015/02/06(金) 21:21:35 ID:4n8qVKes0
>>411
それもう質問じゃなくて要望だよね
ここは要望を受けるスレじゃない(>>1)からこれ以上はやらないよ
あとはスクリプトの作り方覚えて自分でやってね

var LastStage = 4, EnemyEntId = [ 32, 33, 34, 35, 36, 37, 38, 39 ];
var ent = [], tm = 0;

function attackHook(attacker, victim)
{
var isEnemy = false, now = new Date(), entTypeId = Entity.getEntityTypeId(victim);
for(var i = 0; i < EnemyEntId.length; i++) {
if(entTypeId == EnemyEntId[i]) { isEnemy = true; break; }
}
if(isEnemy == false) { return; }

for(var i = 0; i < ent.length; i++) {
if(Entity.getUniqueId(victim) == Entity.getUniqueId(ent[i].ent)) { return; }
}
ent.push({ ent: victim, stage: 1, time: now.getTime() + 1000 });
}

function modTick()
{
var now = new Date(), tm = now.getTime();
var px = Player.getX(), py = Player.getY(), pz = Player.getZ();
for(var i = ent.length - 1; i >= 0; i--) {
if(ent[i].time < tm) {
var e = ent[i].ent;
var c = ent[i].stage / LastStage;
var x = px + (Entity.getX(e) - px) * c;
var y = py + (Entity.getY(e) - py) * c;
var z = pz + (Entity.getZ(e) - pz) * c;
var r = 1.5;
if(ent[i].stage > LastStage) { RemoveEntity(e); break; }
if(ent[i].stage == LastStage) { r = 3; }
ent[i].stage++;
ent[i].time = tm + 450;
Level.explode(x, y, z, r);
}
}
}

function deathHook(murderer, victim)
{
RemoveEntity(victim);
}

function RemoveEntity(e)
{
for(var i = 0; i < ent.length; i++) {
if(Entity.getUniqueId(e) == Entity.getUniqueId(ent[i].ent)) { ent.splice(i, 1); return; }
}
}

413syouma0421:2015/02/06(金) 22:49:08 ID:F7elswjQ0
>>412すいません。あと、ありがとうございました!

414名無しさん:2015/02/07(土) 01:25:03 ID:4n8qVKes0
スクリプト作ったときに色々調べたんだけど、wiki情報と違う所があるから書いてみる。
調査環境は Nexus7 2013, Android 5.0.2, MCPE 0.10.5 だけど、他のはどうなんだろう?

・MCPEの1日の長さは16分、昼間は約8分(PC版の0.8倍) ※PC版未所持なのでPC版の1日=20分は未確認
・日の出、日の入は約6.5秒ごとに明るさが1レベル変化する(見た目の変化とは同期していない)
・敵mobは明るさ8以下でスポーンする → http://i.imgur.com/DxEfpDE.png http://i.imgur.com/49Pk2lv.png

以下は時間に関しての調査結果。
「実時間」と書いていない所は全部ゲーム内での時間

実時間1秒 = 20tick
1時間 = 800tick = 実時間40秒
1日 = 19200tick = 実時間16分
1日経過するごとに19200tickずつ増えるが、どこかのタイミングで06:00=tick(0)に戻る(月齢1週時?)

新規ワールドの初期時刻 = tick(0) = 06:00
昼間 = tick(19168〜9631) = 05:57〜18:02 = 実時間約8分3秒 ※日光の明るさが15の時間
日没 = tick(9632〜10934) = 18:02〜19:40 = 実時間約1分5秒 ※明るさが14→4になるまでの時間
夜間 = tick(10935〜17863) = 19:40〜04:19 = 実時間約5分46秒 ※月光の明るさが4の時間
日出 = tick(17864〜19168) = 04:19〜05:57 = 実時間約1分5秒 ※明るさが5→15になるまでの時間
日光11以下 = tick(10032〜18766) = 18:32〜05:27 ※ベッドが使える時間
日光8以下 = tick(10421〜18377) = 19:01〜04:58 ※敵mobがスポーンする時間(日光7以下ではない)
ベッド使用→眠るまでの時間 = 100ticks = 7分30秒 = 実時間5秒
就寝可能 = tick(10032〜18666) = 18:32〜05:19 ※眠る前に日光12以上になるとベッドから出る

日没(14) = tick(9632〜9766) = 18:02〜18:12
日没(13) = tick(9767〜9900) = 18:12〜18:22
日没(12) = tick(9901〜10031) = 18:22〜18:32
日没(11) = tick(10032〜10162) = 18:32〜18:42
日没(10) = tick(10163〜10291) = 18:42〜18:51
日没(9) = tick(10292〜10420) = 18:51〜19:01
日没(8) = tick(10421〜10548) = 19:01〜19:11
日没(7) = tick(10549〜10677) = 19:11〜19:20
日没(6) = tick(10678〜10805) = 19:20〜19:30
日没(5) = tick(10806〜10934) = 19:30〜19:40
日出(5) = tick(17864〜17992) = 04:19〜04:29
日出(6) = tick(17993〜18120) = 04:29〜04:39
日出(7) = tick(18121〜18249) = 04:39〜04:48
日出(8) = tick(18250〜18377) = 04:48〜04:58
日出(9) = tick(18378〜18506) = 04:58〜05:07
日出(10) = tick(18507〜18636) = 05:08〜05:17
日出(11) = tick(18637〜18766) = 05:17〜05:27
日出(12) = tick(18767〜18898) = 05:27〜05:37
日出(13) = tick(18899〜19031) = 05:37〜05:47
日出(14) = tick(19032〜19167) = 05:47〜05:57

HH:MM表記の時間は↓のスクリプトで計算したもの。
var TPH = 800; // ticks per hour
var TPD = TPH * 24; // ticks per day
var TPM = TPH / 60; // ticks per minute
var TPS = TPM / 60; // ticks per second
var StartHour = 6;

function GetTime()
{
var tick = Level.getTime();

var dayTick = tick;
var day = Math.floor(dayTick / TPD);

var hourTick = dayTick - TPD * day;
var hour = Math.floor(hourTick / TPH);

var minuteTick = hourTick - TPH * hour;
var minute = Math.floor(minuteTick / TPM);

var secondTick = minuteTick - TPM * minute;
var second = Math.floor(secondTick / TPS);

day += 1;
hour = (hour + StartHour) % 24;

return { tick: tick, day: day, hour: hour, minute: minute, second: second };
}

以上、何かの参考にでもなれば。

415名無しさん:2015/02/07(土) 05:53:13 ID:o/MFjN.o0
>>414
すごく分かりやすい説明すげえ
コピーさせてもらいました、といってもただのデスクトップにあるtxtファイルにペーストしただけです

416名無しさん:2015/02/07(土) 22:03:08 ID:4n8qVKes0
>>415
ありがとう。
どうせならと、そのとき作ったスクリプトもUPしてみたよ。

時報付き時計、とでも言うのかな
https://www.dropbox.com/s/ejd2r9rfe4nwhmj/AlarmClock.js

・時計をスロットに入れておくと毎正時に通知してくれる http://i.imgur.com/ON0zY8G.png
・日の出と日の入も通知してくれる http://i.imgur.com/zdYzvil.png
・時計を持って何かを叩くと現在の時間を通知する http://i.imgur.com/u5fYrdd.png

417名無しさん:2015/02/07(土) 23:03:55 ID:AbGBSedI0
>>416
時計の出番がきた

418名無しさん:2015/02/08(日) 08:10:57 ID:YBA/kVZs0
くうかいさんのmineallに他modの、追加鉱石を適用したくていじって見ました。
var pid=[270,285,274,257,278,30];
var ko=[14,15,16,21,56,73,74,89,49,188,0];
var kopid=[3,2,0,2,3,3,3,3,4,3,3];
var piddata=[60,33,132,251,1562];
var pidtempx=new Array(1000);
var pidtempy=new Array(1000);
var pidtempz=new Array(1000);
var pidtemp=0;
var counter=0;
var mineall=1;
var pidmain=false;
var destroy=false;

function destroyBlock(x,y,z,side){
blockId = Level.getTile(x,y,z);
da = Level.getData(x,y,z);
itemId = getCarriedItem();
itemData=Player.getCarriedItemData();
if(mineall==1){
lo1=0;
lo2=0;
while(pid[lo1]!=0){
if(pid[lo1]==itemId){
while(ko[lo2]!=0){
if(ko[lo2]==blockId && kopid[lo2]<=lo1){
pidmain=true;
break;}
lo2++;}
break;}
lo1++;}
if(pidmain){
pidmain=false;
Level.destroyBlock(x,y,z,false);
pidtemp=0;
pidtempx[pidtemp]=x;
pidtempy[pidtemp]=y;
pidtempz[pidtemp]=z;
destroy=true;
while(pidtemp>=0 && itemData<piddata[lo1]){
if(destroy){
setTile(pidtempx[pidtemp],pidtempy[pidtemp],pidtempz[pidtemp]
二行目の188が追加鉱石のIDなんですが出来なかったです。
どうしたら良いですか?

419名無しさん:2015/02/08(日) 08:53:57 ID:4n8qVKes0
>>418
1行目の最後が 0 じゃなくて 30 になってるから、たぶん使用ツール判定で無限ループになる。
2行目の129消して188にしてるから、エメラルドも採掘できなくなってると思う。
先頭3行こんな感じにすれば良いんじゃないかな

var pid = [ 270, 285, 274, 257, 278, 0 ];
var ko = [ 14, 15, 16, 21, 56, 73, 74, 89, 49, 129, 188, 0 ];
var kopid = [ 3, 2, 0, 2, 3, 3, 3, 3, 4, 3, 3 ]; // 0:Wood, 1:Gold, 2:Stone 3:Iron 4:Diamond

420名無しさん:2015/02/08(日) 09:13:11 ID:4n8qVKes0
あれ、違うかな…?
試しもしないで言うもんじゃないね。
419のも修正箇所ではあるけど、ホントにID188で合ってるかも確認してみて欲しい

421名無しさん:2015/02/08(日) 09:14:27 ID:YBA/kVZs0
>>419
指摘ありがとうございます。
しかし追加鉱石は適用出来なかったです…

422名無しさん:2015/02/08(日) 09:24:47 ID:YBA/kVZs0
>>420
なるほどIDは取り敢えずTMIで見たから違うのかも

423名無しさん:2015/02/08(日) 09:53:19 ID:YBA/kVZs0
>>148を改良?したもの。
しかも途中で切れてました。
var pid = [ 270, 285, 274, 257, 278, 0 ];
var ko = [ 14, 15, 16, 21, 56, 73, 74, 89, 49, 129, copper ore 188, 0 ];
var kopid = [ 3, 2, 0, 2, 3, 3, 3, 3, 4, 3, 3,3 ]; // 0:270, 1:285, 2:274, 3:257, 4:278;
var piddata=[60,33,132,251,1562];
var pidtempx=new Array(1000);
var pidtempy=new Array(1000);
var pidtempz=new Array(1000);
var pidtemp=0;
var counter=0;
var mineall=1;
var pidmain=false;
var destroy=false;

function destroyBlock(x,y,z,side){
blockId = Level.getTile(x,y,z);
da = Level.getData(x,y,z);
itemId = getCarriedItem();
itemData=Player.getCarriedItemData();
if(mineall==1){
lo1=0;
lo2=0;
while(pid[lo1]!=0){
if(pid[lo1]==itemId){
while(ko[lo2]!=0){
if(ko[lo2]==blockId && kopid[lo2]<=lo1){
pidmain=true;
break;}
lo2++;}
break;}
lo1++;}
if(pidmain){
pidmain=false; Level.destroyBlock(x,y,z,false);
pidtemp=0;
pidtempx[pidtemp]=x;
pidtempy[pidtemp]=y;
pidtempz[pidtemp]=z;
destroy=true;
while(pidtemp>=0 && itemData<piddata<piddata[lo1]){
if(destroy){ setTile(pidtempx[pidtemp],pidtempy[pidtemp],pidtempz[pidtemp],0,0);
itemData++;
counter++;
}destroy=checkBlock(pidtempx[pidtemp],pidtempy[pidtemp],pidtempz[pidtemp],blockId,da);
}Entity.setCarriedItem(getPlayerEnt(),itemId,1,itemData);
if(blockId==16)
blockId=263;
else if(blockId==56) blockId=264;
else if(blockId==21){
blockId=351; counter=counter*4;da=4;
}else if(blockId==89){
blockId=348;
counter=counter*4;
}else if(blockId==73 || blockId==74){
blockId=331; counter=counter*4;
}else if(blockId==129){
blockId=388; }
Level.dropItem(x+0.5,y,z+0.5,0.3,blockId,counter,da);
counter=0;}
}
}

function checkBlock(x,y,z,blockId,blockData){
for(lol=-1;lol<=1;lol++){
if(((getTile(x+lol,y,z)==74 & blockId==73) | (getTile(x+lol,y,z)==73 & blockId==74) | getTile(x+lol,y,z)==blockId) && Level.getData(x+lol,y,z)==blockData){
pidtemp++;
pidtempx[pidtemp]=x+lol;
pidtempy[pidtemp]=y;
pidtempz[pidtemp]=z+lol;
return true;
}else if(((getTile(x,y+lol,z)==74 & blockId==73) | (getTile(x,y+lol,z)==73 & blockId==74) | getTile(x,y+lol,z)==blockId) && Level.getData(x,y+lol,z)==blockData){
pidtemp++;
pidtempx[pidtemp]=x;
pidtempy[pidtemp]=y+lol;
pidtempz[pidtemp]=z;
return true;
}
}
pidtemp--;
return false;
}
function procCmd(cmd){
if(cmd=='mine'){
if(mineall==1){
mineall=0;
clientMessage("MineAll OFF");
}else{
mineall=1;
clientMessage("MineAll ON");
}
}
}

424syouma0421:2015/02/08(日) 10:01:41 ID:F7elswjQ0
effectを付けるscriptを教えてくれませんか?

425名無しさん:2015/02/08(日) 11:20:14 ID:4n8qVKes0
既存の物なら Level.addParticle で出来る。
新しいエフェクト追加するのはわからない。

Level.addParticle(part, x, y, z, 0, 0, 0, 0);

partは↓のどれか、x, y, zは座標を入れる
ParticleType.blockcrack
ParticleType.crit
ParticleType.smoke
ParticleType.cloud
ParticleType.flame
ParticleType.lava
ParticleType.redstone
ParticleType.itemcrack
ParticleType.snowballpoof
ParticleType.mobFlame
ParticleType.heart

・Mobを叩くと煙が出る
https://www.dropbox.com/s/fprgpd3chrm7vmn/Particle.js

426syouma0421:2015/02/08(日) 20:18:43 ID:F7elswjQ0
>>425ありがとうございます!

427syouma0421:2015/02/17(火) 21:55:28 ID:F7elswjQ0
歩くスピードを早くしたいのですがどうすれば良いですか。

428syouma0421:2015/02/17(火) 22:10:41 ID:F7elswjQ0
間違えました。mobをスポーンさせて時間が立ったらそのmobがきえるようにしたいのですがどうすれば良いですか?

429名無しさん:2015/02/18(水) 01:09:31 ID:.z0SEcWo0
>>428
modtickでremoveしたらおk

430syouma0421:2015/02/18(水) 21:14:24 ID:F7elswjQ0
>>429 Level.removeですか?

431名無しさん:2015/02/18(水) 22:58:20 ID:CxjSDS/Y0
>>430
んなことしてどうする
エンティティについての話なんだからエンティティ関連使わないとできないだろうが

432koxtuko:2015/02/18(水) 23:42:14 ID:.LCfaCDE0
ダメージ喰らわないmodってありますか?ないのなら作っていただけると助かります!


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板