[Help] Issue with Timer & Counter.
#1

Hey Guys,

I'm working on system some how doesn't it work at all.
Well the loading part works and the Audio, but the counter & Timer doesn't work at all, The objects doesn't appear in time or at all.

If anyone can help me I would be really really happy!

The issue is here some where between
pawn Код:
GreenLasterTime = SetTimer("GreenLasers", 1000, 1);
and
pawn Код:
public GreenLasers()
Nothing happens, cant really figure it out, I've tried all different places to put the Counter but it doesn't work.

pawn Код:
#include <a_samp>
#include <streamer>

#pragma tabsize 0
#define FILTERSCRIPT
#if defined FILTERSCRIPT

new MainObjects[3];
new Counter;
new GreenLasterTime;
new GreenLaser[9];

forward GreenLasers();

public OnFilterScriptInit()
{
    /* Main Objects */
    MainObjects[0] = CreateObject(3494, 243.00, -1854.50, 6.10,   0.00, 0.00, 0.00);
    MainObjects[1] = CreateObject(2232, 243.57, -1853.25, 2.77,   0.00, 0.00, 155.28);
    MainObjects[2] = CreateObject(2232, 242.64, -1853.24, 2.77,   0.00, 0.00, 204.12);

    Counter = 0;
    return 1;
}

public GreenLasers()
{
    if(Counter == 86) {
    GreenLaser[0] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 76.92);
    Counter++;
    } else if(Counter == 87) {
    GreenLaser[1] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 79.98);
    Counter++;
    } else if(Counter == 88) {
    GreenLaser[2] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 83.04);
    Counter++;
    } else if(Counter == 89) {
    GreenLaser[3] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 85.92);
    Counter++;
    } else if(Counter == 90) {
    GreenLaser[4] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 89.04);
    Counter++;
    } else if(Counter == 91) {
    GreenLaser[5] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 92.34);
    Counter++;
    } else if(Counter == 92) {
    GreenLaser[6] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 95.64);
    Counter++;
    } else if(Counter == 93) {
    GreenLaser[7] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 99.12);
    Counter++;
    } else if(Counter == 94) {
    GreenLaser[8] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 102.84);
    Counter++;
    } else if(Counter == 96) {
    MoveObject(GreenLaser[0], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 76.92);
    MoveObject(GreenLaser[1], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 79.98);
    MoveObject(GreenLaser[2], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 83.04);
    MoveObject(GreenLaser[3], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 85.92);
    MoveObject(GreenLaser[4], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 89.04);
    MoveObject(GreenLaser[5], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 92.34);
    MoveObject(GreenLaser[6], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 95.64);
    MoveObject(GreenLaser[7], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 99.12);
    MoveObject(GreenLaser[8], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 102.84);
    Counter++;
    } else if(Counter == 99) {
    MoveObject(GreenLaser[0], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 76.92);
    MoveObject(GreenLaser[1], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 79.98);
    MoveObject(GreenLaser[2], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 83.04);
    MoveObject(GreenLaser[3], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 85.92);
    MoveObject(GreenLaser[4], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 89.04);
    MoveObject(GreenLaser[5], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 92.34);
    MoveObject(GreenLaser[6], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 95.64);
    MoveObject(GreenLaser[7], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 99.12);
    MoveObject(GreenLaser[8], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 102.84);
    Counter++;
    } else if(Counter == 102) {
    MoveObject(GreenLaser[0], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 76.92);
    MoveObject(GreenLaser[1], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 79.98);
    MoveObject(GreenLaser[2], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 83.04);
    MoveObject(GreenLaser[3], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 85.92);
    MoveObject(GreenLaser[4], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 89.04);
    MoveObject(GreenLaser[5], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 92.34);
    MoveObject(GreenLaser[6], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 95.64);
    MoveObject(GreenLaser[7], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 99.12);
    MoveObject(GreenLaser[8], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 102.84);
    Counter++;
    } else if(Counter == 105) {
    DestroyObject(GreenLaser[0]);
    DestroyObject(GreenLaser[1]);
    DestroyObject(GreenLaser[2]);
    DestroyObject(GreenLaser[3]);
    DestroyObject(GreenLaser[4]);
    DestroyObject(GreenLaser[5]);
    DestroyObject(GreenLaser[6]);
    DestroyObject(GreenLaser[7]);
    DestroyObject(GreenLaser[8]);
    Counter++;
    } else {
    Counter++;
    }
}

public OnFilterScriptExit()
{
    /* Main Objects */
    DestroyObject(MainObjects[0]);
    DestroyObject(MainObjects[1]);
    DestroyObject(MainObjects[2]);
   
    /* Timers */
    KillTimer(GreenLasterTime);
   
    /* Green Lasers */
    DestroyObject(GreenLaser[0]);
    DestroyObject(GreenLaser[1]);
    DestroyObject(GreenLaser[2]);
    DestroyObject(GreenLaser[3]);
    DestroyObject(GreenLaser[4]);
    DestroyObject(GreenLaser[5]);
    DestroyObject(GreenLaser[6]);
    DestroyObject(GreenLaser[7]);
    DestroyObject(GreenLaser[8]);
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256], idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd,"/beginevent",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                Counter = 0;
                PlayAudioStreamForPlayer(i, "http://**************", 249.7234, -1852.3114, 2.7695, 500, 1);
                GreenLasterTime = SetTimer("GreenLasers", 1000, 1); // Set a timer of 1000 miliseconds (1 second)
            }
        }
        return 1;
    }
    return 0;
}

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
-Regards,
Tony
Reply
#2

Maybe, it could be that the public is before the timer is being set
Reply
#3

Quote:
Originally Posted by SnG.Scot_MisCuDI
Посмотреть сообщение
Maybe, it could be that the public is before the timer is being set
Hmmm, maby never thought of that. Going to test it right away!

EDIT: Tested it, didn't work either.

pawn Код:
#include <a_samp>
#include <streamer>

#pragma tabsize 0
#define FILTERSCRIPT
#if defined FILTERSCRIPT

new MainObjects[3];
new Counter;
new GreenLasterTime;
new GreenLaser[9];

forward GreenLasers();

public OnFilterScriptInit()
{
    /* Main Objects */
    MainObjects[0] = CreateObject(3494, 243.00, -1854.50, 6.10,   0.00, 0.00, 0.00);
    MainObjects[1] = CreateObject(2232, 243.57, -1853.25, 2.77,   0.00, 0.00, 155.28);
    MainObjects[2] = CreateObject(2232, 242.64, -1853.24, 2.77,   0.00, 0.00, 204.12);

    Counter = 0;
    return 1;
}

public OnFilterScriptExit()
{
    /* Main Objects */
    DestroyObject(MainObjects[0]);
    DestroyObject(MainObjects[1]);
    DestroyObject(MainObjects[2]);
   
    /* Timers */
    KillTimer(GreenLasterTime);
   
    /* Green Lasers */
    DestroyObject(GreenLaser[0]);
    DestroyObject(GreenLaser[1]);
    DestroyObject(GreenLaser[2]);
    DestroyObject(GreenLaser[3]);
    DestroyObject(GreenLaser[4]);
    DestroyObject(GreenLaser[5]);
    DestroyObject(GreenLaser[6]);
    DestroyObject(GreenLaser[7]);
    DestroyObject(GreenLaser[8]);
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256], idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd,"/beginevent",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                Counter = 0;
                PlayAudioStreamForPlayer(i, "http://****************", 249.7234, -1852.3114, 2.7695, 500, 1);
                GreenLasterTime = SetTimer("GreenLasers", 1000, 1); // Set a timer of 1000 miliseconds (1 second)
            }
        }
        return 1;
    }
    return 0;
}

public GreenLasers()
{
    if(Counter == 86) {
    GreenLaser[0] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 76.92);
    Counter++;
    } else if(Counter == 87) {
    GreenLaser[1] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 79.98);
    Counter++;
    } else if(Counter == 88) {
    GreenLaser[2] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 83.04);
    Counter++;
    } else if(Counter == 89) {
    GreenLaser[3] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 85.92);
    Counter++;
    } else if(Counter == 90) {
    GreenLaser[4] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 89.04);
    Counter++;
    } else if(Counter == 91) {
    GreenLaser[5] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 92.34);
    Counter++;
    } else if(Counter == 92) {
    GreenLaser[6] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 95.64);
    Counter++;
    } else if(Counter == 93) {
    GreenLaser[7] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 99.12);
    Counter++;
    } else if(Counter == 94) {
    GreenLaser[8] = CreateObject(19083, 242.92, -1855.00, 10.32,   0.00, 0.00, 102.84);
    Counter++;
    } else if(Counter == 96) {
    MoveObject(GreenLaser[0], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 76.92);
    MoveObject(GreenLaser[1], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 79.98);
    MoveObject(GreenLaser[2], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 83.04);
    MoveObject(GreenLaser[3], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 85.92);
    MoveObject(GreenLaser[4], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 89.04);
    MoveObject(GreenLaser[5], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 92.34);
    MoveObject(GreenLaser[6], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 95.64);
    MoveObject(GreenLaser[7], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 99.12);
    MoveObject(GreenLaser[8], 242.91, -1855.00, 10.32, 4.00, 0.00, 12.00, 102.84);
    Counter++;
    } else if(Counter == 99) {
    MoveObject(GreenLaser[0], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 76.92);
    MoveObject(GreenLaser[1], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 79.98);
    MoveObject(GreenLaser[2], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 83.04);
    MoveObject(GreenLaser[3], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 85.92);
    MoveObject(GreenLaser[4], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 89.04);
    MoveObject(GreenLaser[5], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 92.34);
    MoveObject(GreenLaser[6], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 95.64);
    MoveObject(GreenLaser[7], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 99.12);
    MoveObject(GreenLaser[8], 242.92, -1855.00, 10.32, 4.00, 0.00, -12.00, 102.84);
    Counter++;
    } else if(Counter == 102) {
    MoveObject(GreenLaser[0], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 76.92);
    MoveObject(GreenLaser[1], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 79.98);
    MoveObject(GreenLaser[2], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 83.04);
    MoveObject(GreenLaser[3], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 85.92);
    MoveObject(GreenLaser[4], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 89.04);
    MoveObject(GreenLaser[5], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 92.34);
    MoveObject(GreenLaser[6], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 95.64);
    MoveObject(GreenLaser[7], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 99.12);
    MoveObject(GreenLaser[8], 242.92, -1855.00, 10.32, 4.00, 0.00, 0.00, 102.84);
    Counter++;
    } else if(Counter == 105) {
    DestroyObject(GreenLaser[0]);
    DestroyObject(GreenLaser[1]);
    DestroyObject(GreenLaser[2]);
    DestroyObject(GreenLaser[3]);
    DestroyObject(GreenLaser[4]);
    DestroyObject(GreenLaser[5]);
    DestroyObject(GreenLaser[6]);
    DestroyObject(GreenLaser[7]);
    DestroyObject(GreenLaser[8]);
    Counter++;
    } else {
    Counter++;
    }
}

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Thats what I did if it's what you mean.
Reply
#4

did it work?
by the way, you probably should use switch and cases instead of all the else if, I think that's faster, I've just started using it some days ago and it's also faster writing when you get comfortable with it
(it was just a tip, if you like else if better you should probably stick to that ^^)

(and another tip i just saw is just placing the counter ++; in the end, no meaning of having it on every line since you anyways do the same with it in all cases ^^)
(sorry if I should like some idiot xD I'm just trying to help )
Reply
#5

Quote:
Originally Posted by Ranama
Посмотреть сообщение
did it work?
by the way, you probably should use switch and cases instead of all the else if, I think that's faster, I've just started using it some days ago and it's also faster writing when you get comfortable with it
(it was just a tip, if you like else if better you should probably stick to that ^^)

(and another tip i just saw is just placing the counter ++; in the end, no meaning of having it on every line since you anyways do the same with it in all cases ^^)
(sorry if I should like some idiot xD I'm just trying to help )
No problems, well I just edited my last post.
It didn't really work, and about using cases are not really my stronges side. Never figure them out some how.

About the Counter, I did as you just told me before but that didn't work either, might be as SnG.Scot_MisCuDI told me that it public where before the timer.

Going to test your theory as well see if that works.

EDIT: Didn't work either.

EDIT:I just added one object above the others, some how it appares but remember I just added one of them, but when it appears it appears in 3 different versions, all those 3 different versions when it's created and when it's moved :S
Reply
#6

Bump.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)