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: Jim Toretto - 2014. június 18. - 07:44:50

Cím: Játékos skinének megjelenítése
Írta: Jim Toretto - 2014. június 18. - 07:44:50
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! :)
Cím: Játékos skinének megjelenítése
Írta: BoOy - 2014. június 18. - 08:29:54
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;
}
Cím: Játékos skinének megjelenítése
Írta: Jim Toretto - 2014. június 18. - 08:33:42
Áhá és ezzel hogyan tudom a saját skinemet megjeleníteni ami éppen rajtam van ?
Cím: Játékos skinének megjelenítése
Írta: BoOy - 2014. június 18. - 08:39:50
hozzácsatoltam a példát.
Cím: Játékos skinének megjelenítése
Írta: KovaNovik - 2014. június 18. - 09:09:34
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.
Cím: Játékos skinének megjelenítése
Írta: Jim Toretto - 2014. június 18. - 09:19:46
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 :(
Cím: Játékos skinének megjelenítése
Írta: BoOy - 2014. június 18. - 09:30:05
#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]]);
Cím: Játékos skinének megjelenítése
Írta: KovaNovik - 2014. június 18. - 09:38:01
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.
Cím: Játékos skinének megjelenítése
Írta: BoOy - 2014. június 18. - 09:44:15
TextDrawBackgroundColor
Alpha értékét állítsd 0-ra.
 
TextDrawBackgroundColor(skintd[playerid], 0xFFFFFF00);
Cím: Játékos skinének megjelenítése
Írta: KovaNovik - 2014. június 18. - 09:53:04
Köszii :D


Én hülye a box színét állítottam.
Cím: Játékos skinének megjelenítése
Írta: BoOy - 2014. június 18. - 12:33:47
Nyugi nekem is az volt az elsõ :D
Cím: Játékos skinének megjelenítése
Írta: Jim Toretto - 2014. június 19. - 09:38:49
Mûködik köszönöm a segítségeteket! :)