KillTimer bug or something
#1

I dont understand, why it's not killing timer "chainsawt" ? I'm testing it on sa-mp 0.3 beta RC-8.

Code:
#define MAX_MINIGAME_SLOTS 5
new chainsawt;
new chainsawt2;
new countminigame1timer;
new countminigame2timer;
new countminigame3timer;
new countminigame4timer;
new PlayersInMinigame = 0;
new MinigameStarted = 0;
new MSInUse[MAX_MINIGAME_SLOTS];

dcmd_minigames(playerid, params[]){
#pragma unused params
if(dUserINT(PlayerName2(playerid)).("InDrag") == 1) return CheckInDrag(playerid);
if(dUserINT(PlayerName2(playerid)).("InRace") == 1) return CheckInRace(playerid);
if(InHouse[playerid] > 0) return CheckInHouse(playerid);
if(dUserINT(PlayerName2(playerid)).("InDm") == 1) return CheckInDM(playerid);
if(dUserINT(PlayerName2(playerid)).("InMinigame") == 1) return SendClientMessage(playerid,COLOR_GRAD1,"*[INFO]: Jus jau zaidziate minigame!");
if(MinigameStarted == 1) return SendClientMessage(playerid,COLOR_GRAD1,"*[INFO]: Minigame jau prasidėjęs!");
new listitems[] = "*\tChainsaw";
ShowPlayerDialog(playerid,12,DIALOG_STYLE_LIST,"Minigames sąraљas:",listitems,"Pasirinkti","Atљaukti");
return 1;
}
forward StartMinigame();
public StartMinigame(){
countminigame1timer = SetTimer("countminigame3",1000,0);
countminigame2timer = SetTimer("countminigame2",2000,0);
countminigame3timer = SetTimer("countminigame1",3000,0);
countminigame4timer = SetTimer("countminigamego",4000,0);
return 1;
}
forward countminigame3();
public countminigame3(){
for(new i; i < MAX_PLAYERS; i++) {
if(dUserINT(PlayerName2(i)).("InMinigame") == 1){
GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 3 ~g~-",1000,3);
KillTimer(countminigame1timer);
}
}
return 1;
}
forward countminigame2();
public countminigame2(){
for(new i; i < MAX_PLAYERS; i++) {
if(dUserINT(PlayerName2(i)).("InMinigame") == 1){
GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 2 ~g~-",1000,3);
KillTimer(countminigame2timer);
}
}
return 1;
}
forward countminigame1();
public countminigame1(){
for(new i; i < MAX_PLAYERS; i++) {
if(dUserINT(PlayerName2(i)).("InMinigame") == 1){
GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 1 ~g~-",1000,3);
KillTimer(countminigame3timer);
}
}
return 1;
}
forward countminigamego();
public countminigamego(){
for(new i; i < MAX_PLAYERS; i++) {
if(dUserINT(PlayerName2(i)).("InMinigame") == 1){
GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~]~g~-~g~GO GO GO~g~-~y~]~g~-",1000,3);
TogglePlayerControllable(i,true);
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
KillTimer(countminigame4timer);
chainsawt = SetTimer("CheckPlayersInChainsawMinigame",1000,1);
chainsawt2 = SetTimer("InChainsawMinigame",1000,1);
}
}
return 1;
}
forward InChainsawMinigame();
public InChainsawMinigame(){
if(MinigameStarted == 1){
if(PlayersInMinigame <= 1){
KillTimer(chainsawt);
PlayersInMinigame = 0;
MinigameStarted = 0;
KillTimer(chainsawt2);
}
}
return 1;
}
forward CheckPlayersInChainsawMinigame();
public CheckPlayersInChainsawMinigame(){
new string[128];
if(PlayersInMinigame == 1){
for(new i; i < MAX_PLAYERS; i++) {
if(dUserINT(PlayerName2(i)).("InMinigame") == 1){
format(string,sizeof(string),"*[INFO]: %s laimėjo Chainsaw minigame!",PlayerName2(i));
SendClientMessageToAll(COLOR_YELLOW,string);
SendClientMessage(i,COLOR_GRAD1,"*[INFO]: Jūs laimėjote Chainsaw minigame. Gaunate [$50000] ir [300] patirties taљkų.");
F_GivePlayerMoney(i,50000);
dUserSetINT(PlayerName2(i)).("Exp",dUserINT(PlayerName2(i)).("Exp")+300);
ResetPlayerWeapons(i);
dUserSetINT(PlayerName2(i)).("SpawnNone",1);
dUserSetINT(PlayerName2(i)).("InMinigame",0);
TogglePlayerControllable(i,true);
OnPlayerSpawn(i);
}
}
}
for(new x; x < MAX_MINIGAME_SLOTS; x++){
MSInUse[x] = 0;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == 12){
new string[128];
if(response){
if(listitem == 0){
PlayersInMinigame++;
if(PlayersInMinigame == 2){
MinigameStarted = 1;
StartMinigame();
}
format(string,sizeof(string),"*[INFO]: %s prisijungл б Chainsaw minigame.",PlayerName2(playerid));
SendClientMessageToAll(COLOR_YELLOW,string);
ResetPlayerWeapons(playerid);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,9,1);
SetPlayerVirtualWorld(playerid,500);
TogglePlayerControllable(playerid,false);
if(MSInUse[0] == 0){
SetPlayerPos(playerid,1915.0157,2114.0127,10.8203);
SetPlayerFacingAngle(playerid,45.7003);
SetCameraBehindPlayer(playerid);
MSInUse[0] = 1;
dUserSetINT(PlayerName2(playerid)).("MSInUseID",0);
dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
}
else if(MSInUse[1] == 0){
SetPlayerPos(playerid,1913.9550,2159.1787,10.8203);
SetPlayerFacingAngle(playerid,143.1479);
SetCameraBehindPlayer(playerid);
MSInUse[1] = 1;
dUserSetINT(PlayerName2(playerid)).("MSInUseID",1);
dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
}
else if(MSInUse[2] == 0){
SetPlayerPos(playerid,1882.4536,2159.2205,10.8203);
SetPlayerFacingAngle(playerid,229.9421);
SetCameraBehindPlayer(playerid);
MSInUse[2] = 1;
dUserSetINT(PlayerName2(playerid)).("MSInUseID",2);
dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
}
else if(MSInUse[3] == 0){
SetPlayerPos(playerid,1881.7068,2114.2490,10.8203);
SetPlayerFacingAngle(playerid,317.6763);
SetCameraBehindPlayer(playerid);
MSInUse[3] = 1;
dUserSetINT(PlayerName2(playerid)).("MSInUseID",3);
dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
}
else if(MSInUse[4] == 0){
SetPlayerPos(playerid,1899.2458,2134.2429,10.8203);
SetPlayerFacingAngle(playerid,217.0954);
SetCameraBehindPlayer(playerid);
MSInUse[4] = 1;
dUserSetINT(PlayerName2(playerid)).("MSInUseID",4);
dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
}
}
}else{
// nieko
}
return 1;
}
return 1;
}
Reply
#2

My gosh there is no indentation in your code, how do u expect people to read it? at least make it more readable for them. Anyways, here is the indented version. It is not the fixed code.

pawn Code:
#define MAX_MINIGAME_SLOTS 5
new chainsawt;
new chainsawt2;
new countminigame1timer;
new countminigame2timer;
new countminigame3timer;
new countminigame4timer;
new PlayersInMinigame = 0;
new MinigameStarted = 0;
new MSInUse[MAX_MINIGAME_SLOTS];

dcmd_minigames(playerid, params[])
{
    #pragma unused params
    if(dUserINT(PlayerName2(playerid)).("InDrag") == 1) return CheckInDrag(playerid);
    if(dUserINT(PlayerName2(playerid)).("InRace") == 1) return CheckInRace(playerid);
    if(InHouse[playerid] > 0) return CheckInHouse(playerid);
    if(dUserINT(PlayerName2(playerid)).("InDm") == 1) return CheckInDM(playerid);
    if(dUserINT(PlayerName2(playerid)).("InMinigame") == 1) return SendClientMessage(playerid,COLOR_GRAD1,"*[INFO]: Jus jau zaidziate minigame!");
    if(MinigameStarted == 1) return SendClientMessage(playerid,COLOR_GRAD1,"*[INFO]: Minigame jau praside.je;s!");
    new listitems[] = "*\tChainsaw";
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_LIST,"Minigames sa;raљas:",listitems,"Pasirinkti","Atљaukti");
    return 1;
}
forward StartMinigame();
public StartMinigame()
{
    countminigame1timer = SetTimer("countminigame3",1000,0);
    countminigame2timer = SetTimer("countminigame2",2000,0);
    countminigame3timer = SetTimer("countminigame1",3000,0);
    countminigame4timer = SetTimer("countminigamego",4000,0);
    return 1;
}
forward countminigame3();
public countminigame3()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(dUserINT(PlayerName2(i)).("InMinigame") == 1)
        {
            GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 3 ~g~-",1000,3);
            KillTimer(countminigame1timer);
        }
    }
    return 1;
}
forward countminigame2();
public countminigame2()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(dUserINT(PlayerName2(i)).("InMinigame") == 1)
        {
            GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 2 ~g~-",1000,3);
            KillTimer(countminigame2timer);
        }
    }
    return 1;
}
forward countminigame1();
public countminigame1()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(dUserINT(PlayerName2(i)).("InMinigame") == 1)
        {
            GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 1 ~g~-",1000,3);
            KillTimer(countminigame3timer);
        }
    }
    return 1;
}
forward countminigamego();
public countminigamego()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(dUserINT(PlayerName2(i)).("InMinigame") == 1)
        {
            GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~]~g~-~g~GO GO GO~g~-~y~]~g~-",1000,3);
            TogglePlayerControllable(i,true);
            PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
            KillTimer(countminigame4timer);
            chainsawt = SetTimer("CheckPlayersInChainsawMinigame",1000,1);
            chainsawt2 = SetTimer("InChainsawMinigame",1000,1);
        }
    }
    return 1;
}
forward InChainsawMinigame();
public InChainsawMinigame()
{
    if(MinigameStarted == 1)
    {
        if(PlayersInMinigame <= 1)
        {
            KillTimer(chainsawt);
            PlayersInMinigame = 0;
            MinigameStarted = 0;
            KillTimer(chainsawt2);
        }
    }
    return 1;
}
forward CheckPlayersInChainsawMinigame();
public CheckPlayersInChainsawMinigame()
{
    new string[128];
    if(PlayersInMinigame == 1)
    {
        for(new i; i < MAX_PLAYERS; i++)
        {
            if(dUserINT(PlayerName2(i)).("InMinigame") == 1)
            {
                format(string,sizeof(string),"*[INFO]: %s laime.jo Chainsaw minigame!",PlayerName2(i));
                SendClientMessageToAll(COLOR_YELLOW,string);
                SendClientMessage(i,COLOR_GRAD1,"*[INFO]: Ju-s laime.jote Chainsaw minigame. Gaunate [$50000] ir [300] patirties taљku;.");
                F_GivePlayerMoney(i,50000);
                dUserSetINT(PlayerName2(i)).("Exp",dUserINT(PlayerName2(i)).("Exp")+300);
                ResetPlayerWeapons(i);
                dUserSetINT(PlayerName2(i)).("SpawnNone",1);
                dUserSetINT(PlayerName2(i)).("InMinigame",0);
                TogglePlayerControllable(i,true);
                OnPlayerSpawn(i);
            }
        }
    }
    for(new x; x < MAX_MINIGAME_SLOTS; x++)
    {
        MSInUse[x] = 0;
    }
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 12)
    {
        new string[128];
        if(response)
        {
            if(listitem == 0)
            {
                PlayersInMinigame++;
                if(PlayersInMinigame == 2)
                {
                    MinigameStarted = 1;
                    StartMinigame();
                }
                format(string,sizeof(string),"*[INFO]: %s prisijungл б Chainsaw minigame.",PlayerName2(playerid));
                SendClientMessageToAll(COLOR_YELLOW,string);
                ResetPlayerWeapons(playerid);
                SetPlayerHealth(playerid,100);
                SetPlayerArmour(playerid,100);
                GivePlayerWeapon(playerid,9,1);
                SetPlayerVirtualWorld(playerid,500);
                TogglePlayerControllable(playerid,false);
                if(MSInUse[0] == 0)
                {
                    SetPlayerPos(playerid,1915.0157,2114.0127,10.8203);
                    SetPlayerFacingAngle(playerid,45.7003);
                    SetCameraBehindPlayer(playerid);
                    MSInUse[0] = 1;
                    dUserSetINT(PlayerName2(playerid)).("MSInUseID",0);
                    dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
                }
                else if(MSInUse[1] == 0)
                {
                    SetPlayerPos(playerid,1913.9550,2159.1787,10.8203);
                    SetPlayerFacingAngle(playerid,143.1479);
                    SetCameraBehindPlayer(playerid);
                    MSInUse[1] = 1;
                    dUserSetINT(PlayerName2(playerid)).("MSInUseID",1);
                    dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
                }
                else if(MSInUse[2] == 0)
                {
                    SetPlayerPos(playerid,1882.4536,2159.2205,10.8203);
                    SetPlayerFacingAngle(playerid,229.9421);
                    SetCameraBehindPlayer(playerid);
                    MSInUse[2] = 1;
                    dUserSetINT(PlayerName2(playerid)).("MSInUseID",2);
                    dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
                }
                else if(MSInUse[3] == 0)
                {
                    SetPlayerPos(playerid,1881.7068,2114.2490,10.8203);
                    SetPlayerFacingAngle(playerid,317.6763);
                    SetCameraBehindPlayer(playerid);
                    MSInUse[3] = 1;
                    dUserSetINT(PlayerName2(playerid)).("MSInUseID",3);
                    dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
                }
                else if(MSInUse[4] == 0)
                {
                    SetPlayerPos(playerid,1899.2458,2134.2429,10.8203);
                    SetPlayerFacingAngle(playerid,217.0954);
                    SetCameraBehindPlayer(playerid);
                    MSInUse[4] = 1;
                    dUserSetINT(PlayerName2(playerid)).("MSInUseID",4);
                    dUserSetINT(PlayerName2(playerid)).("InMinigame",1);
                }
            }
        }else
        {
            // nieko
        }
        return 1;
    }
    return 1;
}
Reply
#3

All my server code is created like my given code . Anyway, isn't any advices?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)