How to hack/mod TapDefence (EXTENDED LEVELS MOD AND CHEAT SCORE)

Discussion in 'iOS Apps' started by Sidonuke, Dec 10, 2008.

Thread Status:
Not open for further replies.
  1. Sidonuke macrumors newbie

    Joined:
    Dec 8, 2008
    #1
    EXTENDED LEVELS MOD!!!!: http://forums.macrumors.com/showpost.php?p=6741723&postcount=8

    MORE MONEY MOD!!!!(10,000 Starting Gold): http://forums.macrumors.com/showpost.php?p=6741746&postcount=9

    -------------------------------------------------
    !!!SECTION ONE!!!
    -------------------------------------------------

    How to cheat score!

    WARNING!!!!: The developer seems to of banned me from submitting network scores (It says it saved my score but it doesnt show up on network list) but ill test that later...
    You will need wget - Finder - Terminal
    Search for them in cydia

    • Open finder and navigate to /var/mobile/Applications/{UUID}/Documents
    • Click Misc -> Term Here
    Note: {UUID} is a placeholder for what ever string of letters and numbers you find the app in. Check all of them folders in the directory for the app. You will see it as it will be called tapdefence.app inside of one of the folders. once you find tapdefence.app in a folder above that app file should be Documents. Open it and Term Here.

    Close Finder

    Open Terminal

    • If it askes to delete a write protected file called .profile dont do that.
    • Ok in the command line run the following

    Code:
    rm cheat.sql
    wget sidonuke.com/cheat.sql
    sqlite3 database.sq3
    
    (in sqlite3 command prompt)
    Code:
    .read cheat.sql
    
    Close Terminal

    Open TapDefence

    1. MAKE SURE YOU START A NEW GAME!!!
    2. Place one tower anywhere and start the game
    3. One monster will come out killing him instantly and winning the game giving you the maximum possible score.
    4. You can now submit the score with what ever you want.

    Ill be making different kinds of cheat files so you can load different hacks for now this is a insta win game with high score.

    Enjoy filling up the network scores list with nonsence!

    -------------------------------------------------
    !!!SECTION TWO!!!
    -------------------------------------------------

    Now the file called database.sq3 is a sqlite3 database. This basicly means a file verison of a SQL Server. Using the sqlite3 app in the iphone you can control this file. Modding data can be done by using the app to load the database

    sqlite3 ./database.sq3

    In the command prompt you can use the following useful commands

    .read file.sql (Accesses a sql query file and loads the data)
    .dump table (dumps the data from the database from table)
    .tables (lists all tables in the active database)

    More to come soon.

    -------------------------------------------------
    !!!SECTION THREE!!!
    -------------------------------------------------

    ****ed up? Delete the app and redownload. Please note it will be in a new UUID Dir

    Questions?: Ask here or email me @ Sidonuke@Sidonuke.com
     
  2. juanster macrumors 68020

    juanster

    Joined:
    Mar 2, 2007
    Location:
    toronto
    #2
    oh so that's how you got the highest network score...
     
  3. Sidonuke thread starter macrumors newbie

    Joined:
    Dec 8, 2008
    #3
    Here let me explain my SQL File

    http://sidonuke.com/cheat.sql

    #This makes towers insanely powerful
    UPDATE "TowerUpgrade" SET upgradeGoldCost=0;
    UPDATE "TowerUpgrade" SET rateOfFire=10;
    UPDATE "TowerUpgrade" SET range=500;
    UPDATE "TowerUpgrade" SET damage=50000;
    UPDATE "TowerUpgrade" SET splashDamage=50000;
    UPDATE "TowerUpgrade" SET splashDamageRadius=300;

    #This makes all moster waves be weak and only one will spawn and the score they give is the maxmium
    UPDATE "EnemyRoster" SET hitpoints=1;
    UPDATE "EnemyRoster" SET monsterSpeed=6;
    UPDATE "EnemyRoster" SET goldBonusForKill=2147483647;
    UPDATE "EnemyRoster" SET numberOfEnemies=1;

    #This prevents 0 score from saving from not placing a tower
    UPDATE "GameSetting" SET value=1 WHERE key='Initial_Lives';

    #This is a relic from old times but it allows you to increase interest for free
    UPDATE "InterestUpgrade" SET unlockHaloCost=0;

    #We dont want interest to increase the score
    UPDATE "Map" SET baseInterestRate=0;

    #Deletes all levels
    DELETE FROM "Level" WHERE id>0;

    #Loads 1 level for each difficalty
    INSERT INTO "Level" VALUES(1,1,'INSTA WIN','PLACE ONE TOWER TO WIN! BY SIDONUKE@SIDONUKE.COM',1,0,'startingNextLevel.aiff','levelComplete.aiff');
    INSERT INTO "Level" VALUES(2,2,'INSTA WIN','PLACE ONE TOWER TO WIN! BY SIDONUKE@SIDONUKE.COM',1,0,'startingNextLevel.aiff','levelComplete.aiff');
    INSERT INTO "Level" VALUES(3,3,'INSTA WIN','PLACE ONE TOWER TO WIN! BY SIDONUKE@SIDONUKE.COM',1,0,'startingNextLevel.aiff','levelComplete.aiff');
     
  4. Amon37 macrumors regular

    Joined:
    Oct 8, 2008
    Location:
    AZ
    #4
    Ya because beating the game, getting highest score after one tower and one monster while hacking the game sure seems fun. :rolleyes:
     
  5. Schtumple macrumors 601

    Schtumple

    Joined:
    Jun 13, 2007
    Location:
    benkadams.com
    #6
    This is pathetic, hey lets hack a game and become a fake no1, jeez, thats sad.
     
  6. gadgetdad macrumors 6502a

    gadgetdad

    Joined:
    Sep 10, 2007
    Location:
    On my iPhone
    #7
    It has to be easier to get the high score by playing the game than have to go though all that to hack it. Geesh.:eek:
     
  7. Sidonuke thread starter macrumors newbie

    Joined:
    Dec 8, 2008
    #8
    Now Testing a new mod

    TapDefence: Extended Levels!​

    ---------------------------------------​

    Beta Test SQL File:
    http://sidonuke.com/morelevels.sql

    (Notice: This file is being actively edited right now so you may see unexpected results. Any app issues can be fixed by reinstalling the app or deleting database.sq3 in the documents folder of the app.)

    I can technically add as many levels as i want but right now its only one to see if it works.

    INSTALL INSTRUCTIONS!

    You will need wget - Finder - Terminal
    Search for them in cydia

    Open finder and navigate to /var/mobile/Applications/{UUID}/Documents
    Click Misc -> Term Here
    Note: {UUID} is a placeholder for what ever string of letters and numbers you find the app in. Check all of them folders in the directory for the app. You will see it as it will be called tapdefence.app inside of one of the folders. once you find tapdefence.app in a folder above that app file should be Documents. Open it and Term Here.

    Close Finder

    Open Terminal

    If it askes to delete a write protected file called .profile dont do that.
    Ok in the command line run the following


    Code:
    rm morelevels.sql
    wget sidonuke.com/morelevels.sql
    sqlite3 database.sq3

    (in sqlite3 command prompt)
    Code:
    .read morelevels.sql

    Close Terminal

    SQL FILE EXPLAINED

    #This was added to check to see if it was installed and to add credits
    UPDATE "Level" SET summary='Defend heaven from the armies of hell. You are running the extended levels mod by Sidonuke@Sidonuke.com.' WHERE id=1;
    #Creates a new level screen (level 44)
    INSERT INTO "Level" VALUES(44,1,'Extended Level - One','Back to square one but the creatures from hell dont think so',44,0,'startingNextLevel.aiff','levelComplete.aiff');
    #Adds creatures into the level with the settings
    INSERT INTO "EnemyRoster" VALUES(65,44,1,80,4000,3,2);
     
  8. Sidonuke thread starter macrumors newbie

    Joined:
    Dec 8, 2008
    #9
    More Starting Gold Mod:

    10,000 Gold to start with

    http://sidonuke.com/money.sql


    INSTALL INSTRUCTIONS!

    You will need wget - Finder - Terminal
    Search for them in cydia

    Open finder and navigate to /var/mobile/Applications/{UUID}/Documents
    Click Misc -> Term Here
    Note: {UUID} is a placeholder for what ever string of letters and numbers you find the app in. Check all of them folders in the directory for the app. You will see it as it will be called tapdefence.app inside of one of the folders. once you find tapdefence.app in a folder above that app file should be Documents. Open it and Term Here.

    Close Finder

    Open Terminal

    If it askes to delete a write protected file called .profile dont do that.
    Ok in the command line run the following


    Code:
    rm money.sql
    wget sidonuke.com/money.sql
    sqlite3 database.sq3

    (in sqlite3 command prompt)
    Code:
    .read money.sql

    Close Terminal
     
  9. Sidonuke thread starter macrumors newbie

    Joined:
    Dec 8, 2008
    #10
    database.sq3 format

    CREATE TABLE DamageType (
    id integer primary key autoincrement,
    name text not null
    );
    CREATE UNIQUE INDEX DamageType_name on DamageType(name);

    CREATE TABLE EnemyRoster (
    id integer primary key autoincrement,
    idLevel integer not null,
    idEnemyType integer not null,
    numberOfEnemies integer not null default 1,
    hitpoints integer not null,
    monsterSpeed float not null,
    goldBonusForKill integer not null default 0,
    FOREIGN KEY (idLevel) REFERENCES Level(id),
    FOREIGN KEY (idEnemyType) REFERENCES EnemyType(id)
    );

    CREATE TABLE EnemySprite (
    id integer primary key autoincrement,
    idEnemyType integer not null,
    idEnemySpriteType integer not null,
    orientation float not null default 0.0,
    FOREIGN KEY (idEnemyType) REFERENCES EnemyType(id),
    FOREIGN KEY (idEnemySpriteType) REFERENCES EnemySpriteType(id)
    );
    CREATE UNIQUE INDEX EnemySprite_type on EnemySprite(idEnemyType, idEnemySpriteType, orientation);

    CREATE TABLE EnemySpriteFrame (
    id integer primary key autoincrement,
    idEnemySprite integer not null,
    ordinal integer not null default 0,
    imageName text not null,
    FOREIGN KEY (idEnemySprite) REFERENCES EnemySprite(id)
    );
    CREATE UNIQUE INDEX EnemySpriteFrame_ordinal on EnemySpriteFrame(idEnemySprite, ordinal);

    CREATE TABLE EnemySpriteType (
    id integer primary key autoincrement,
    name text not null
    );
    CREATE UNIQUE INDEX EnemySpriteType_name on EnemySpriteType(name);

    CREATE TABLE EnemyType (
    id integer primary key autoincrement,
    name text not null,
    summary text not null,
    imageName text not null,
    movementSound text,
    deathSound text,
    isBoss integer not null default 0,
    labelImage text not null
    , escapeSound text not null default "");

    CREATE TABLE GameSetting (
    id integer primary key autoincrement,
    key text not null,
    value text not null
    );
    CREATE UNIQUE INDEX GameSetting_key on GameSetting(key);

    CREATE TABLE InterestUpgrade (
    id integer primary key autoincrement,
    idMap integer not null,
    name text not null,
    summary text not null,
    rateBonus integer not null,
    ordinal integer not null,
    minUnlockLevel integer not null,
    unlockGoldCost integer not null,
    unlockHaloCost integer not null,
    labelImage text not null,
    iconImage text not null,
    FOREIGN KEY (idMap) REFERENCES Map(id)
    );
    CREATE UNIQUE INDEX InterestUpgrade_ordinal on InterestUpgrade(idMap, ordinal);

    CREATE TABLE Level (
    id integer primary key autoincrement,
    idMap integer not null,
    name text not null,
    summary text not null,
    levelNumber integer not null,
    haloBonus integer not null,
    startSound text, endSound text not null default "",
    FOREIGN KEY (idMap) REFERENCES Map(id)
    );
    CREATE UNIQUE INDEX Level_levelNumber on Level(idMap, levelNumber);

    CREATE TABLE Map (
    id integer primary key autoincrement,
    name text not null,
    summary text not null,
    imageName text not null,
    thumbNailImageName text not null,
    buildMaskName text not null,
    difficultyLevel text not null,
    baseInterestRate integer not null
    , gatesImageName text not null default "", startSound text not null default "", defeatSound text not null default "", victorySound text not null default "");
    CREATE UNIQUE INDEX Map_name on Map(name);

    CREATE TABLE Resistance (
    id integer primary key autoincrement,
    idEnemyRoster integer not null,
    idDamageType integer not null,
    percentage integer not null,
    FOREIGN KEY (idEnemyRoster) REFERENCES EnemyRoster(id),
    FOREIGN KEY (idDamageType) REFERENCES DamageType(id)
    );
    CREATE UNIQUE INDEX Resistance_idEnemyRoster_idDamageType on Resistance(idEnemyRoster, idDamageType);

    CREATE TABLE Score (
    id integer primary key autoincrement,
    idMap integer not null,
    playerName text not null,
    difficulty int not null,
    level int not null,
    lives int not null,
    halos int not null,
    gold int not null,
    score int not null,
    version text not null
    );

    CREATE TABLE Setting (
    id integer primary key autoincrement,
    key text not null,
    value text not null
    );
    CREATE UNIQUE INDEX Setting_key on Setting(key);

    CREATE TABLE TowerPoint (
    id integer primary key autoincrement,
    idMap integer not null,
    x float not null,
    y float not null,
    FOREIGN KEY (idMap) REFERENCES Map(id)
    );
    CREATE UNIQUE INDEX TowerPoint_idMap_x_y on TowerPoint(idMap, x, y);

    CREATE TABLE TowerSprite (
    id integer primary key autoincrement,
    idTowerUpgrade integer not null,
    idTowerSpriteType integer not null,
    orientation float not null default 0.0,
    FOREIGN KEY (idTowerUpgrade) REFERENCES TowerUpgrade(id),
    FOREIGN KEY (idTowerSpriteType) REFERENCES TowerSpriteType(id)
    );
    CREATE UNIQUE INDEX TowerSprite_type on TowerSprite(idTowerUpgrade, idTowerSpriteType, orientation);

    CREATE TABLE TowerSpriteFrame (
    id integer primary key autoincrement,
    idTowerSprite integer not null,
    ordinal integer not null default 0,
    imageName text not null,
    FOREIGN KEY (idTowerSprite) REFERENCES TowerSprite(id)
    );
    CREATE UNIQUE INDEX TowerSpriteFrame_ordinal on TowerSpriteFrame(idTowerSprite, ordinal);

    CREATE TABLE TowerSpriteType (
    id integer primary key autoincrement,
    name text not null
    );
    CREATE UNIQUE INDEX TowerSpriteType_name on TowerSpriteType(name);

    CREATE TABLE TowerType (
    id integer primary key autoincrement,
    name text not null,
    ordinal integer not null,
    summary text not null,
    minUnlockLevel integer not null default 0,
    unlockGoldCost integer not null default 0,
    unlockHaloCost integer not null default 0,
    requiresResearch integer not null default 0,
    labelImage text not null
    , towerImage text not null default "");
    CREATE UNIQUE INDEX TowerType_name on TowerType(name);
    CREATE UNIQUE INDEX TowerType_ordinal on TowerType(ordinal);

    CREATE TABLE TowerUpgrade (
    id integer primary key autoincrement,
    idTowerType integer not null,
    idDamageType integer not null,
    name text not null,
    summary text not null,
    upgradeGoldCost integer not null default 0,
    upgradeHaloCost integer not null default 0, /* 0 = no halos required */
    ordinal integer not null,
    rateOfFire float not null default 0.0, /* 0.0 = none or not applicable */
    range float not null default 0.0, /* 0.0 = none or not applicable */
    damage float not null default 0.0, /* 0.0 = none or not applicable */
    splashDamage float not null default 0.0, /* 0.0 = none or not applicable */
    splashDamageRadius float not null default 0.0, /* 0.0 = none or not applicable */
    hitSpeedModifier float not null default 0.0, /* 0.0 = none or not applicable */
    splashSpeedModifier float not null default 0.0, /* 0.0 = none or not applicable */
    percentageDamage float not null default 0.0, /* 0.0 = none or not applicable*/
    isShakeActivated integer not null default 0, /* 0 = false */
    maximumAllowedInstances integer not null default 0, /* 0 = unlimited */
    maximumActivationsPerLevel integer not null default 0, /* 0 = unlimited */
    shakeCooldown float not null default 0.0, /* 0.0 = unlimited or not applicable */
    baseImage text not null,
    turretImage text not null,
    shotImage text not null,
    shotSound text not null default "defaultShotSound.aiff",
    upgradeSound text not null default "defaultUpgradeSound.aiff",
    buildSound text not null default "defaultBuildSound.aiff",
    researchSound text not null default "defaultResearchSound.aiff", effectivenessFactor float not null default 50.0, duration float not null default 0.25, sellValue int not null default 0,
    FOREIGN KEY (idTowerType) REFERENCES TowerType(id),
    FOREIGN KEY (idDamageType) REFERENCES DamageType(id)
    );
    CREATE UNIQUE INDEX TowerUpgrade_ordinal on TowerUpgrade(idTowerType, ordinal);

    CREATE TABLE WayPoint (
    id integer primary key autoincrement,
    idMap integer not null,
    ordinal integer not null,
    x integer not null,
    y integer not null,
    FOREIGN KEY (idMap) REFERENCES Map(id)
    );
    CREATE UNIQUE INDEX WayPoint_ordinal on WayPoint(idMap, ordinal);

    CREATE TABLE sqlite_sequence(name,seq);
     
Thread Status:
Not open for further replies.

Share This Page