Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-08-02, 21:51


gama101







Wiek: 32
Na forum: 6191 dni
Posty: 10
Nick w MP: Gamson

Piwa: 160

Respekt: 57,1

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 :piwo: na upalne dni :D

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-04, 16:33


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-13, 19:57


Zielony Banan







Wiek: 31
Na forum: 5196 dni
Posty: 35

Piwa: 1

Respekt: 42,6

Ostrzeżeń: 100%
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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-13, 20:01


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-13, 20:31


gama101







Wiek: 32
Na forum: 6191 dni
Posty: 10
Nick w MP: Gamson

Piwa: 160

Respekt: 57,1

Dzi?kuj? xqz! Lec? obiecane piwka :)

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-14, 00:18


Zielony Banan







Wiek: 31
Na forum: 5196 dni
Posty: 35

Piwa: 1

Respekt: 42,6

Ostrzeżeń: 100%
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;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-14, 00:41


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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 Slotsforward Tempomat_Refresh(); 
forward Tempomat_Version(indexresponse_codedata[]); 

Float:GetHeadingAngle(Float:targetXFloat:targetYFloat:entityXFloat:entityY//autor: Destrojer 
{ 
new 
Float:vectorX targetX entityXFloat:vectorY targetY entityYFloat:HeadingAngleHeadingAngle atan(-(vectorX/vectorY)); 

if(vectorY 0HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle 180.0 HeadingAngle 180.0; 

return HeadingAngle; 
} 

public OnFilterScriptInit() 
{ 
Slots GetMaxPlayers(); 

SetTimer("Tempomat_Refresh"TIMER_DELAY1); 
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(playeridcmdtext[]) 
{ 
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(playeridnewstateoldstate) 
{ 
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid"Tempomat_Enabled") == 1DisableCruiseControl(playerid); 
return 1; 
} 

public OnPlayerKeyStateChange(playeridnewkeysoldkeys) 
{ 
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 || 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 vehicleidFloat:rotZFloat:velXFloat:velYFloat:velZFloat:speed; 

for(new omgwtfomgwtf Slotsomgwtf++) 
{ 
vehicleid GetPlayerVehicleID(omgwtf); 

if(vehicleid != && GetPVarInt(omgwtf"Tempomat_Enabled") == 1) 
{ 
speed GetPVarFloat(omgwtf "Tempomat_Speed"); 
GetVehicleVelocity(vehicleidvelXvelYvelZ); 

if(velX == 0.0 && velY == 0.0 && velZ == 0.0GetVehicleZAngle(vehicleidrotZ); 
else 
rotZ Float:GetHeadingAngle(velXvelY0.00.0); 

SetVehicleVelocity(vehicleidspeed floatsin(-rotZdegrees), speed floatcos(-rotZdegrees), velZ); 
} 
} 
return 1; 
} 

EnableCruiseControl(playerid) 
{ 
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVERSendClientMessage(playerid,-1,"nie jestes kierowca!"); 
else if(GetPVarInt(playerid"Tempomat_Enabled") != 0SendClientMessage(playeridCOLOR1"~n~~n~~n~~r~Tempomat jest juz wlaczony,aby go wylaczyc nacisnij Space."); 
else 
{ 
new vehicleid GetPlayerVehicleID(playerid), 
Float:velXFloat:velYFloat:velZGetVehicleVelocity(vehicleidvelXvelYvelZ); 

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(playeridCOLOR1"~n~~n~~n~~r~Tempomat wlaczony,aby go wylaczyc nacisnij Space."); 
} 
else 
SendClientMessage(playeridCOLOR1"~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; 
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-14, 00:46


Zielony Banan







Wiek: 31
Na forum: 5196 dni
Posty: 35

Piwa: 1

Respekt: 42,6

Ostrzeżeń: 100%
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~

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-14, 01:09


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-10-07, 21:38


zuraw13







Wiek: 27
Na forum: 5074 dni
Posty: 95
Nick w MP: zuraw113

Piwa: 191

Respekt: 50

Mo?na zmieni? ?eby zamiast klika? klawisz 2 to klikamy klawisz 3.

Podpis
Moje skrypty i mapy:
-Baza by Zuraw [SAMP]
-RC Vehicles enter by Zuraw [SAMP]
-Neony by zuraw [SAMP]
Postaw piwo autorowi tego posta
 

 
Tagi: tempomat :: działa :: tylko :: dla
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Tempomat działa tylko dla ID 0 Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku