avstemning

Hvordan fjerner man en avstemning?

-
0 (0%)
-
0 (0%)

Stemmer totalt: 0

Skrevet av Emne: Hvordan lage en Minecraft mod - NY LEKSJON nesten HVER SOLFORMØRKELSE  (Lest 27171 ganger)

Utlogget Cybersyn

  • n00b
  • *
  • Innlegg: 2
  • Karma: +1/-0
    • Vis profil
    • localhost
Å lage en mod til Minecraft er egentlig ikke så vanskelig som det høres ut som. Du trenger egentlig ikke mye Java-erfaring. Alt du trenger er 2 øyne, og en lærer - gjerne en person som nettopp har laget en tråd i dette forumet med tittelen "Hvordan lage en Minecraft mod".

Om det er noe du lurer på, bare post et innlegg her :)


Du trenger:
-MCP (Minecraft Coder Pack)
-Java JDK - Lastes ned fra Oracle
-Minecraft
-Klartekst-behandlingsprogram eller IDE (som f. eks. Notepad++, Eclipse IDE, NetBeans IDE, WordPad)
-Om ønsket: En Minecraft Mod API (som f. eks. ModLoader, MinecraftForge, ScotTools API, ShockAhPI, GUI API)

Her kommer jeg for det meste til å bruke Notepad++ og Risugami's ModLoader, men vi kommer nok til å svippe innom noen av de andre også.





Leksjon 1, Uke 13
   [Lett] Hvordan sette opp MCP
IDE: N/A
API: N/A
Hvor?: N/A
MCP (Minecraft Coder Pack) er en slags Java kildekode-dekompilator, akkurat som DJ Java Decompiler og JD-GUI. Den store forskjellen er at MCP har en slags navneliste. Om du tar en titt i Minecraft.jar finner du mange meningsløse filnavn. aa, ab, ac... adw, arf... pl, pm, pn osv. Hvordan skal det være mulig å holde styr på alle disse filene. Det er der MCP kommer inn i bildet. Når MCP dekompilerer kildekoden, endrer den også filnavnene for å gjøre det enkelt å holde styr på og oppdatere mods. For eksempel, blir "adw" gjort om til "Achievements", og dette vil også skje med kildekoden til alle filer som kaller på eller bruker filen "adw", blir endret til "Achievements" for å forhindre feil under rekompilering.

MCP-skriptene er skrevet i Python og dekompileringen baseres på Jad (Java Decompiler).

I ZIP-filen du kan laster ned fra http://mcp.ocean-labs.de/index.php/MCP_Releases finner vi 11 .bat filer (.sh for Linux):
  • cleanup.bat - Angrer og sletter alle endringer som er gjort i mappen.
  • decompile.bat - Dekompilerer kildekoden som er lagt inn i mappen /jars.
  • getchangedsrc.bat - Gir deg kildekoden til alt du har endret i mappen /src (hvor kildekoden ligger etter du har kjørt decompile.bat).
  • recompile.bat - Rekompilerer hele kildekoden som ligger i mappen /src.
  • reformat.bat - Er litt usikker, men tror den reformaterer kildekoden på en eller annen måte.
  • reobfuscate.bat - Kompilerer de modifiserte filene i mappen /src og legger de i mappen /reobf (elns).
  • startclient.bat - Starter Minecraft med den modifiserte kildekoden.
  • startserver.bat - Starter Minecraft-serveren med den modifiserte server-kildekoden.
  • updatemcp.bat - Ser etter nyere versjon av MCP, laster den ned og installerer den. NB! Personlig velger jeg å laste ned oppdateringer manuelt, på grunn av at den automatiserte oppdaterings-metoden har en tendens til å feile, noe jeg sier av erfaring.
  • updatemd5.bat - Oppdaterer MD5-kryptering slik at MCP vet hvilke filer som er modifiserte og hvilke som ikke er det (?). Tror dette skjer automatisk under dekompilering.
  • updatenames.bat - Oppdaterer navnene og navnelisten, og legger også til navneoppdateringene i den dekompilerte koden. (Brukes etter "updatemcp".

Trinn 1: Last ned nyeste versjon av MCP fra http://mcp.ocean-labs.de/index.php/MCP_Releases
(om du ønsker å modde en eldre versjon av Minecraft, må du finne den riktige MCP-versjonen på http://mcp.ocean-labs.de/index.php/MCP_Old_Releases)
Trinn 2: Pakk ut alle filene fra ZIP-arkivet til ønsket plassering.
Trinn 3a: Gå til .minecraft-mappen i %AppData%, og kopier mappene /bin og /resources (UMODIFISERT!) til mappen /jars i MCP-mappen.
Trinn 3b: Om modding av server er ønsket: Last ned en umodifisert versjon av "minecraft_server.jar" fra Minecraft.net og lagre den i mappen /jars i MCP-mappen.
Trinn 4: Om ModLoader er ønsket (ANBEFALT): Last ned nyeste eller ønsket versjon av ModLoader fra http://www.minecraftforum.net/topic/75440-v124-risugamis-mods-everything-updated/, pakk ut filene, og legg de til i /jars/bin/minecraft.jar i MCP-mappen.
Trinn 5: Kjør "decompile.bat" i MCP-mappen for å starte dekompilering av kildekoden (filene i /jars).
Trinn 6: Blant de nye mappene som nå skal ha dukket opp i MCP-mappen, skal det være en mappe som heter /src. I /src/minecraft/net/minecraft/src skal nå den dekompilerte kildekoden ligge.





Leksjon 2, Uke 14
   [Lett] Hvordan lage en ny Blokk
IDE: ingen (Notepad++ anbefales)
API: ModLoader
Hvor?:../src/minecraft/net/minecraft/src/

Første leksjon der vi skal begynne å programmere! Pass på at du har dugelig med niste, energi og et lett tilgjengelig toalett. Nå slipper helvete løs!

Det første vi må gjøre er å lage en ny fil i mappen der vi dekompilerte minecraft.jar til i leksjon 1 (../src/minecraft/net/minecraft/src/). Omdøp filen til mod_Greenstone.java. Om du ønsker at modden din skal hete noe annet enn Greenstone, bytter du ut Greenstone med hva enn du måtte ønske, og for all del: PASS PÅ at filetternavnet er .java og ikke .java.txt eller lignende.

Nå som den nye filen burde være klar, åpner vi den og skriver:
Kode: [Velg]
package net.minecraft.src;
 
public class mod_Greenstone extends BaseMod
{
    public void load()
    {
 
    }
    public String Version()
    {
        return "0.1";
    }
}
Bytt ut "0.1" i kroken "public String Version()" til hvilken versjon av modden det er.
Så legger vi til dette i "public class mod_Greenstone":
Kode: [Velg]
    // Her skal vi definere blokkens egenskaper, som f. eks. ID, sprite, hardhet, TNT-motstand, hvor mye den skal lyse/gløde, og hvilket navn vi skal bruke for å kalle blokken når vi f. eks. definerer blokkens klasse etc., IKKE hva den heter in-game.
    // Greenstone-malm:
    public static final Block greenstoneOre = new BlockGreenstoneOre(190,0).setHardness(3F).setResistance(5F).setBlockName("greenstoneOre");
    // Greenstone-blokk:
    public static final Block greenstoneBlock = new BlockGreenstone(191,0).setHardness(3F).setResistance(10F).setLightValue("0.1F").setBlockName("greenstoneBlock");
Parametrene til BlockXXXXX sier hvilken ID den skal ha og hvilken sprite ID den skal bruke. Nå har vi satt sprite ID'en til 0 fordi vi skal bruke ModLoader sin override-funksjon som jeg skal vise deg snart. "setHardness()" bestemmer hvor hard blokken skal være (hvor lang tid det skal ta å ødelegge den). "setResistance()" bestemmer hvor mye den skal beskytte mot eksplosjoner. "setLightValue()" bestemmer hvor mye lys den skal gi fra seg.

Nå mangler vi bare 3 ting til i denne classen: registrering av blokkenes klasse, blokkenes tekstur og blokkenes navn. Alt dette skal inn i load()-kroken
Kode: [Velg]
        // Først registrerer vi blokkene:
        ModLoader.RegisterBlock(greenstoneOre);
        ModLoader.RegisterBlock(greenstoneBlock);
        // Så legger vi til en tekstur ved hjelp av ModLoader´s fantastiske override-funksjon:
        //Først definerer vi filen som skal overskrives (/terrain.png), så definerer vi filen vi skal overskrive med (f. eks. /mod/greenstone/greenstone_ore).
        greenstoneOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_ore.png");
        greenstoneBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_block.png");
        // Til slutt skriver vi hva blokkene skal hete in-game:
        ModLoader.AddName(greenstoneOre, "Greenstone Ore");
        ModLoader.AddName(greenstoneBlock, "Greenstone Block");
Nå som vi er ferdig med denne filen for denne gang, skal filen mod_Greenstone.java se slik ut:
Kode: [Velg]
package net.minecraft.src;
 
public class mod_Greenstone extends BaseMod
{
    // Her skal vi definere blokkens egenskaper, som f. eks. ID, sprite, hardhet, TNT-motstand, hvor mye den skal lyse/gløde, og hvilket navn vi skal bruke for å kalle blokken når vi f. eks. definerer blokkens klasse etc., IKKE hva den heter in-game.
    // Greenstone-malm:
    public static final Block greenstoneOre = new BlockGreenstoneOre(190,0).setHardness(3F).setResistance(5F).setBlockName("greenstoneOre");
    // Greenstone-blokk:
    public static final Block greenstoneBlock = new BlockGreenstone(191,0).setHardness(3F).setResistance(10F).setLightValue("0.1F").setBlockName("greenstoneBlock");

    public void load()
    {
        // Først registrerer vi blokkene:
        ModLoader.RegisterBlock(greenstoneOre);
        ModLoader.RegisterBlock(greenstoneBlock);
        // Så legger vi til en tekstur ved hjelp av ModLoader´s fantastiske override-funksjon:
        //Først definerer vi filen som skal overskrives (/terrain.png), så definerer vi filen vi skal overskrive med (f. eks. /mod/greenstone/greenstone_ore).
        greenstoneOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_ore.png");
        greenstoneBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_block.png");
        // Til slutt skriver vi hva blokkene skal hete in-game:
        ModLoader.AddName(greenstoneOre, "Greenstone Ore");
        ModLoader.AddName(greenstoneBlock, "Greenstone Block");
    }

    public String Version()
    {
        return "0.1";
    }
}
Men, nei! - Vi er nok ikke helt ferdige enda! Når vi definerte greenstoneOre kalte vi på klassen BlockGreenstoneOre, som ikke eksisterer enda! Dermed må vi lage en ny fil som heter BlockGreenstoneOre.java. Og nok en gang; pass på at etternavnet er .java.
Sånn skal BlockGreenstoneOre.java se ut:
Kode: [Velg]
package net.minecraft.src;

public class BlockGreenstoneOre extends Block
{

    protected BlockGreenstoneOre(int i, int j)
    {
        super(i, j, Material.iron); //Her kan du velge hvilket materiale blokken skal være basert på (f. eks. Material.iron). Forskjellige materialer oppfører seg forskjellig og har forskjellig farge på et kart. Du kan finne alle materialene i Material.java.
    }
}
Eller om du ønsker at Greenstone-malmen skal droppe Greenstone item (som vi skal lage i en leksjon senere) istedenfor at den dropper Greenstone-malm:
Kode: [Velg]
package net.minecraft.src;

public class BlockGreenstoneOre extends Block
{

    protected BlockGreenstoneOre(int i, int j)
    {
        super(i, j, Material.iron);
    }
    public int idDropped(int i, Random random)
    {
         return mod_Greenstone.greenstoneItem.shiftedIndex;
    }
}
som ikke vil virke fordi vi ikke har noe som heter greenstoneItem enda.
Gjør det samme med BlockGreenstone.

Om du ønsker å bruke min tekstur til denne tutorialen, er den her:


(Redigert 28. juli 2012)





Leksjon 3, Uke 30
   [Lett] Hvordan lage en ny Gjenstand
IDE: ingen (Notepad++ anbefales)
API: ModLoader
Hvor?:../src/minecraft/net/minecraft/src/

Ok, nå er jeg endelig ute med en tut igjen, og som du sikkert har lest skal jeg vise deg hvordan du lager en ny gjenstand. Jeg regner at du allerede har lest de tidligere tutorialene, og har mod_Greenstone.java klar.

Det første vi gjør er å legge til variabelen til gjenstanden, og det gjør vi slik:
Kode: [Velg]
public static final Item greenstoneItem = new Item(192).setItemName("greenstoneItem");
Plasser den under GreenstoneBlock sin variabel, omtrent slik:
Kode: [Velg]
    public static final Block greenstoneOre = new BlockGreenstoneOre(190,0).setHardness(3F).setResistance(5F).setBlockName("greenstoneOre");
    public static final Block greenstoneBlock = new BlockGreenstone(191,0).setHardness(3F).setResistance(10F).setLightValue("0.1F").setBlockName("greenstoneBlock");
    public static final Item greenstoneItem = new Item(192).setItemName("greenstoneItem");
Neste trinn er å legge inn en tekstur og så klart et navn til den nye super-duper-gjenstanden vår.

Først legger vi inne en texture-override, slik:
Kode: [Velg]
greenstoneItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/mod/greenstone/greenstone_item.png");
Så definerer vi in-game navnet til gjenstanden vår.
Kode: [Velg]
ModLoader.addName(greenstoneItem, "Greenstone Gem");
Sånn, ja!
Omtrent som dette skal mod_Greenstone se ut når du er ferdig:
Kode: [Velg]
package net.minecraft.src;
 
public class mod_Greenstone extends BaseMod
{
    public static final Block greenstoneOre = new BlockGreenstoneOre(190,0).setHardness(3F).setResistance(5F).setBlockName("greenstoneOre");
    public static final Block greenstoneBlock = new BlockGreenstone(191,0).setHardness(3F).setResistance(10F).setLightValue("0.1F").setBlockName("greenstoneBlock");
    public static final Item emeraldItem = new ItemGreenstone(192).setItemName("emeraldItem");
 
    public void load()
    {
        ModLoader.RegisterBlock(greenstoneOre);
        ModLoader.RegisterBlock(greenstoneBlock);
        greenstoneOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_ore.png");
        greenstoneBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod/greenstone/greenstone_block.png");
        greenstoneItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/mod/greenstone/greenstone_item.png");
        ModLoader.addName(greenstoneOre, "Greenstone Ore");
        ModLoader.addName(greenstoneBlock, "Greenstone Block");
        ModLoader.addName(greenstoneItem, "Greenstone Gem");
    }
    public String Version()
    {
        return "0.1";
    }

Ja, da er vi vel ferdige, da? Ja, med mindre du har lyst til å endre størrelsen på en stack til noe annet en 64. Da må vi lage en egen fil til gjenstanden, istedenfor å bruke Item.java. Lag den nye filen og kall den f. eks. ItemGreenstone. Slik skal den nye filen se ut:
Kode: [Velg]
package net.minecraft.src;
 
public class ItemGreenstone extends Item
{
 
    public ItemGreenstone(int i)
    {
        super(i);
        maxStackSize = (64);
    }
}
Erstatt "64" med ønsket stack-størrelse. Husk at den må være mellom 1 og 64!
Da må vi også endre variabelen greenstoneItem i mod_Greenstone.java til å kalle ItemGreenstone istedenfor Item:
Kode: [Velg]
public static final Item greenstoneItem = new ItemGreenstone(192).setItemName("greenstoneItem");
Da var vel alt på plass, ja.. Å, ja, lykke til! ;)

Om du ønsker å bruke min tekstur til denne tutorialen, er den her:






Jeg håper å slippe neste leksjon på fredag/lørdag neste uke (Uke 31). Tema: Hvordan lage en ny Oppskrift. (Crafting-oppskrifter, formløse crafting-oppskrifter, furnace-oppskrifter og furnace-brensel)

Om du har oppdaget noen feil eller ikke fikk det til, bare legg inn et svar her :)
« Siste redigering: 14. August 2012, 20:37 pm av BrutalOst »



Morder269

  • Gjest
Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
« Svar #1 på: 29. Mars 2012, 15:28 pm »
  • [applaud]0
  • [smite]0
  • Hvordan anbefaler du å lære Java?



    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #2 på: 29. Mars 2012, 15:38 pm »
  • [applaud]0
  • [smite]0
  • Morder269; Begynn med noe enkelt som ligner på Java - nettside-skripting (JavaScript, PHP, ASP.NET, Perl), Basus (http://basus.no) eller noe sånt. Det går jo også an å finne noen enkle veiledninger på nettet.



    Utlogget Emilpoika

    • Minecraft-Operators
    • Guru
    • ***
    • Innlegg: 1.278
    • Karma: +12/-0
    • #Emilpoika
      • Vis profil
      • Emilpoikas Facebookside
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #3 på: 29. Mars 2012, 16:37 pm »
  • [applaud]0
  • [smite]0
  • Huff, jeg husker slitet med å manuelt skrive inn databaser inn i MySQL/Dreamviewer for å få vist fram statistikk på en php-nettside. Det er nesten 3 år siden jeg hadde litt om dette i IT, så jeg tror ikke jeg gidder å ta det opp igjen nå.
    Jeg anbefaler like vel folk med interesse å prøve, det er ganske greit når du først har begynt å forstå grunntrekkene. (Nå snakker jeg generelt, ikke nødvendigvis om minecraft-mods)


    "So much time on ATC alone, and yet I've never been to me."
    "Half a bee, philosophically, must ipso facto half not be. But half the bee has got to be, vis-à-vis its entity - d'you see? But can a bee be said to be or not to be an entire bee when half the bee is not a bee, due to some ancient injury?

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #4 på: 30. Mars 2012, 12:46 pm »
  • [applaud]0
  • [smite]0
  • Huff, jeg husker slitet med å manuelt skrive inn databaser inn i MySQL/Dreamviewer for å få vist fram statistikk på en php-nettside.
    Kunne ikke sagt det bedre selv xD


    Ganske basic Java:
    Kode: [Velg]
    // Dette er en kommentar-linje som ikke gjør noe som helst. En kommentarlinje starter med "//".
    /*
    Dette er en kommentar
    på flere linjer.
    Den åpnes med "/*"
    og stenges med "*/"
    */
    // En integer-variabel (en variabel som bare kan inneholde tallverdier) begynnes med "int":
    int navnPåInteger = 123;
    // En streng-variabel (en variabel som kan inneholde bokstaver, tegn og tall) begynnes med "String":
    String navnPåStreng = "Dette er en streng-variabel, og dette er hvilken verdi variablen skal ha.";

    // For å definere en funksjon, begynner vi med "void":
    void navnPåFunksjon(int parameter1,int parameter2,String parameter3)
    {
      // En if-test sier seg selv.
      if(parameter1 == parameter2)
      {
        // Hvis parameter1 er det samme som parameter2 vil denne koden aktiveres:
        // For å skrive noe i konsollen som programmet kjører fra (I/O-kommunikasjon), kan man bruke "System.out.print("Hva jeg skal skrive");
        System.out.println("Parameter 1 er det samme som Parameter 2.");
      }
      elseif(parameter1 > parameter2)
      {
        // Hvis parameter1 er større enn parameter2 aktiveres denne koden:
        System.out.println("Parameter 1 er større enn Parameter 2.");
      }
      else
      {
        // Hvis parameter1 er mindre enn parameter2 aktiveres denne koden:
        System.out.println("Parameter 1 er mindre enn Parameter 2.");
      }
      System.out.println(parameter3);
    }

    // Nå kan vi kalle på funksjonen vi nettopp definerte ovenfor:
    navnPåFunksjon(123,navnPåInteger,navnPåStreng);
    // 97 blir parameter1, variabelen navnPåInteger som er definert lenger opp og er 123, blir parameter2, variabelen navnPåStreng er også definert lenger opp og blir parameter3 i denne funksjonen.

    Da vil konsollen/terminalen/kommandolinjen se slik ut:
    Kode: [Velg]
    Parameter 1 er mindre enn Parameter 2.
    Dette er en streng-variabel, og dette er hvilken verdi variablen skal ha.
    siden 93 er mindre enn 123, og "navnPåStreng" er "Dette er en streng-variabel, og dette er hvilken verdi variablen skal ha."



    mrthewil2000

    • Gjest
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #5 på: 05. April 2012, 18:23 pm »
  • [applaud]0
  • [smite]0
  • Tusen takk for tips til flere addons på hack klienten eg holder på med :)



    mrthewil2000

    • Gjest
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #6 på: 05. April 2012, 18:50 pm »
  • [applaud]0
  • [smite]0
  • Hehe, ikke så veldig, men bra tutorial ;)
    Sendte heller arbeidet mitt til Sirenfal/Krysk via skype, får se hva han kommer opp med :)



    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #7 på: 05. April 2012, 19:07 pm »
  • [applaud]0
  • [smite]0
  • Det kan være greit å nevne at "void" i eksempelet over forteller at funksjonen ikke skal returnere noe som helst. Hvis du derimot ønsker at en funksjon skal returnere noe så angir man hva slags type variabel funksjonen kommer til å returnere. Eksempel:
    Kode: [Velg]
    String concat(String foo, String bar) {
      String baz = foo + bar;
      return baz;
    }

    Kode: [Velg]
    int sum(int foo, int bar) {
      int baz = foo + bar;
      return baz;
    }

    Det kan også være greit med litt grunnleggende info om selve språket Java, som f.eks. at ALLE variabeltyper er "objekter", det vil si at de har "metoder" definert. Dette gjør de fleste ting enkere men kan også skape noen feller. F.eks. vil følgende kode IKKE fungere slik du tror:
    Kode: [Velg]
    if (command == "list") { ... }Årsaken er at Java vil sammenligne SELVE OBJEKTET command med et annet anonymt stringobjekt som inneholder "list". Fordi det ikke er ett og samme objekt så vil testen alltid feile. Korrekt måte å sammenligne en streng er:
    Kode: [Velg]
    if (command.equals("list")) { ... }
    En annen nyttig ting å vite om er at Java bruker automatisk minnehåndtering med "garbage collection". Dette gjør det enklere å komme igang enn i språk som f.eks. C/C++ hvor du eksplisitt må definere en variabel, allokere minne til den og huske på å frigjøre det igjen etterpå.


    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #8 på: 06. April 2012, 06:54 am »
  • [applaud]0
  • [smite]0
  • Siden det er langfredag, og dagen er så lang, kan jeg jo ikke bare gjøre én liten tut som skal vare hele dagen! Derfor gjør jeg en dobbel i dag!!



    mrthewil2000

    • Gjest
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #9 på: 20. April 2012, 00:36 am »
  • [applaud]0
  • [smite]0
  • Når kommer neste leksjon?



    Utlogget DJdur

    • Minecraft-Operators
    • Wannabe
    • ***
    • Innlegg: 94
    • Karma: +0/-0
    • #swag
      • MSN Messenger - oozziizz@hotmail.com
      • Vis profil
      • My twitter!
      • E-post
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #10 på: 24. April 2012, 16:00 pm »
  • [applaud]0
  • [smite]0
  • Hmm, når jeg decompiler det, kommer denne error'n:
    Kode: [Velg]
    # found jad, jad patches, ff patches, osx patches, srgs, name csvs, doc csvs, pa
    ram csvs, astyle, astyle config
    FATAL ERROR
    Traceback (most recent call last):
      File "runtime\decompile.py", line 50, in decompile
        commands.checkupdates()
      File "C:\Users\Eier\Desktop\MCP\runtime\commands.py", line 817, in checkupdate
    s
        md5_file = md5(fh.read()).hexdigest()
    IOError: [Errno 13] Permission denied
    Trykk en tast for å fortsette...

    Hva gikk feil? o.o

    EDIT: Fant feilen, og fikset det.
    « Siste redigering: 24. April 2012, 16:16 pm av DJdur »



    Morder269

    • Gjest
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #11 på: 24. April 2012, 16:11 pm »
  • [applaud]0
  • [smite]0
  • Holder du på med pyton nå?



    Utlogget DJdur

    • Minecraft-Operators
    • Wannabe
    • ***
    • Innlegg: 94
    • Karma: +0/-0
    • #swag
      • MSN Messenger - oozziizz@hotmail.com
      • Vis profil
      • My twitter!
      • E-post
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #12 på: 24. April 2012, 18:55 pm »
  • [applaud]0
  • [smite]0
  • Hmm, jeg lagde en class, og adda "extends BaseMod", men den sier det beste forslaget er og lage en "BaseMod"-class..
    Altså jeg bruker eclipse.

    Når jeg nå bruker Notepad++, da får jeg error når jeg recompiler.
    Kode: [Velg]
    '"C:\Program Files\Java\jdk1.6.0_31\bin\javac" -Xlint:-options -deprecation -g -
    source 1.6 -target 1....' failed : 1

    == ERRORS FOUND ==

    src\minecraft\net\minecraft\src\mod_Greenstone.java:11: invalid method declarati
    on; return type required
        public load()
               ^

    1 error
    « Siste redigering: 24. April 2012, 19:17 pm av DJdur »



    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #13 på: 25. April 2012, 14:21 pm »
  • [applaud]0
  • [smite]0
  • DJdur;
    Takk, jeg hadde glemt noe. Det skal være
    Kode: [Velg]
    public void load()på linje 11, ikke
    Kode: [Velg]
    public load()
    Takk for tilbakemeldingen :-)


    Morder269;
    Holder du på med pyton nå?
    Ganske riktig, MCP er skrevet i Python.


    MrTheWil;
    Når kommer neste leksjon?
    Beklager ventetiden, har bare ikke hatt noe tid, og det endte med at jeg glemte hele greia, og siden jeg ikke hadde fått så veldig mange tilbakemeldinger (2-3 stk...), gadd jeg rett og slett ikke -.- . Som å undervise en sovende klasse med 1-2 elever :P
    Har også (nesten) slutta å spille Minecraft, bare ved hjemme-LAN-party og sene kvelder :-\

    Skal prøve å få poste noen flere tuts når jeg har tid, men tråden vil nok være mye død.

    På langfredag lovet jeg jo også en dobbel tut, men fikk ikke tid, så det ble ikke noe av det... :(
    « Siste redigering: 25. April 2012, 14:31 pm av BrutalOst »



    Utlogget DJdur

    • Minecraft-Operators
    • Wannabe
    • ***
    • Innlegg: 94
    • Karma: +0/-0
    • #swag
      • MSN Messenger - oozziizz@hotmail.com
      • Vis profil
      • My twitter!
      • E-post
    Sv: Hvordan lage en Minecraft mod - NY LEKSJON HVER FREDAG
    « Svar #14 på: 05. Mai 2012, 19:52 pm »
  • [applaud]0
  • [smite]0
  • Hva kan være feilen her da?