Szerző Téma: Számláló bug  (Megtekintve 688 alkalommal)

Számláló bug
« Dátum: 2012. december 01. - 08:05:39 »
0 Show voters
\'Reggelt! Olyan problémám lenne, hogy ha bezárom pl. magamat, utána egy test NPC-t [nincs kivel teszteljem ez is jó] akkor bebugol a visszaszámláló:
Tehát ha egyedül vagyok a börtönben akkor rendesen számol vissza nekem, viszont ha még egy valakit [NPC-t] bezárok, akkor az õ számlálását is mutatja meg az enyémet is mp-enként cserélõdve...  :-[
 

#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <IsPlayerLAdmin>
#include <fixchars>
#undef MAX_PLAYERS
#define MAX_PLAYERS 27
#define COLOR_ULTRARED 0xFF0606FF
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_blue 0x375FFFFF
#define hiba 0xFF0606FF
new bool:bezarva[MAX_PLAYERS];
new Text:JailTextDraw[MAX_PLAYERS];
new bortontimer[MAX_PLAYERS];
new textdrawtimer[MAX_PLAYERS];
CMD:bezar(playerid, params[])
{
  new rabID, rabNAME[24], time, indok[128], msg[128], Float:rabpos[3];
  if(IsPlayerLAdmin(playerid) == 0) return SendClientMessage(playerid, hiba, \"HIBA: Nem vagy rendõr!\");
  if(sscanf(params, \"uis[128]\", rabID, time, indok)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /bezár [id] [perc] [indok]\");
  if(rabID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ULTRARED, \"HIBA: Rossz ID!\");
  if(bezarva[rabID] == true) { SendClientMessage(playerid, hiba, \"A játékos már be van zárva!\"); return 1; }
  GetPlayerName(rabID, rabNAME, 24); GetPlayerPos(rabID, rabpos[0], rabpos[1], rabpos[2]);
  SetPlayerPos(rabID, 2857.3625,1736.4978,10.8203); bortontimer[rabID] = SetTimerEx(\"jailtime\", time*60000, false, \"i\", rabID);
  format(msg, sizeof(msg), \"%s megkezdte %d perces börtönbüntetését. {FFFF00}[indok: %s.]\", rabNAME, time, indok);
  SendClientMessageToAll(COLOR_blue, msg); bezarva[rabID] = true; SetPVarInt(playerid, \"lecsukva\", 1);
  Visszaszamlalo(rabID, JailTextDraw[rabID], time*60);
  JailTextDraw[rabID] = TextDrawCreate(327.000000, 377.000000, \"X\");
  TextDrawAlignment(JailTextDraw[rabID], 2);
  TextDrawBackgroundColor(JailTextDraw[rabID], 255);
  TextDrawFont(JailTextDraw[rabID], 2);
  TextDrawLetterSize(JailTextDraw[rabID], 0.620000, 3.200000);
  TextDrawColor(JailTextDraw[rabID], -1);
  TextDrawSetOutline(JailTextDraw[rabID], 0);
  TextDrawSetProportional(JailTextDraw[rabID], 1);
  TextDrawSetShadow(JailTextDraw[rabID], 1);
  return 1;
}
forward jailtime(playerid);  //börtön idõ-számláló
public jailtime(playerid)
{
  SetPlayerPos(playerid, 2843.7068,1938.8298,10.8203); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  SendClientMessage(playerid, COLOR_ORANGE, \"{99FF00}Letöltötted a büntetésed.\"); bezarva[playerid] = false;
  TextDrawDestroy(JailTextDraw[playerid]); SetPVarInt(playerid, \"lecsukva\", 0);
  return 1;
}
forward Visszaszamlalo(playerid, Text:textid[], masodperc);  //textdraw visszaszámláló
public Visszaszamlalo(playerid, Text:textid[], masodperc)
{
  if(masodperc == 0)
  {
      TextDrawHideForPlayer(playerid, textid[playerid]);
  }
  else
  {
      new timestring[32];
      format(timestring, sizeof(timestring), \"%i mp a szabadulásig...\", masodperc);
      TextDrawSetString(textid[playerid], timestring);
      TextDrawShowForPlayer(playerid, textid[playerid]);
      masodperc--;
      textdrawtimer[playerid] = SetTimerEx(\"Visszaszamlalo\", 1000, false, \"ddd\", playerid, textid[playerid], masodperc);
  }
  return 1;
}

 
Köszöntem!
« Utoljára szerkesztve: 2012. december 03. - 17:50:13 írta takehun »

Számláló bug
« Válasz #1 Dátum: 2012. december 03. - 14:30:56 »
0 Show voters
Valami ötlet?  :unsure:   :shurg:
Szerk.:  már rájöttem: a textdraw-al volt a baj, nem kell oda az a [rabID] de azért kösz Casamiro!   :rolleyes:
« Utoljára szerkesztve: 2012. december 03. - 17:50:24 írta takehun »

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
Számláló bug
« Válasz #2 Dátum: 2012. december 03. - 14:41:18 »
0 Show voters
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <IsPlayerLAdmin>
#include <fixchars>
#undef MAX_PLAYERS
        #define MAX_PLAYERS 27
#define COLOR_ULTRARED 0xFF0606FF
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_blue 0x375FFFFF
#define hiba 0xFF0606FF
new bool:bezarva[MAX_PLAYERS];
new Text:JailTextDraw[MAX_PLAYERS];
new bortontimer[MAX_PLAYERS];
new textdrawtimer[MAX_PLAYERS];
CMD:bezar(playerid, params[])
{
  new rabID, rabNAME[24], time, indok[128], msg[128], Float:rabpos[3];
  if(IsPlayerLAdmin(playerid) == 0) return SendClientMessage(playerid, hiba, \"HIBA: Nem vagy rendõr!\");
  if(sscanf(params, \"uis[128]\", rabID, time, indok)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /bezár [id] [perc] [indok]\");
  if(rabID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ULTRARED, \"HIBA: Rossz ID!\");
  if(bezarva[rabID] == true) { SendClientMessage(playerid, hiba, \"A játékos már be van zárva!\"); return 1; }
  GetPlayerName(rabID, rabNAME, 24); GetPlayerPos(rabID, rabpos[0], rabpos[1], rabpos[2]);
  SetPlayerPos(rabID, 2857.3625,1736.4978,10.8203); bortontimer[rabID] = SetTimerEx(\"jailtime\", time*60000, false, \"i\", rabID);
  format(msg, sizeof(msg), \"%s megkezdte %d perces börtönbüntetését. {FFFF00}[indok: %s.]\", rabNAME, time, indok);
  SendClientMessageToAll(COLOR_blue, msg); bezarva[rabID] = true; SetPVarInt(playerid, \"lecsukva\", 1);
  JailTextDraw[rabID] = TextDrawCreate(327.000000, 377.000000, \"X\");
  TextDrawAlignment(JailTextDraw[rabID], 2);
  TextDrawBackgroundColor(JailTextDraw[rabID], 255);
  TextDrawFont(JailTextDraw[rabID], 2);
  TextDrawLetterSize(JailTextDraw[rabID], 0.620000, 3.200000);
  TextDrawColor(JailTextDraw[rabID], -1);
  TextDrawSetOutline(JailTextDraw[rabID], 0);
  TextDrawSetProportional(JailTextDraw[rabID], 1);
  TextDrawSetShadow(JailTextDraw[rabID], 1);
  Visszaszamlalo(rabID, JailTextDraw[rabID], time*60);
  return 1;
}
forward jailtime(playerid);  //börtön idõ-számláló
public jailtime(playerid)
{
  SetPlayerPos(playerid, 2843.7068,1938.8298,10.8203); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  SendClientMessage(playerid, COLOR_ORANGE, \"{99FF00}Letöltötted a büntetésed.\"); bezarva[playerid] = false;
  TextDrawDestroy(JailTextDraw[playerid]); SetPVarInt(playerid, \"lecsukva\", 0);
  return 1;
}
forward Visszaszamlalo(playerid, Text:textid[], masodperc);  //textdraw visszaszámláló
public Visszaszamlalo(playerid, Text:textid[], masodperc)
{
  if(masodperc == 0)
  {
      TextDrawHideForPlayer(playerid, textid[playerid]);
  }
  else
  {
      new timestring[32];
      format(timestring, sizeof(timestring), \"%i mp a szabadulásig...\", masodperc);
      TextDrawSetString(textid[playerid], timestring);
      TextDrawShowForPlayer(playerid, textid[playerid]);
      masodperc--;
      textdrawtimer[playerid] = SetTimerEx(\"Visszaszamlalo\", 1000, false, \"ddd\", playerid, textid[playerid], masodperc);
  }
  return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal