A Dollar Studios hivatalos oldala.

City by Dollar Studios

Felfüggesztve...

Smoke Ring Gun

A nevéből is kitalálható, hogy mi is ez, de azért egy rövid magyarázat: füstkarikákat tudsz vele lőni, amelyekkel megszédítheted a többieket.

Forráskód:

const int cRingLifeTime = 55;
 
void CreateRing(int objectID) {
int playerID = jjObjects[objectID].creator - 32768;
int ringID = jjAddObject(OBJECT::SMOKERING, jjPlayers[playerID].xPos+(jjPlayers[playerID].direction*48), jjPlayers[playerID].yPos, jjPlayers[playerID].playerID, CREATOR::PLAYER);
jjObjects[ringID].determineCurAnim(ANIM::CATERPIL, 6, true);
jjObjects[ringID].direction = jjPlayers[playerID].direction;
}
 
void DestroyRing(int ringID) {
int explosionID = jjAddObject(OBJECT::ELECTROBULLET, jjObjects[ringID].xPos, jjObjects[ringID].yPos, jjObjects[ringID].creator, CREATOR::PLAYER);
jjDeleteObject(ringID);
jjObjects[explosionID].determineCurAnim(ANIM::AMMO, 1, true);
jjObjects[explosionID].state = STATE::EXPLODE;
}
 
void onMain() {
 
p.ammo[9] = 3;
 
for(int i = 1; i < jjObjectCount; i++) {
if(jjObjects[i].isActive && jjObjects[i].eventID == OBJECT::SMOKERING) {
jjObjects[i].ySpeed = 0;
jjObjects[i].xPos = jjObjects[i].xPos+(jjObjects[i].direction*10);
if (jjObjects[i].counter > 10) jjDeleteObject(i);
}
}
 
for (int i = 0;  i < jjObjectCount; i++)
if (jjObjects[i].isActive && jjObjects[i].creatorType == CREATOR::PLAYER) {
//Create smokering
if (jjObjects[i].eventID == OBJECT::ELECTROBULLET && jjObjects[i].state != STATE::EXPLODE) {
jjDeleteObject(i);
CreateRing(i);
continue;
}
   
//Destroy smokering
if (jjObjects[i].eventID == OBJECT::SMOKERING) {
jjObjects[i].age++;
        if (jjObjects[i].age > cRingLifeTime)
DestroyRing(i);
continue;
}
    }

 

}

Spell Gun

Ezzel a fegyverrel békává tudod a többieket változtatni 10 másodpercre.

Forráskód:

int frogTime = 0;
bool playerIsFrog = false;
bool frogTimer = false;
const int cSpellLifeTime = 55;
 
float distance(float x1, float y1, float x2, float y2) {
  return sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
}
 
float sqrt(float x) {
  float y = 1.0;
  for (int i = 0; i < 20; i++)
    y = (y + x/y)/2;
  return y;
}
 
void CreateSpell(int objectID) {
int playerID = jjObjects[objectID].creator - 32768;
int spellID = jjAddObject(OBJECT::FASTFEET, jjPlayers[playerID].xPos+(jjPlayers[playerID].direction*48), jjPlayers[playerID].yPos, jjPlayers[playerID].playerID, CREATOR::PLAYER);
jjObjects[spellID].determineCurAnim(ANIM::WITCH, 3, true);
jjObjects[spellID].direction = jjPlayers[playerID].direction;
}
 
void DestroySpell(int spellID) {
int explosionID = jjAddObject(OBJECT::ELECTROBULLET, jjObjects[spellID].xPos, jjObjects[spellID].yPos, jjObjects[spellID].creator, CREATOR::PLAYER);
jjDeleteObject(spellID);
jjObjects[explosionID].determineCurAnim(ANIM::AMMO, 1, true);
jjObjects[explosionID].state = STATE::EXPLODE;
}
 
void onMain() {
p.ammo[9] = 3;
 
if (frogTime > 0) frogTime--;
 
for(int i = 1; i < jjObjectCount; i++) {
if (jjObjects[i].isActive && jjObjects[i].eventID == OBJECT::FASTFEET) {
if (distance(p.xPos, p.yPos, jjObjects[i].xPos, jjObjects[i].yPos) < 16) {
p.morphTo(CHAR::FROG, true);
}
jjObjects[i].ySpeed = 0;
jjObjects[i].xPos = jjObjects[i].xPos+(jjObjects[i].direction*10);
jjObjects[i].objType = 3;
}
}
 
for (int i = 0;  i < jjObjectCount; i++)
if (jjObjects[i].isActive && jjObjects[i].creatorType == CREATOR::PLAYER) {
//Create spell
if (jjObjects[i].eventID == OBJECT::ELECTROBULLET && jjObjects[i].state != STATE::EXPLODE) {
jjDeleteObject(i);
CreateSpell(i);
continue;
}
   
//Destroy spell
if (jjObjects[i].eventID == OBJECT::FASTFEET) {
jjObjects[i].age++;
        if (jjObjects[i].age > cSpellLifeTime)
DestroySpell(i);
continue;
}
    }
 
if (p.charCurr == CHAR::FROG && !playerIsFrog) {
frogTime = 10*70;
playerIsFrog = true;
}
 
if (p.charCurr != CHAR::FROG && playerIsFrog) {
playerIsFrog = false;
}
 
if (frogTime == 0 && !frogTimer) {
p.revertMorph(true);
frogTimer = true;
}
 
if (frogTime != 0 && frogTimer) {
frogTimer = false;
}
}

Keresés

Az oldalat szerkeszti: $Zm0l96 és AleyAsZ