Szerző Téma: tesxtdraw nem müxik:)  (Megtekintve 1021 alkalommal)

tesxtdraw nem müxik:)
« Dátum: 2013. január 15. - 22:11:59 »
0 Show voters
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?

tesxtdraw nem müxik:)
« Válasz #1 Dátum: 2013. január 15. - 22:42:08 »
0 Show voters
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.

tesxtdraw nem müxik:)
« Válasz #2 Dátum: 2013. január 15. - 22:52:29 »
0 Show voters
http://sampforum.hu/index.php?topic=21720.0 innen van csak nagyon picit átalakitottam

tesxtdraw nem müxik:)
« Válasz #3 Dátum: 2013. január 15. - 22:54:55 »
0 Show voters
: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

tesxtdraw nem müxik:)
« Válasz #4 Dátum: 2013. január 15. - 22:57:21 »
0 Show voters
ám azt is próbáltam nem ment :(
PlayerTextdraw ezt hova rakjam és ez igazából mi
TextDrawCreate elentetje??

tesxtdraw nem müxik:)
« Válasz #5 Dátum: 2013. január 15. - 23:12:30 »
0 Show voters
Rögtön meglesem.

tesxtdraw nem müxik:)
« Válasz #6 Dátum: 2013. január 15. - 23:16:39 »
+1 Show voters
a_players.inc 134 sortól kezdõdõen.
http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw

tesxtdraw nem müxik:)
« Válasz #7 Dátum: 2013. január 15. - 23:28:03 »
+1 Show voters
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:
« Utoljára szerkesztve: 2013. január 15. - 23:43:47 írta Red-Eye »

tesxtdraw nem müxik:)
« Válasz #8 Dátum: 2013. január 16. - 05:51:39 »
0 Show voters
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?:)
« Utoljára szerkesztve: 2013. január 16. - 15:28:09 írta kriszrap »

tesxtdraw nem müxik:)
« Válasz #9 Dátum: 2013. január 16. - 19:49:35 »
0 Show voters
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:

tesxtdraw nem müxik:)
« Válasz #10 Dátum: 2013. január 16. - 21:12:37 »
0 Show voters
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;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal