Szerző Téma: /fix parancs probléma!  (Megtekintve 1163 alkalommal)

/fix parancs probléma!
« Dátum: 2015. május 26. - 12:30:14 »
0 Show voters
Segítségeteket szeretném kérni egy alap szkript miatt.
A gondom az lenne hogy restartolom a szerót és belépek a játékba.Kipróbálásként vminek neki megyek nem javul meg ,ezért bekapcsolom az autójavítót. Ez eddig minden oké.
PROBLÉMA:Ha kilépek a játékból és újból belépek (Nem restartolom!) a játékba akkor már úgy érzékeli hogy autójavító bekapcsolva maradt ez miért van?Elvileg az OnPlayerConnect-nél állítom be hogy a player fellép akkor maradjon kikapcsolva. :wall: :wall: :wall: :weep: :hmmm:
 
#include <a_samp>
#include <zcmd>
#define COLOR_RED          0xFF0000FF
#define COLOR_GREEN       0x00FF00FF
new Kocsijavitas[MAX_PLAYER_NAME];
new Javitas;
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
    Kocsijavitas[playerid] = 0;
return 1;
}
forward Kocsijavito(playerid, vehicleid);
public Kocsijavito(playerid, vehicleid)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
RepairVehicle(GetPlayerVehicleID(playerid));
}
CMD:fix(playerid, params[])
{
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage (playerid,0xFFFF00FF,\"Ezt a parancsot, csak kocsiban használhatod!\");
{
if(Kocsijavitas[playerid] == 0)
{
   Javitas = SetTimer(\"Kocsijavito\", 800, true);
      SendClientMessage(playerid, COLOR_GREEN, \"Automata Javitás Bekapcsolva (Kikapcsolni a [/fix] Paranccsal)!\");
           Kocsijavitas[playerid] = 1;
       }
else if(Kocsijavitas[playerid] == 1)
{
   SendClientMessage(playerid, COLOR_RED, \"Automata javítás kikapcsolva!\");
   Kocsijavitas[playerid] = 0;
   KillTimer(Javitas);
}
}
return 1;
}

 
Egyetlen bajom van hogy többféle módon is próbálkoztam. Pl.
 

new Kocsijavitas[MAX_PLAYERS];
new Kocsijavitas[MAX_PLAYER_NAME];
new bool:Kocsijavitas[MAX_PLAYERS];
new bool:Kocsijavitas[MAX_PLAYER_NAME];
« Utoljára szerkesztve: 2015. május 26. - 12:51:57 írta ƒlaﻛh »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/fix parancs probléma!
« Válasz #1 Dátum: 2015. május 26. - 12:53:42 »
0 Show voters
public Kocsijavito(playerid, vehicleid)

 

Javitas = SetTimer(\"Kocsijavito\", 800, true);

 
ez így nagyon nem jó...főleg ha 2x írod be akkor 2x indul el a timer...
 
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage (playerid,0xFFFF00FF,\"Ezt a parancsot, csak kocsiban használhatod!\");
{

 
itt nem kell blokkot nyitni, mivel az if-hez tartozó kód a return SendClientMessage
alakítsd át, hogy vagy 1 timer legyen és akkor abban ciklussal javítasz, vagy játékosonként timer de akkor SetTimerEx-et használd!
http://wiki.sa-mp.com/wiki/SetTimerEx
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/fix parancs probléma!
« Válasz #2 Dátum: 2015. május 26. - 15:35:24 »
0 Show voters
Ezt hogy érted?
Letudod írni nekem a teljes scriptet?(Enyémről másolva!)

Nem elérhető AnthonyGates

  • 546
  • AnthonyGates
    • Profil megtekintése
/fix parancs probléma!
« Válasz #3 Dátum: 2015. május 26. - 17:08:59 »
+1 Show voters
OnPlayerDisconnect:
 
KillTimer(Javitas);

 
Mivel hiába lépsz ki, ha az időzítő fut tovább.

/fix parancs probléma!
« Válasz #4 Dátum: 2015. május 26. - 18:01:01 »
0 Show voters
Mindig a legegyszerűbb megoldást keresd :)
 

#include <a_samp>
#include <zcmd>
#define COLOR_RED      0xFF0000FF
#define COLOR_GREEN      0x00FF00FF
new Kocsijavitas[MAX_PLAYERS];
CMD:fix(playerid)
{
if(Kocsijavitas[playerid] == 0) SendClientMessage(playerid, COLOR_GREEN, \"Automata javítás bekapcsolva!\"), Kocsijavitas[playerid] = 1;
else if(Kocsijavitas[playerid] == 1) SendClientMessage(playerid, COLOR_RED, \"Automata javítás kikapcsolva!\"), Kocsijavitas[playerid] = 0;
return 1;
}
public OnPlayerConnect(playerid)
{
Kocsijavitas[playerid] = 0;
return 1;
}
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
if(Kocsijavitas[playerid] == 1) RepairVehicle(vehicleid);
return 1;
}

/fix parancs probléma!
« Válasz #5 Dátum: 2015. május 26. - 21:42:09 »
0 Show voters
Holnap kipróbálom!

Dupla hozzászólás automatikusan összefûzve. ( 2015. május 27. - 07:52:38 )

Köszönöm a tanácsokat de AnthonyGates-é bevált(kicsi átalakítással) de azért köszi mindenkinek a tanácsokat. A témát megoldottam.
« Utoljára szerkesztve: 2015. május 27. - 07:52:38 írta bazsina »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal