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: kriszrap - 2013. január 15. - 22:11:59

Cím: tesxtdraw nem müxik:)
Írta: kriszrap - 2013. január 15. - 22:11:59
Sziasztok!!
 

new Float:svx[MAX_PLAYERS],
    Float:svy[MAX_PLAYERS],
Float:svz[MAX_PLAYERS],
Float:s1[MAX_PLAYERS],
    s2[MAX_PLAYERS],
s3[MAX_PLAYERS][256],
Text:speedokijelzo,
stimer[MAX_PLAYERS];
forward speedometer(playerid);
public OnGameModeInit()
{
//================textdraw=====================
speedokijelzo = TextDrawCreate(581 ,407 , \" \");
TextDrawFont(speedokijelzo , 2);
TextDrawLetterSize(speedokijelzo , 0.3, 2.1);
TextDrawColor(speedokijelzo , 0xff0000FF);
TextDrawSetOutline(speedokijelzo , false);
TextDrawSetProportional(speedokijelzo , true);
TextDrawSetShadow(speedokijelzo , 1);
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
    stimer[playerid] = SetTimerEx(\"speedometer\", 255, true, \"i\", playerid);
    }
return 1;
}
public speedometer(playerid)
{
    GetVehicleVelocity(GetPlayerVehicleID(playerid), svx[playerid], svy[playerid], svz[playerid]);
    s1[playerid] = floatsqroot(((svx[playerid]*svx[playerid])+(svy[playerid]*svy[playerid]))+(svz[playerid]*svz[playerid]))*136.666667;
    s2[playerid] = floatround(s1[playerid],floatround_round);
    format(s3[playerid],256,\"~k~~r~%i ~b~~k~KMH\", s2[playerid]);
    TextDrawSetString(speedokijelzo, s3[playerid]);
    return 1;
}

 
nem akarja megjeleníteni a textdrawot:(
miért?
Cím: tesxtdraw nem müxik:)
Írta: Zsolesszka - 2013. január 15. - 22:42:08
Azt látom hogy létrehoztál minden játékosnak változót amiben tárolod milyen sebességmérõ szöveget jelenítsen meg számára.
De egy darab textdrawot megjeleníteni más tartalommal különbözõ játékosoknak, az nem semmi.
Használj PlayerTextdrawot, mivel az játékosoknak szól egyenként, és felesleges tárolni játékosonként a szöveget.
Cím: tesxtdraw nem müxik:)
Írta: kriszrap - 2013. január 15. - 22:52:29
http://sampforum.hu/index.php?topic=21720.0 innen van csak nagyon picit átalakitottam
Cím: tesxtdraw nem müxik:)
Írta: Zsolesszka - 2013. január 15. - 22:54:55
:D Akkor keress másikat.
Vagy inkább próbáld ki Cannonn által írt változatot.
http://sampforum.hu/index.php?topic=21720.msg231328#msg231328
Cím: tesxtdraw nem müxik:)
Írta: kriszrap - 2013. január 15. - 22:57:21
ám azt is próbáltam nem ment :(
PlayerTextdraw ezt hova rakjam és ez igazából mi
TextDrawCreate elentetje??
Cím: tesxtdraw nem müxik:)
Írta: Red-Eye - 2013. január 15. - 23:12:30
Rögtön meglesem.
Cím: tesxtdraw nem müxik:)
Írta: Zsolesszka - 2013. január 15. - 23:16:39
a_players.inc 134 sortól kezdõdõen.
http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
Cím: tesxtdraw nem müxik:)
Írta: Red-Eye - 2013. január 15. - 23:28:03
Jaja, a másik hiba még az is volt hogy ugyan megcsináltad a dolgokat, de nem volt TextDrawShow() semerre szóval nem mutatta volna meg a játékosnak, ha még mindig igényelsz valami bemutató scriptetcskét mert nem elég az elõttem szóló kommijában lévõ wiki-s akkor szólj
Edit:
Unatkoztam tessék itt egy teljes darabka.
Amiket módosítottam: Átírtam PlayerText-esre,mivel client crasht okozott a szinezésed ezért azt eltávolítottam, hozzáadtam egy halál és egy kocsiból kiszálláskori KillTimer-t és TextHide-ot a praktika kedvéért, tesztelve mûködik. (átraktam még filterscriptbe mert így könnyebb volt tesztelnem remélem kiigazodsz rajta  8) )
 

#include <a_samp>
new Float:svx[MAX_PLAYERS],
    Float:svy[MAX_PLAYERS],
        Float:svz[MAX_PLAYERS],
        Float:s1[MAX_PLAYERS],
       s2[MAX_PLAYERS],
        s3[MAX_PLAYERS][256],
        stimer[MAX_PLAYERS];
new PlayerText:speedotext[MAX_PLAYERS];
       
        forward speedometer(playerid);
public speedometer(playerid)
{
    GetVehicleVelocity(GetPlayerVehicleID(playerid), svx[playerid], svy[playerid], svz[playerid]);
    s1[playerid] = floatsqroot(((svx[playerid]*svx[playerid])+(svy[playerid]*svy[playerid]))+(svz[playerid]*svz[playerid]))*136.666667;
    s2[playerid] = floatround(s1[playerid],floatround_round);
    format(s3[playerid],256,\"%i KMH\", s2[playerid]);
    PlayerTextDrawSetString(playerid,speedotext[playerid], s3[playerid]);
    return 1;
}
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Speedo jav. 4 kriszrap by RedNET (founded by Red-Eye)\");
print(\"--------------------------------------\\n\");
//textdraw
  //textdraw
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
   
    speedotext[playerid] = CreatePlayerTextDraw(playerid,581 ,407, \"  \");
    PlayerTextDrawFont(playerid,speedotext[playerid] , 2);
    PlayerTextDrawLetterSize(playerid,speedotext[playerid] , 0.3, 2.1);
    PlayerTextDrawColor(playerid,speedotext[playerid] , 0xff0000FF);
    PlayerTextDrawSetOutline(playerid,speedotext[playerid] , false);
    PlayerTextDrawSetProportional(playerid,speedotext[playerid] , true);
    PlayerTextDrawSetShadow(playerid,speedotext[playerid] , 1);
}
public OnPlayerDeath(playerid, killerid, reason)
{
    KillTimer(stimer[playerid]);
PlayerTextDrawHide(playerid,speedotext[playerid]);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
KillTimer(stimer[playerid]);
PlayerTextDrawHide(playerid,speedotext[playerid]);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{   
if(newstate == PLAYER_STATE_DRIVER)
    {
    stimer[playerid] = SetTimerEx(\"speedometer\", 255, true, \"i\", playerid);
    PlayerTextDrawShow(playerid,speedotext[playerid]);
    }
    return 1;
}

 
Na byebye csak ügyesen a  továbbiakban  :smokin:
Cím: tesxtdraw nem müxik:)
Írta: kriszrap - 2013. január 16. - 05:51:39
de jó egyeseknek unatkoznak :) ám köszi majd meg nézem amikor haza érek a suliból:)

Dupla hozzászólás automatikusan összefûzve. ( 2013. január 16. - 15:28:09 )

le esek a mocirol nem tünik el a textdraw miért?:)
Cím: tesxtdraw nem müxik:)
Írta: Red-Eye - 2013. január 16. - 19:49:35
Megírtam választ pm-ben, ha kívánod kijavítom és megírom ide is az új kódsort de szerintem megtudod te is írni az alapján amit leírtam neked  :smokin:
Cím: tesxtdraw nem müxik:)
Írta: kriszrap - 2013. január 16. - 21:12:37
sikerült nem kell megírnod :)
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
    stimer[playerid] = SetTimerEx(\"speedometer\", 255, true, \"i\", playerid);
    PlayerTextDrawShow(playerid,speedotext[playerid]);
    }else if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
    {
    KillTimer(stimer[playerid]);
    PlayerTextDrawHide(playerid,speedotext[playerid]);
}
    return 1;
}