GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: JackBronson - 2011. november 11. - 19:10:42

Cím: Score (Pont)
Írta: JackBronson - 2011. november 11. - 19:10:42
Csõsztök melyik az a fügvény amivel ha pl a játékos elér 5 score-t (pontot) akkor valamit véghez visz pl: ad egy uj skint.t
Köszi a választ!
Cím: Score (Pont)
Írta: Csabesz - 2011. november 11. - 19:12:49
Ez?
[pawn]if ( GetPlayerScore ( playerid ) == 5 ) return SetPlayerSkin ( playerid, 23 );[/pawn]
ez nem függvény, csak egy vizsgálat.  ;)
Cím: Score (Pont)
Írta: JackBronson - 2011. november 11. - 19:17:33
Ja kössz!!!!!!!!!!!!!!!
Cím: Score (Pont)
Írta: Pedró - 2011. november 11. - 19:19:26
Timerrel.
 

#include a_samp
forward ScoreTimer(playerid);
new y;
public OnPlayerConnect(playerid)
{
    SetTimerEx(\"ScoreTimer\", 2000, false, \"i\", playerid);
    return 1;
}
public ScoreTimer(playerid)
{
    if(GetPlayerScore(playerid) == 5)
    {
           SendClientMessage(playerid, 0x00FF00AA, \"5 pontod van!\");
   }
    return 1;
}

 
OFF: elõbb elkezdtem írni, de mindegy.
Cím: Score (Pont)
Írta: Sheet - 2011. november 11. - 19:20:53
Idézetet írta: nagyon. date=1321035566\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13280\" data-ipsquote-contentclass=\"forums_Topic
Timerrel.
 

#include a_samp
forward ScoreTimer(playerid);
new y;
public OnPlayerConnect(playerid)
{
    SetTimerEx(\"ScoreTimer\", 2000, false, \"i\", playerid);
    return 1;
}
public ScoreTimer(playerid)
{
    if(GetPlayerScore(playerid) == 5)
    {
           SendClientMessage(playerid, 0x00FF00AA, \"5 pontod van!\");
   }
    return 1;
}

 
OFF: elõbb elkezdtem írni, de mindegy.
 
és ha a két másodperc alatt, feltolja 6 score-ra? akkor nem ér semmit
Igazság vizsgálat kell, OnplayerUpdate alá
Cím: Score (Pont)
Írta: Pedró - 2011. november 11. - 19:23:15
Jó igazad van. Akkor íme a megoldás ami jó:
#include a_samp
public OnPlayerUpdate(playerid)
{
    if(GetPlayerScore(playerid) == 5)
    {
           SendClientMessage(playerid, 0x00FF00AA, \"5 pontod van!\");
   }
    return 1;
}
Cím: Score (Pont)
Írta: kurta999 - 2011. november 11. - 19:29:37
Amíg 5 pontja van, addig fog a fenti kód lefutni.
Tehát akár egy milliárdszor is..
Ez mûködik!
[pawn]
new
Lefutott[MAX_PLAYERS char];
public OnPlayerConnect(playerid)
{
Lefutott{playerid} = false;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(GetPlayerScore(playerid) == 5 && !Lefutott{playerid})
{
   SendClientMessage(playerid, 0x00FF00AA, \"5 pontod van!\");
   Lefutott{playerid} = true;
}
return 1;
}
[/pawn]
De bõven elég lenne egy másodperces timer is, mivel az OnPlayerUpdate kicsit laggolna. ( Mondjuk ilyen kis kódnál nem, de felesleges ilyennel terhelni a szervert )
Cím: Score (Pont)
Írta: JackBronson - 2011. november 12. - 15:43:36
Kurtáé jó lett kössz :) ZÁROK