Szerző Téma: Játékos skinének megjelenítése  (Megtekintve 1116 alkalommal)

Játékos skinének megjelenítése
« Dátum: 2014. június 18. - 07:44:50 »
0 Show voters
Sziasztok egy olyan kérdésem lenne hogy textdrawba hogyan tudom megjeleníteni a játékos skinét? Tehát úgy hogy beütöm pl hogy /skin és akkor megjelenne a rajtam lévõ skin képe pl a képernyõ közepén?
És ezt hogyan tudnám esetleg másnak is felmutatni ? pl /skin [iD/NÉV]
Elõre is köszönöm! :)
« Utoljára szerkesztve: 2014. június 18. - 11:34:46 írta Flash »

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #1 Dátum: 2014. június 18. - 08:29:54 »
0 Show voters
A TextDrawSetPreviewModel használatával. A linkbe találsz példát is.
A lényeg hogy TextDrawSetPreviewModel második paramétere a skinid értéke legyen.
My exmpl.:
 

#include <a_samp>
#include <sscanf>
new SkinText[MAX_PLAYERS];
public OnFilterScriptInit()
{
for(new i;i<MAX_PLAYERS;i++) //Senki ne kérdezze hogy miért nem használok playertextdrawot. a válasz úgyis az lenne rá: MART sz*r BUGOS.
{
SkinText = TextDrawCreate(320.0, 240.0, \"_\");
TextDrawFont(SkinText, TEXT_DRAW_FONT_MODEL_PREVIEW);
TextDrawUseBox(SkinText, 1);
TextDrawBoxColor(SkinText, 0x000000FF);
TextDrawTextSize(SkinText, 40.0, 40.0);
TextDrawSetPreviewModel(SkinText, 0);
}
return 1;
}
CMD:megjelenit(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /megjelenit [sKINID]\");
TextDrawShowForPlayer(playerid,SkinText[playerid]);
TextDrawSetPreviewModel(SkinText[playerid],skinid);
return 1;
}
« Utoljára szerkesztve: 2014. június 18. - 08:40:44 írta BoOy »

Játékos skinének megjelenítése
« Válasz #2 Dátum: 2014. június 18. - 08:33:42 »
0 Show voters
Áhá és ezzel hogyan tudom a saját skinemet megjeleníteni ami éppen rajtam van ?

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #3 Dátum: 2014. június 18. - 08:39:50 »
0 Show voters
hozzácsatoltam a példát.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #4 Dátum: 2014. június 18. - 09:09:34 »
0 Show voters
Valószínûleg lesz benne bug, mivel telóról írtam, de remélem nem lesz olyan vészes. Ezeket mindet javítottam :)
 
#include a_samp
#include zcmd
#include sscanf2
new Text:skintd[MAX_PLAYERS];
new tmp_tdnum[MAX_PLAYERS] = {-1, ...};
public OnPlayerConnect(playerid) {
skintd[playerid] = TextDrawCreate(320.0, 240.0, \"_\"); //Létrehozunk egy textdrawot, láthatatlan szöveggel, a képernyõ közepére.
TextDrawFont(skintd[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW); //Ez azért fontos, mert csak így tudja majd megjeleníteni a modelt.
TextDrawUseBox(skintd[playerid], true); //Ez is kellhet, hogy rendesen látszódjon az model. Jelenleg kikapcsoltam.
TextDrawBoxColor(skintd[playerid], 0x000000FF); //Itt tudod állítani a háttérszínt.
TextDrawTextSize(skintd[playerid], 60.0, 40.0); //Itt megadható, mekkora legyen.
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
TextDrawHideForPlayer(playerid, skintd[tmp_tdnum[playerid]]);
TextDrawDestroy(skintd[playerid]);
return 1;
}
CMD:showmyskin(playerid) {
TextDrawSetPreviewModel(skintd[playerid], GetPlayerSkin(playerid));
TextDrawShowForPlayer(playerid, skintd[playerid]);
tmp_tdnum[playerid] = playerid;
return 1;
}
CMD:showskin(playerid, params[]) {
new id;
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, -1, \"Syntax: /showskin [Name]\");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"This player,is not connected!\");
TextDrawSetPreviewModel(skintd[id], GetPlayerSkin(id));
TextDrawShowForPlayer(playerid, skintd[id]);
tmp_tdnum[playerid] = id;
return 1;
}
CMD:hideskin(playerid) return TextDrawHideForPlayer(playerid, skintd[tmp_tdnum[playerid]]), 1;

 
Sok szerencsét! :thumbsup:
Edit.: bé plusz, mire megírtam, megírt a Boy is. De sebaj, itt az elrejtés is meg van oldva. Elméletileg.
« Utoljára szerkesztve: 2014. június 18. - 09:36:35 írta KovaNovik »

Játékos skinének megjelenítése
« Válasz #5 Dátum: 2014. június 18. - 09:19:46 »
0 Show voters
error 017: undefined symbol \"TextDrawSetSkinPreviewModel\"
warning 202: number of arguments does not match definition
error 001: expected token: \",\", but found \";\"

 
Ezek a hibák vannak benne :(

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #6 Dátum: 2014. június 18. - 09:30:05 »
0 Show voters
#include a_samp
#include sscanf2
#include zcmd
new Text:skintd[MAX_PLAYERS];
new tmp_tdnum[MAX_PLAYERS] = {-1, ...};
public OnPlayerConnect(playerid)
{
    skintd[playerid] = TextDrawCreate(320.0, 240.0, \"_\"); //Létrehozunk egy textdrawot, láthatatlan szöveggel, a képernyõ közepére.
    TextDrawFont(skintd[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW); //Ez azért fontos, mert csak így tudja majd megjeleníteni a modelt.
    TextDrawUseBox(skintd[playerid], true); //Ez is kellhet, hogy rendesen látszódjon az model.
    TextDrawBoxColor(skintd[playerid], 0x000000FF); //Itt tudod állítani a háttérszínt.
    TextDrawTextSize(skintd[playerid], 60.0, 40.0); //Itt megadható, mekkora legyen.
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    TextDrawHideForPlayer(playerid, skintd[tmp_tdnum[playerid]]);
    TextDrawDestroy(skintd[playerid]);
    return 1;
}
CMD:showmyskin(playerid)
{
    TextDrawSetPreviewModel(skintd[playerid], GetPlayerSkin(playerid));
    TextDrawShowForPlayer(playerid, skintd[playerid]);
    tmp_tdnum[playerid] = playerid;
}
CMD:showskin(playerid, params[])
{
    new id;
    if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, -1, \"Syntax: /showskin [playerid/név]\");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, \"This player,is not connected!\");
    TextDrawSetPreviewModel(skintd[id], GetPlayerSkin(id));
    TextDrawShowForPlayer(playerid, skintd[id]);
    tmp_tdnum[playerid] = id;
    return 1;
}
CMD:hideskin(playerid) return TextDrawHideForPlayer(playerid, skintd[tmp_tdnum[playerid]]);

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #7 Dátum: 2014. június 18. - 09:38:01 »
0 Show voters
Az viszont érthetetlen, hogy ha kikapcsolom a boxot, ha átlátszóra állítom a hátteret, akármit csinálok nem tûnik el a fekete háttér.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #8 Dátum: 2014. június 18. - 09:44:15 »
+1 Show voters
TextDrawBackgroundColor
Alpha értékét állítsd 0-ra.
 
TextDrawBackgroundColor(skintd[playerid], 0xFFFFFF00);

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #9 Dátum: 2014. június 18. - 09:53:04 »
0 Show voters
Köszii :D


Én hülye a box színét állítottam.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Játékos skinének megjelenítése
« Válasz #10 Dátum: 2014. június 18. - 12:33:47 »
0 Show voters
Nyugi nekem is az volt az elsõ :D

Játékos skinének megjelenítése
« Válasz #11 Dátum: 2014. június 19. - 09:38:49 »
0 Show voters
Mûködik köszönöm a segítségeteket! :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal