Wysłany: 2012-08-02, 21:51
gama101
Wiek: 32 Na forum: 6190 dni Posty: 10
Nick w MP: Gamson
Piwa : 160
Witam. Mam taki problem. Poni?szy kod, tempomat, dzia?a tylko dla ID 0. Wie kto? jak temu zaradzi? tak aby dzia?a? dla wszystkich graczy?
Kod:
#include <a_samp>
#define VERSION "4.0"
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Tempomat jest ju? w??czony."
#define COLOR2 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Komenda /tempomat dzia?a tylko w poje?dzie."
#define COLOR3 0x5ed927ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje w??czony
#define COLOR4 0xd9c227ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje wy??czony
#define TIMER_DELAY 500 //czas, co jaki ma by? ustawiana szybko?? pojazdu
// (ma?a warto?? zmniejsza optymalizacj?, lecz jazda wygl?da p?ynniej przy ni?szych szybko?ciach)
#define ENABLING 3
// 1 - w??czanie komend?
// 2 - w??czanie klawiszem mini-misji
// 3 - oba powy?sze
#define foreach(Player,%1) for(new %1; %1 <= HighestPlayerID; %1++) if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots,
HighestPlayerID;
forward Tempomat_Refresh();
forward Tempomat_Version(index, response_code, data[]);
Float:GetHeadingAngle(Float:targetX, Float:targetY, Float:entityX, Float:entityY) //autor: Destrojer
{
new
Float:vectorX = targetX - entityX,
Float:vectorY = targetY - entityY,
Float:HeadingAngle;
HeadingAngle = atan(-(vectorX/vectorY));
if(vectorY < 0)
HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle - 180.0 : HeadingAngle + 180.0;
return HeadingAngle;
}
public OnFilterScriptInit()
{
Slots = GetMaxPlayers();
for(new playerid; playerid < Slots; playerid++)
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
HighestPlayerID = playerid;
SetTimer("Tempomat_Refresh", TIMER_DELAY, 1);
print("W??czono tempomat "VERSION" by DiggeR.");
return 1;
}
public OnFilterScriptExit()
return print("Wy??czono tempomat "VERSION" by DiggeR.");
public OnPlayerConnect(playerid)
{
if(playerid > HighestPlayerID && !IsPlayerNPC(playerid))
HighestPlayerID = playerid;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
for(new player; player < Slots; player++)
if(IsPlayerConnected(player) && !IsPlayerNPC(player))
HighestPlayerID = playerid;
return 1;
}
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/tempomat", true) //zcmd do jednej komendy?
|| !strcmp(cmdtext, "/cruise-control", true)
|| !strcmp(cmdtext, "/cruisecontrol", true))
return EnableCruiseControl(playerid);
return 0;
}
#endif
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
DisableCruiseControl(playerid);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
#if ENABLING == 2 || ENABLING == 3
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return DisableCruiseControl(playerid);
#endif
if(newkeys & 8 || newkeys & 32 || newkeys & 128)
return DisableCruiseControl(playerid);
}
#if ENABLING == 2 || ENABLING == 3
else
{
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return EnableCruiseControl(playerid);
}
#endif
}
return 1;
}
public Tempomat_Refresh()
{
new vehicleid,
Float:rotZ,
Float:velX,
Float:velY,
Float:velZ,
Float:speed;
foreach(Player, playerid)
{
vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid != 0 && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
speed = GetPVarFloat(playerid, "Tempomat_Speed");
GetVehicleVelocity(vehicleid, velX, velY, velZ);
if(velX == 0.0 && velY == 0.0 && velZ == 0.0)
GetVehicleZAngle(vehicleid, rotZ);
else
rotZ = Float:GetHeadingAngle(velX, velY, 0.0, 0.0);
SetVehicleVelocity(vehicleid, speed * floatsin(-rotZ, degrees), speed * floatcos(-rotZ, degrees), velZ);
}
}
return 1;
}
EnableCruiseControl(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
return 1;
else if(GetPVarInt(playerid, "Tempomat_Enabled") != 0)
return 1;
else
{
new vehicleid = GetPlayerVehicleID(playerid),
Float:velX,
Float:velY,
Float:velZ;
GetVehicleVelocity(vehicleid, velX, velY, velZ);
new Float:speed = floatsqroot(velX * velX + velY * velY + velZ * velZ);
if(speed > 0.1)
{
SetPVarFloat(playerid, "Tempomat_Speed", speed);
SetPVarInt(playerid, "Tempomat_Enabled", 1);
}
else
return 1;
}
return 1;
}
DisableCruiseControl(playerid)
{
DeletePVar(playerid, "Tempomat_Enabled");
DeletePVar(playerid, "Tempomat_Speed");
return 1;
}
Za pomoc krata zimnego na upalne dni
Wysłany: 2012-08-04, 16:33
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Na cholere ktos wymysla takie ***** jak te petle z najwyzszym id..
Kod: #include <a_samp>
#define VERSION "4.0"
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Tempomat jest ju? w??czony."
#define COLOR2 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Komenda /tempomat dzia?a tylko w poje?dzie."
#define COLOR3 0x5ed927ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje w??czony
#define COLOR4 0xd9c227ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje wy??czony
#define TIMER_DELAY 500 //czas, co jaki ma by? ustawiana szybko?? pojazdu
// (ma?a warto?? zmniejsza optymalizacj?, lecz jazda wygl?da p?ynniej przy ni?szych szybko?ciach)
#define ENABLING 3
// 1 - w??czanie komend?
// 2 - w??czanie klawiszem mini-misji
// 3 - oba powy?sze
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots;
forward Tempomat_Refresh();
forward Tempomat_Version(index, response_code, data[]);
Float:GetHeadingAngle(Float:targetX, Float:targetY, Float:entityX, Float:entityY) //autor: Destrojer
{
new
Float:vectorX = targetX - entityX,
Float:vectorY = targetY - entityY,
Float:HeadingAngle;
HeadingAngle = atan(-(vectorX/vectorY));
if(vectorY < 0)
HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle - 180.0 : HeadingAngle + 180.0;
return HeadingAngle;
}
public OnFilterScriptInit()
{
Slots = GetMaxPlayers();
SetTimer("Tempomat_Refresh", TIMER_DELAY, 1);
print("W??czono tempomat "VERSION" by DiggeR (bez durnych petli)");
return 1;
}
public OnFilterScriptExit()
return print("Wy??czono tempomat "VERSION" by DiggeR.");
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/tempomat", true) //zcmd do jednej komendy?
|| !strcmp(cmdtext, "/cruise-control", true)
|| !strcmp(cmdtext, "/cruisecontrol", true))
return EnableCruiseControl(playerid);
return 0;
}
#endif
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
DisableCruiseControl(playerid);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
#if ENABLING == 2 || ENABLING == 3
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return DisableCruiseControl(playerid);
#endif
if(newkeys & 8 || newkeys & 32 || newkeys & 128)
return DisableCruiseControl(playerid);
}
#if ENABLING == 2 || ENABLING == 3
else
{
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return EnableCruiseControl(playerid);
}
#endif
}
return 1;
}
public Tempomat_Refresh()
{
new vehicleid,
Float:rotZ,
Float:velX,
Float:velY,
Float:velZ,
Float:speed;
for(new omgwtf; omgwtf < Slots; omgwtf++)
{
vehicleid = GetPlayerVehicleID(omgwtf);
if(vehicleid != 0 && GetPVarInt(omgwtf, "Tempomat_Enabled") == 1)
{
speed = GetPVarFloat(playerid, "Tempomat_Speed");
GetVehicleVelocity(vehicleid, velX, velY, velZ);
if(velX == 0.0 && velY == 0.0 && velZ == 0.0)
GetVehicleZAngle(vehicleid, rotZ);
else
rotZ = Float:GetHeadingAngle(velX, velY, 0.0, 0.0);
SetVehicleVelocity(vehicleid, speed * floatsin(-rotZ, degrees), speed * floatcos(-rotZ, degrees), velZ);
}
}
return 1;
}
EnableCruiseControl(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
return 1;
else if(GetPVarInt(playerid, "Tempomat_Enabled") != 0)
return 1;
else
{
new vehicleid = GetPlayerVehicleID(playerid),
Float:velX,
Float:velY,
Float:velZ;
GetVehicleVelocity(vehicleid, velX, velY, velZ);
new Float:speed = floatsqroot(velX * velX + velY * velY + velZ * velZ);
if(speed > 0.1)
{
SetPVarFloat(playerid, "Tempomat_Speed", speed);
SetPVarInt(playerid, "Tempomat_Enabled", 1);
}
else
return 1;
}
return 1;
}
DisableCruiseControl(playerid)
{
DeletePVar(playerid, "Tempomat_Enabled");
DeletePVar(playerid, "Tempomat_Speed");
return 1;
}
Sprobuj teraz
Wysłany: 2012-08-13, 19:57
Zielony Banan
Wiek: 31 Na forum: 5195 dni Posty: 35
Piwa : 1
Jak go kompiluje mam taki error
\tempomat.pwn(109) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Wysłany: 2012-08-13, 20:01
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Kod: #include <a_samp>
#define VERSION "4.0"
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Tempomat jest ju? w??czony."
#define COLOR2 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Komenda /tempomat dzia?a tylko w poje?dzie."
#define COLOR3 0x5ed927ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje w??czony
#define COLOR4 0xd9c227ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje wy??czony
#define TIMER_DELAY 500 //czas, co jaki ma by? ustawiana szybko?? pojazdu
// (ma?a warto?? zmniejsza optymalizacj?, lecz jazda wygl?da p?ynniej przy ni?szych szybko?ciach)
#define ENABLING 3
// 1 - w??czanie komend?
// 2 - w??czanie klawiszem mini-misji
// 3 - oba powy?sze
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots;
forward Tempomat_Refresh();
forward Tempomat_Version(index, response_code, data[]);
Float:GetHeadingAngle(Float:targetX, Float:targetY, Float:entityX, Float:entityY) //autor: Destrojer
{
new
Float:vectorX = targetX - entityX,
Float:vectorY = targetY - entityY,
Float:HeadingAngle;
HeadingAngle = atan(-(vectorX/vectorY));
if(vectorY < 0)
HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle - 180.0 : HeadingAngle + 180.0;
return HeadingAngle;
}
public OnFilterScriptInit()
{
Slots = GetMaxPlayers();
SetTimer("Tempomat_Refresh", TIMER_DELAY, 1);
print("W??czono tempomat "VERSION" by DiggeR (bez durnych petli)");
return 1;
}
public OnFilterScriptExit()
return print("Wy??czono tempomat "VERSION" by DiggeR.");
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/tempomat", true) //zcmd do jednej komendy?
|| !strcmp(cmdtext, "/cruise-control", true)
|| !strcmp(cmdtext, "/cruisecontrol", true))
return EnableCruiseControl(playerid);
return 0;
}
#endif
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
DisableCruiseControl(playerid);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
#if ENABLING == 2 || ENABLING == 3
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return DisableCruiseControl(playerid);
#endif
if(newkeys & 8 || newkeys & 32 || newkeys & 128)
return DisableCruiseControl(playerid);
}
#if ENABLING == 2 || ENABLING == 3
else
{
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return EnableCruiseControl(playerid);
}
#endif
}
return 1;
}
public Tempomat_Refresh()
{
new vehicleid,
Float:rotZ,
Float:velX,
Float:velY,
Float:velZ,
Float:speed;
for(new omgwtf; omgwtf < Slots; omgwtf++)
{
vehicleid = GetPlayerVehicleID(omgwtf);
if(vehicleid != 0 && GetPVarInt(omgwtf, "Tempomat_Enabled") == 1)
{
speed = GetPVarFloat(omgwtf , "Tempomat_Speed");
GetVehicleVelocity(vehicleid, velX, velY, velZ);
if(velX == 0.0 && velY == 0.0 && velZ == 0.0)
GetVehicleZAngle(vehicleid, rotZ);
else
rotZ = Float:GetHeadingAngle(velX, velY, 0.0, 0.0);
SetVehicleVelocity(vehicleid, speed * floatsin(-rotZ, degrees), speed * floatcos(-rotZ, degrees), velZ);
}
}
return 1;
}
EnableCruiseControl(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
return 1;
else if(GetPVarInt(playerid, "Tempomat_Enabled") != 0)
return 1;
else
{
new vehicleid = GetPlayerVehicleID(playerid),
Float:velX,
Float:velY,
Float:velZ;
GetVehicleVelocity(vehicleid, velX, velY, velZ);
new Float:speed = floatsqroot(velX * velX + velY * velY + velZ * velZ);
if(speed > 0.1)
{
SetPVarFloat(playerid, "Tempomat_Speed", speed);
SetPVarInt(playerid, "Tempomat_Enabled", 1);
}
else
return 1;
}
return 1;
}
DisableCruiseControl(playerid)
{
DeletePVar(playerid, "Tempomat_Enabled");
DeletePVar(playerid, "Tempomat_Speed");
return 1;
}
Wysłany: 2012-08-13, 20:31
gama101
Wiek: 32 Na forum: 6190 dni Posty: 10
Nick w MP: Gamson
Piwa : 160
Dzi?kuj? xqz! Lec? obiecane piwka
Wysłany: 2012-08-14, 00:18
Zielony Banan
Wiek: 31 Na forum: 5195 dni Posty: 35
Piwa : 1
tempomat.pwn(126) : error 017: undefined symbol "GameInfo" - Gdzie doda? gameinfo ?
Kod: #include <a_samp>
#define VERSION "4.0"
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Tempomat jest ju? w??czony."
#define COLOR2 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Komenda /tempomat dzia?a tylko w poje?dzie."
#define COLOR3 0x5ed927ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje w??czony
#define COLOR4 0xd9c227ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje wy??czony
#define TIMER_DELAY 500 //czas, co jaki ma by? ustawiana szybko?? pojazdu
// (ma?a warto?? zmniejsza optymalizacj?, lecz jazda wygl?da p?ynniej przy ni?szych szybko?ciach)
#define ENABLING 3
// 1 - w??czanie komend?
// 2 - w??czanie klawiszem mini-misji
// 3 - oba powy?sze
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots;
forward Tempomat_Refresh();
forward Tempomat_Version(index, response_code, data[]);
Float:GetHeadingAngle(Float:targetX, Float:targetY, Float:entityX, Float:entityY) //autor: Destrojer
{
new
Float:vectorX = targetX - entityX,
Float:vectorY = targetY - entityY,
Float:HeadingAngle;
HeadingAngle = atan(-(vectorX/vectorY));
if(vectorY < 0)
HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle - 180.0 : HeadingAngle + 180.0;
return HeadingAngle;
}
public OnFilterScriptInit()
{
Slots = GetMaxPlayers();
SetTimer("Tempomat_Refresh", TIMER_DELAY, 1);
print("W??czono tempomat "VERSION" by DiggeR (bez durnych petli)");
return 1;
}
public OnFilterScriptExit()
return print("Wy??czono tempomat "VERSION" by DiggeR.");
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/tempomat", true) //zcmd do jednej komendy?
|| !strcmp(cmdtext, "/cruise-control", true)
|| !strcmp(cmdtext, "/cruisecontrol", true))
return EnableCruiseControl(playerid);
return 0;
}
#endif
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
DisableCruiseControl(playerid);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
#if ENABLING == 2 || ENABLING == 3
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return DisableCruiseControl(playerid);
#endif
if(newkeys & 8 || newkeys & 32 || newkeys & 128)
return DisableCruiseControl(playerid);
}
#if ENABLING == 2 || ENABLING == 3
else
{
if((newkeys & KEY_SUBMISSION) && (newkeys & KEY_LOOK_LEFT))
return EnableCruiseControl(playerid);
}
#endif
}
return 1;
}
public Tempomat_Refresh()
{
new vehicleid,
Float:rotZ,
Float:velX,
Float:velY,
Float:velZ,
Float:speed;
for(new omgwtf; omgwtf < Slots; omgwtf++)
{
vehicleid = GetPlayerVehicleID(omgwtf);
if(vehicleid != 0 && GetPVarInt(omgwtf, "Tempomat_Enabled") == 1)
{
speed = GetPVarFloat(omgwtf , "Tempomat_Speed");
GetVehicleVelocity(vehicleid, velX, velY, velZ);
if(velX == 0.0 && velY == 0.0 && velZ == 0.0)
GetVehicleZAngle(vehicleid, rotZ);
else
rotZ = Float:GetHeadingAngle(velX, velY, 0.0, 0.0);
SetVehicleVelocity(vehicleid, speed * floatsin(-rotZ, degrees), speed * floatcos(-rotZ, degrees), velZ);
}
}
return 1;
}
EnableCruiseControl(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
GameInfo(playerid,"~r~nie masz tyle kasy",1);
else if(GetPVarInt(playerid, "Tempomat_Enabled") != 0)
SendClientMessage(playerid, COLOR1, "~n~~n~~n~~r~Tempomat jest juz wlaczony,aby go wylaczyc nacisnij Space.");
else
{
new vehicleid = GetPlayerVehicleID(playerid),
Float:velX,
Float:velY,
Float:velZ;
GetVehicleVelocity(vehicleid, velX, velY, velZ);
new Float:speed = floatsqroot(velX * velX + velY * velY + velZ * velZ);
if(speed > 0.1)
{
SetPVarFloat(playerid, "Tempomat_Speed", speed);
SetPVarInt(playerid, "Tempomat_Enabled", 1);
SendClientMessage(playerid, COLOR1, "~n~~n~~n~~r~Tempomat wlaczony,aby go wylaczyc nacisnij Space.");
}
else
SendClientMessage(playerid, COLOR1, "~n~~n~~n~~r~Nie mozesz wlaczyc tempomatu przy takiej predkosci. Przyspiesz!");
}
return 1;
}
DisableCruiseControl(playerid)
{
DeletePVar(playerid, "Tempomat_Enabled");
DeletePVar(playerid, "Tempomat_Speed");
GameInfo(playerid,"~r~Tempomat zostal wylaczony",1);
return 1;
}
Wysłany: 2012-08-14, 00:41
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Zielony Banan , Pawn #include <a_samp>
#define VERSION "4.0"
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Tempomat jest ju? w??czony."
#define COLOR2 0xf65d5dff //kolor wiadomo?ci, kt?ra wy?wietla b??d "Komenda /tempomat dzia?a tylko w poje?dzie."
#define COLOR3 0x5ed927ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje w??czony
#define COLOR4 0xd9c227ff //kolor wiadomo?ci, kt?ra wy?wietla si?, gdy tempomat zostaje wy??czony
#define TIMER_DELAY 500 //czas, co jaki ma by? ustawiana szybko?? pojazdu
// (ma?a warto?? zmniejsza optymalizacj?, lecz jazda wygl?da p?ynniej przy ni?szych szybko?ciach)
#define ENABLING 3
// 1 - w??czanie komend?
// 2 - w??czanie klawiszem mini-misji
// 3 - oba powy?sze
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots ;
forward Tempomat_Refresh ();
forward Tempomat_Version ( index , response_code , data []);
Float : GetHeadingAngle ( Float : targetX , Float : targetY , Float : entityX , Float : entityY ) //autor: Destrojer
{
new
Float : vectorX = targetX - entityX ,
Float : vectorY = targetY - entityY ,
Float : HeadingAngle ;
HeadingAngle = atan (-( vectorX / vectorY ));
if( vectorY < 0 )
HeadingAngle = ( HeadingAngle >= 180 ) ? HeadingAngle - 180.0 : HeadingAngle + 180.0 ;
return HeadingAngle ;
}
public OnFilterScriptInit ()
{
Slots = GetMaxPlayers ();
SetTimer ( "Tempomat_Refresh" , TIMER_DELAY , 1 );
print( "W??czono tempomat " VERSION " by DiggeR (bez durnych petli)" );
return 1 ;
}
public OnFilterScriptExit ()
return print( "Wy??czono tempomat " VERSION " by DiggeR." );
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText ( playerid , cmdtext [])
{
if(! strcmp ( cmdtext , "/tempomat" , true ) //zcmd do jednej komendy?
|| ! strcmp ( cmdtext , "/cruise-control" , true )
|| ! strcmp ( cmdtext , "/cruisecontrol" , true ))
return EnableCruiseControl ( playerid );
return 0 ;
}
#endif
public OnPlayerStateChange ( playerid , newstate , oldstate )
{
if( oldstate == PLAYER_STATE_DRIVER && GetPVarInt ( playerid , "Tempomat_Enabled" ) == 1 )
DisableCruiseControl ( playerid );
return 1 ;
}
public OnPlayerKeyStateChange ( playerid , newkeys , oldkeys )
{
if( IsPlayerInAnyVehicle ( playerid ))
{
if( GetPVarInt ( playerid , "Tempomat_Enabled" ) == 1 )
{
#if ENABLING == 2 || ENABLING == 3
if(( newkeys & KEY_SUBMISSION ) && ( newkeys & KEY_LOOK_LEFT ))
return DisableCruiseControl ( playerid );
#endif
if( newkeys & 8 || newkeys & 32 || newkeys & 128 )
return DisableCruiseControl ( playerid );
}
#if ENABLING == 2 || ENABLING == 3
else
{
if(( newkeys & KEY_SUBMISSION ) && ( newkeys & KEY_LOOK_LEFT ))
return EnableCruiseControl ( playerid );
}
#endif
}
return 1 ;
}
public Tempomat_Refresh ()
{
new vehicleid ,
Float : rotZ ,
Float : velX ,
Float : velY ,
Float : velZ ,
Float : speed ;
for(new omgwtf ; omgwtf < Slots ; omgwtf ++)
{
vehicleid = GetPlayerVehicleID ( omgwtf );
if( vehicleid != 0 && GetPVarInt ( omgwtf , "Tempomat_Enabled" ) == 1 )
{
speed = GetPVarFloat ( omgwtf , "Tempomat_Speed" );
GetVehicleVelocity ( vehicleid , velX , velY , velZ );
if( velX == 0.0 && velY == 0.0 && velZ == 0.0 )
GetVehicleZAngle ( vehicleid , rotZ );
else
rotZ = Float : GetHeadingAngle ( velX , velY , 0.0 , 0.0 );
SetVehicleVelocity ( vehicleid , speed * floatsin (- rotZ , degrees ), speed * floatcos (- rotZ , degrees ), velZ );
}
}
return 1 ;
}
EnableCruiseControl ( playerid )
{
if( GetPlayerState ( playerid ) != PLAYER_STATE_DRIVER )
SendClientMessage ( playerid ,- 1 , "nie jestes kierowca!" );
else if( GetPVarInt ( playerid , "Tempomat_Enabled" ) != 0 )
SendClientMessage ( playerid , COLOR1 , "~n~~n~~n~~r~Tempomat jest juz wlaczony,aby go wylaczyc nacisnij Space." );
else
{
new vehicleid = GetPlayerVehicleID ( playerid ),
Float : velX ,
Float : velY ,
Float : velZ ;
GetVehicleVelocity ( vehicleid , velX , velY , velZ );
new Float : speed = floatsqroot ( velX * velX + velY * velY + velZ * velZ );
if( speed > 0.1 )
{
SetPVarFloat ( playerid , "Tempomat_Speed" , speed );
SetPVarInt ( playerid , "Tempomat_Enabled" , 1 );
SendClientMessage ( playerid , COLOR1 , "~n~~n~~n~~r~Tempomat wlaczony,aby go wylaczyc nacisnij Space." );
}
else
SendClientMessage ( playerid , COLOR1 , "~n~~n~~n~~r~Nie mozesz wlaczyc tempomatu przy takiej predkosci. Przyspiesz!" );
}
return 1 ;
}
DisableCruiseControl ( playerid )
{
DeletePVar ( playerid , "Tempomat_Enabled" );
DeletePVar ( playerid , "Tempomat_Speed" );
SendClientMessage ( playerid ,- 1 , "Tempomat zostal wylaczony" );
return 1 ;
}
Wysłany: 2012-08-14, 00:46
Zielony Banan
Wiek: 31 Na forum: 5195 dni Posty: 35
Piwa : 1
SendClientMessage(playerid, COLOR1, "~n~~n~~n~~r~Tempomat jest juz wlaczony,aby go wylaczyc nacisnij Space."); - chodzi mi o to, ?eby by?o tutaj GameInfo zamiast tego SendClientMessage, chce aby by?o GameInfo ...;/
Bo t? informacje pokazuje tylko w kliencie a ja chcialbym aby to sie np pokazywa?o na g?rze ekranu np ~n~~n~~n~~r~
Wysłany: 2012-08-14, 01:09
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Zielony Banan , wiec zrob sobie definicje tej funkcji,
Kod: #define GameInfo(%1,%2,%3) GameTextForPlayer(%1, %2, 2000, %3);
I przerob sobie te SendClientMessage na GameInfo
Wysłany: 2012-10-07, 21:38
zuraw13
Wiek: 27 Na forum: 5073 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Mo?na zmieni? ?eby zamiast klika? klawisz 2 to klikamy klawisz 3.
Tagi: tempomat :: działa :: tylko :: dla
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: