User Tag List

Results 1 to 8 of 8

Thread: Collision Detection

  1. #1
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    136
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    790
    Level
    9
    vBActivity - Bars
    Lv. Percent
    86.22%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    3.33%

    Collision Detection

    Simple question. How do I script detecting the collision of an lweapon and an enemy so that I can trigger an effect on impact?
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

    Help this cat on it's quest for world domination!

  2. #2
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    136
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    790
    Level
    9
    vBActivity - Bars
    Lv. Percent
    86.22%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    3.33%
    Anyone have an idea? I've been looking at Tamamo / Mero's Bombchus Script for clues on how to do this. Basically, I'm trying to create arrows that trigger effects on impact like a Bomb Explosion or Fire.
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

    Help this cat on it's quest for world domination!

  3. #3
    Now, count up your sins. mrz84's Avatar
    Join Date
    Jun 2001
    Location
    Randomness
    Age
    34
    Posts
    5,601
    Mentioned
    197 Post(s)
    Tagged
    8 Thread(s)
    vBActivity - Stats
    Points
    10,615
    Level
    30
    vBActivity - Bars
    Lv. Percent
    58.46%
    Daily Activity
    192.31%
    Weekly Activity
    28.02%
    Monthly Activity
    34.1%
    Ya know, that's something I've considered for my quest, but since I got 0 XP in my script skill, I was gonna look around for something for that. No luck so far though.
    My Quotes and other siggy stuff.
    *Bar-Buddies updates whenever-also can email comics upon request*
    MP:89
    Playing: Too many to list now...
    Help this cat on his quest for World Domination!
    MydeviantART

  4. #4
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    136
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    790
    Level
    9
    vBActivity - Bars
    Lv. Percent
    86.22%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    3.33%
    Thanks to ZoriaRPG, I've learned how to have hold out weapons. All I need now is working collision detection, and I've got the basis for more than half my use items.
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

    Help this cat on it's quest for world domination!

  5. #5
    Mad, Mad, Author ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    835
    Mentioned
    72 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,110
    Level
    18
    vBActivity - Bars
    Lv. Percent
    2.64%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    113.59%
    Code:
    int q; int w; npc n; lweapon l;
    for ( q = Screen->NumLWeapons(); q > 0; q-- ) {
        l = Screen->LoadLWeapon(q);
        for ( w = Screen->NumNPCs(); w > 0; w-- ){
            n = Screen->LoadNPC(w);
            if ( Collision(l,n) ) //Do things;
        }
    }
    Like that, or in some similar manner with var declarations in whatever style you want, or with array indices when that's more appropriate.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

  6. #6
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    136
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    790
    Level
    9
    vBActivity - Bars
    Lv. Percent
    86.22%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    3.33%
    Okay, I hate to ask this but if you have time, can you explain how it works? It looks like we're tracking the number of active lweapons and NPC's, but is this going to trigger if say I make the on collision effect a bomb blast, and the target is a wall?
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

    Help this cat on it's quest for world domination!

  7. #7
    Developer ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,643
    Mentioned
    218 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,229
    Level
    32
    vBActivity - Bars
    Lv. Percent
    46.26%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    47.56%
    Basically, you just check for collisions by brute force with a script, which is probably in your global script. So you iterate over all the lweapons and see if that one is one you want to handle by a custom script or not, then if it is you then have to iterate through all the enemies to see if it collides or not. If it does, then you just add in your desired behavior.

    Code:
    lweapon lw;
    npc e;
    int lwCount = Screen->NumLWeapons();
    int n = Screen->NumNPCs();
    
    for (int i=1;i <= lwCount; i++ ) { //loop through all lweapons on screen
        l = Screen->LoadLWeapon(i);
        if(l->Type == MEGA_BOMB_YO) { // ...filter out whatever lweapon you are looking for.
          for (int j=1; j < n; j++) {
              e = Screen->LoadNPC(w);
              if ( Collision(l,e) )  {
                 // they collided
             }
          }
       }
    }
    If the target is a wall you can just check for combo data/flags on the map instead of enemies. Same thing, except you don't loop through all the combos on screen and instead just check against 4 at most. std.zh has CombaAt(x,y) to get the combo indices for this.
    This post contains the official Gleeok™ seal of approval. Look for these and other posts in an area near you.

  8. #8
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    136
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    790
    Level
    9
    vBActivity - Bars
    Lv. Percent
    86.22%
    Daily Activity
    0%
    Weekly Activity
    0.55%
    Monthly Activity
    3.33%
    And here is where the fun begins. So I can set up that for loop inside my global script to track collisions. Then I should have the individual effects in the individual weapon scripts. Is this correct? I can reference variables used by the global script in item scripts?
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

    Help this cat on it's quest for world domination!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social