KillTimer bug or something -
BuLLeT[LTU] - 11.10.2009
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;
}
Re: KillTimer bug or something -
member - 11.10.2009
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;
}
Re: KillTimer bug or something -
BuLLeT[LTU] - 12.10.2009
All my server code is created like my given code

. Anyway, isn't any advices?