NoMovementChallenge
1.8 seedfinding code to find strucuture seeds with an opened-up portal room and a mineshaft below. Full stronghold and mineshaft simulation is included in this project.
Install / Use
/learn @Eliotex/NoMovementChallengeREADME
The Java-Code finds structure seeds with an opened-up portal room. If you want to find seeds, which let you spawn inside the end portal, you should use the following (cubiomes based) code. Cubiomes is required: https://github.com/Cubitect/cubiomes This gets you seeds, which have their last spawnpoint finding attempt at the portal room. You need to filter the final results with a real spawnpoint filter, which I can't share on Github.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include "finders.h"
#include <math.h>
#include <time.h>
#include <omp.h>
#define PROGRESS_FILE "C:\\{ADD FILEPATH HERE}\\progressVSCode.txt"
static long loadProgress(void)
{
FILE *f = fopen(PROGRESS_FILE, "r");
if (!f) return 0;
long line = 0;
fscanf(f, "%ld", &line);
fclose(f);
return line;
}
static void saveProgress(long line)
{
FILE *f = fopen(PROGRESS_FILE, "w");
if (!f) return;
fprintf(f, "%ld\n", line);
fclose(f);
}
int main(int argc, char *argv[])
{
static const uint64_t g_spawn_biomes_17 =
(1ULL << forest) |
(1ULL << plains) |
(1ULL << taiga) |
(1ULL << taiga_hills) |
(1ULL << wooded_hills) |
(1ULL << jungle) |
(1ULL << jungle_hills);
omp_set_num_threads(11);
int mc = MC_1_8_9;
uint64_t stemSeed;
int xCoord, zCoord, xSH, zSH, xM, zM;
long zeile = 0;
char filePath[256];
char outputPath[256];
Pos Spawn88 = {0, 0};
int hasSpawn88 = 0;
snprintf(filePath, sizeof(filePath),"C:\\{ADD FILEPATH HERE}\\MineshaftL.txt");
snprintf(outputPath, sizeof(outputPath),"C:\\{ADD FILEPATH HERE}\\Possible1.txt");
FILE *file = fopen(filePath, "r");
if (!file) {
perror("Error opening input file");
return EXIT_FAILURE;
}
FILE *fileOutput = fopen(outputPath, "a");
if (!fileOutput) {
perror("Error opening output file");
fclose(file);
return EXIT_FAILURE;
}
long resumeLine = loadProgress();
printf("Resume at line %ld\n", resumeLine);
while (zeile < resumeLine) {
if (fscanf(file, "%" PRId64 " %d %d %d %d %d %d",&stemSeed, &xSH, &zSH, &xM, &zM, &xCoord, &zCoord) != 7) break;
zeile++;
}
clock_t start = clock();
while (fscanf(file, "%" PRId64 " %d %d %d %d %d %d", &stemSeed, &xSH, &zSH, &xM, &zM, &xCoord, &zCoord) == 7)
{
zeile++;
if (zeile % 50 == 0) {
printf("%ld Done\n", zeile);
saveProgress(zeile);
}
Pos pn;
Piece fortressPieces[400];
int fortressFound = 0;
for (int i = -1; i <= 1 && !fortressFound; i++) {
for (int j = -1; j <= 1 && !fortressFound; j++) {
if (getStructurePos(Fortress, mc, stemSeed, i, j, &pn)) {
int pieceCount = getFortressPieces(fortressPieces, 400, mc, stemSeed, pn.x/16, pn.z/16);
for (int m = 0; m < pieceCount; m++) {
int dx = (xCoord / 8 - fortressPieces[m].pos.x);
int dz = (zCoord / 8 - fortressPieces[m].pos.z);
if (dx * dx + dz * dz < 48 * 48) {
fortressFound = 1;
break;
}
}
}
}
}
if (!fortressFound) continue;
#pragma omp parallel for schedule(dynamic)
for (uint64_t k = 0; k < (1ULL << 16); k++) {
uint64_t fullSeed = stemSeed | (k << 48);
Generator g_local;
StrongholdIter sh_local;
setupGenerator(&g_local, mc, 0);
applySeed(&g_local, DIM_OVERWORLD, fullSeed);
if (!isViableStructurePos(Monument, &g_local, xM, zM, 0)) continue;
initFirstStronghold(&sh_local, mc, fullSeed);
if (!nextStronghold(&sh_local, &g_local)) continue;
if (sh_local.pos.x != (xSH + 4) || sh_local.pos.z != (zSH + 4)) continue;
uint64_t s, rng;
Pos spawn = {0, 0};
int found;
setSeed(&s, g_local.seed);
spawn = locateBiome(&g_local, 0, 63, 0, 256, g_spawn_biomes_17, 0, &s, &found);
if (!found) spawn.x = spawn.z = 8;
rng = s;
if (!found) {
if (hasSpawn88) {
spawn = Spawn88;
} else {
for (int i = 0; i < 1000; i++) {
spawn.x += nextInt(&rng, 64) - nextInt(&rng, 64);
spawn.z += nextInt(&rng, 64) - nextInt(&rng, 64);
}
#pragma omp critical
{
if (!hasSpawn88) {
Spawn88 = spawn;
hasSpawn88 = 1;
}
}
}
} else {
for (int i = 0; i < 1000; i++) {
spawn.x += nextInt(&rng, 64) - nextInt(&rng, 64);
spawn.z += nextInt(&rng, 64) - nextInt(&rng, 64);
}
}
if (!(abs(spawn.x - xCoord) < 13 && abs(spawn.z - zCoord) < 13)) continue;
#pragma omp critical
{
fprintf(fileOutput, "%" PRId64 " %d %d\n", fullSeed, xCoord, zCoord);
}
}
}
fflush(fileOutput);
fclose(file);
fclose(fileOutput);
clock_t end = clock();
double seconds = (double)(end - start) / CLOCKS_PER_SEC;
printf("Done in %.0f s\n", seconds);
return 0;
}
Here are all seeds, which I found with the scripts:
THE Seed -6971006161460989694
Spawn on Obsidian -2415333658675925739 -4249709198040812406 551409479807829552 -3118742741554190522 -9013391689346107914 -1509550277989061843 -4721742708324784428 -2199445442002467344 -6320239097250827135 -4721742708324784428 82472201195607590 2445173157497102141 3217822003444332727 6810568575891950249 7691303776872434950 1040050078305344878 -7715510499572129804 3351241143799238981 -4980418149401540644 -3436246476590862309 8835781065446007508 6810568575891950249 7691303776872434950 -901564312020647830 -7200128202932693034 -4395793007075221274 2370583958263778275 -726485206294995147 -1932322651545039115 5898310092916606685 -6268444672490449277 -479911728480132472 8147296317096382062 -1932322651545039115 -7491171949721825582 -5826247458062782968 -6268444672490449277
Cool seeds (bonus chest etc.) -7258113749238089350 -2138365384246048703 -4468415184147519334 -5390527196661922291 -4468415184147519334 649645948593394440
Spawn inside PR -6609313927679538558 -5981624729551696462 -373517293583386122 -6974105497423413571 409264616139080654 18858823455866050 2932687782881725884 5691142554646154684 7139049834845769148 8652822259616820032 -6203989961445457088 2085166627831692372 5372512880835443796 -2227030015375557548 4712172585475458821 -7381962738753946819 -6746955191566371939 3770075838479832715 2190438269353764000 -4091801722678421425 6881500244967790617 6215248975392228718 -3249910066794131921 6237204023696280758 -5364068614140220935 2487394392133081416 -7034622602454204455 -5673691090058182695 -1470988201700550478 5133540651964737674 -3178415409169820483 6805502015938877631 152559471216654229 7224336786693213795 7331860228123886649 7919017034181644202 7981785993306716099 1080582472520994006 -7899032219031478448 6068882021613201841 1378664507393051549 1670835535797657494 -3694640505331277963 3793719785146584501 -7147494033133985941 -1914029792534970541 -5585589396297364359 303993024003063264 -2838112118353893344 -9199728101097676562 7850618624638205101 1040050078305344878 882142658049455745 -7715510499572129804 7919017034181644202 7981785993306716099 1080582472520994006 -7899032219031478448 497649199768158660 -5365193114195077154 4299531695360056467 2264186210544801218 -3304796190518777533 -3441029889259711099 -7751819157411968932 -7959547689978289923 -3609070448995459205 -4497124000495380718 -9181712037841635833 947446474846324153 -8324339255956712364 8389926336112744260 2319074039483473159 -5682696598074380445 -5690577896063999397 -6050021440223849045 -6678273587095419979 6579197816793356690 -6271542244931642990 -5830470876102500169 -5166471341021026950 882142658049455745 2562268653339694127 2671762428974137687 -6854758152843770136 -7049256279279052436 -9219709817135547065 1375008363247495168 -2630099116472270370 -7049256279279052436 -9219709817135547065 -2630099116472270370
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
