Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Xp, pinigai ir ieškomumo lygis(Textdraw)


ManvYAn

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2950 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, rašau savo pirmąją pamoką tai ji gali būti kiek nevykus funkcijų aprašymo atžvilgiu :D Šioje pamokoje išmoksite kurti textdraw kuriuose įrašysim xp, pinigus ir ieškomumo lygį.

 

Savo modifikacijos viršuje parašykite šiuos kintamuosius kurie mums bus reikalingi kuriant textdraw'us:

new Text:Textdraw0;
new Text:Textdraw1[MAX_PLAYERS];
new Text:Textdraw2[MAX_PLAYERS];
new Text:Textdraw3[MAX_PLAYERS];
new Text:Textdraw4;
new Text:Textdraw5;
new Text:Textdraw6;
new Text:Textdraw7;

Po OnPlayerConnect ir OnGameModeInit callback'ais parašykite šį kodą:

public OnGameModeInit()
{
    Textdraw0 = TextDrawCreate(641.199951, 79.153335, "usebox"); // Sukurs TextDraw
    TextDrawLetterSize(Textdraw0, 0.000000, 9.472964); // Nustato teksto textdraw dydį
    TextDrawTextSize(Textdraw0, 450.000000, 0.000000); // Nustato textdraw dydį
    TextDrawAlignment(Textdraw0, 1); // nustato teksto lygiavimą, 1 - kairėje, 2 - centre, 3 - dešinėje
    TextDrawColor(Textdraw0, 0); // Nustato textdraw teksto spalvą
    TextDrawUseBox(Textdraw0, true); // Nustato textdraw background(fono) naudojimą, true - naudoja, false - nenaudoja
    TextDrawBoxColor(Textdraw0, -1061109505); // Nustato fono spalvą
    TextDrawSetShadow(Textdraw0, 0); // Nustato šešėlio naudojimą, 0 - nenaudoja, 1 - naudoja
    TextDrawSetOutline(Textdraw0, 0); // Nustato rėmelio dydį
    TextDrawFont(Textdraw0, 0); // Nustato textdraw šriftą

    Textdraw4 = TextDrawCreate(453.600006, 168.000000, "LD_SPAC:white");
    TextDrawLetterSize(Textdraw4, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw4, 0.799987, -92.586662);
    TextDrawAlignment(Textdraw4, 1);
    TextDrawColor(Textdraw4, 41215);
    TextDrawSetShadow(Textdraw4, 0);
    TextDrawSetOutline(Textdraw4, 0);
    TextDrawFont(Textdraw4, 4);

    Textdraw5 = TextDrawCreate(453.600006, 168.000000, "LD_SPAC:white");
    TextDrawLetterSize(Textdraw5, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw5, 186.399993, 0.746673);
    TextDrawAlignment(Textdraw5, 1);
    TextDrawColor(Textdraw5, 41215);
    TextDrawSetShadow(Textdraw5, 0);
    TextDrawSetOutline(Textdraw5, 0);
    TextDrawFont(Textdraw5, 4);

    Textdraw6 = TextDrawCreate(453.600006, 76.160003, "LD_SPAC:white");
    TextDrawLetterSize(Textdraw6, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw6, 184.800018, 0.746665);
    TextDrawAlignment(Textdraw6, 1);
    TextDrawColor(Textdraw6, 41215);
    TextDrawSetShadow(Textdraw6, 0);
    TextDrawSetOutline(Textdraw6, 0);
    TextDrawFont(Textdraw6, 4);

    Textdraw7 = TextDrawCreate(637.599975, 168.000000, "LD_SPAC:white");
    TextDrawLetterSize(Textdraw7, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw7, -0.799987, -91.093330);
    TextDrawAlignment(Textdraw7, 1);
    TextDrawColor(Textdraw7, 41215);
    TextDrawSetShadow(Textdraw7, 0);
    TextDrawSetOutline(Textdraw7, 0);
    TextDrawFont(Textdraw7, 4);
    return 1;
}
public OnPlayerConnect(playerid)
{
    new Pinigai[21]; // Sukuriam kintamajį
    format(Pinigai, sizeof(Pinigai), "Pinigai: %d", GetPlayerMoney(playerid)); // Išgaunam lentelėje pinigus
    Textdraw1[playerid] = TextDrawCreate(456.331542, 89.600013, Pinigai);
    TextDrawLetterSize(Textdraw1[playerid], 0.503600, 1.435732);
    TextDrawAlignment(Textdraw1[playerid], 1);
    TextDrawColor(Textdraw1[playerid], 41215);
    TextDrawSetShadow(Textdraw1[playerid], 2);
    TextDrawSetOutline(Textdraw1[playerid], 0);
    TextDrawBackgroundColor(Textdraw1[playerid], 51); // Nustato rėmelio spalvą
    TextDrawFont(Textdraw1[playerid], 1);
    TextDrawSetProportional(Textdraw1[playerid], 1); // Nustato simbolių proparcingumą

    new Patirtis[21];
    format(Patirtis, sizeof(Patirtis), "Patirtis: %d", GetPlayerScore(playerid));
    Textdraw2[playerid] = TextDrawCreate(455.999969, 110.506683, Patirtis);
    TextDrawLetterSize(Textdraw2[playerid], 0.448399, 1.465599);
    TextDrawAlignment(Textdraw2[playerid], 1);
    TextDrawColor(Textdraw2[playerid], 41215);
    TextDrawSetShadow(Textdraw2[playerid], 2);
    TextDrawSetOutline(Textdraw2[playerid], 0);
    TextDrawBackgroundColor(Textdraw2[playerid], 51);
    TextDrawFont(Textdraw2[playerid], 1);
    TextDrawSetProportional(Textdraw2[playerid], 1);

    new Ieskomumas[21];
    format(Ieskomumas, sizeof(Ieskomumas), "Ieskomumas: %d", GetPlayerWantedLevel(playerid));
    Textdraw3[playerid] = TextDrawCreate(456.000061, 130.666625, Ieskomumas);
    TextDrawLetterSize(Textdraw3[playerid], 0.417199, 1.562666);
    TextDrawAlignment(Textdraw3[playerid], 1);
    TextDrawColor(Textdraw3[playerid], 41215);
    TextDrawSetShadow(Textdraw3[playerid], 2);
    TextDrawSetOutline(Textdraw3[playerid], 0);
    TextDrawBackgroundColor(Textdraw3[playerid], 51);
    TextDrawFont(Textdraw3[playerid], 1);
    TextDrawSetProportional(Textdraw3[playerid], 1);
    return 1;
}

Su OnPlayerConnect  ir OnGameModeInit callback'ais baigėm, dabar susiraskite OnPlayerSpawn callback ir rašykite:

    TextDrawShowForPlayer(playerid, Textdraw0); // Vos tik atsispawninus žaidėjui jam pradės rodyti lentelę
    TextDrawShowForPlayer(playerid, Textdraw1[playerid]);
    TextDrawShowForPlayer(playerid, Textdraw2[playerid]);
    TextDrawShowForPlayer(playerid, Textdraw3[playerid]);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw5);
    TextDrawShowForPlayer(playerid, Textdraw6);
    TextDrawShowForPlayer(playerid, Textdraw7);
    SetTimerEx("Lentele", 200, true, "e", playerid); // Sukuriam timer'į kuris atnaujins lentelę

Ir galiausiai gale rašome:

forward Lentele(playerid);
public Lentele(playerid)
{
    new score[21]; // Sukuriam kintamajį kuris formatuos tekstą
    format(score, sizeof(score), "Patirtis: %d",GetPlayerScore(playerid)); // formatuojam tekstą
    TextDrawSetString(Textdraw2[playerid], score); // Nustato textdraw teksto reikšmę
    format(score, sizeof(score), "Ieskomumas: %d",GetPlayerWantedLevel(playerid));
    TextDrawSetString(Textdraw3[playerid], score);
    format(score, sizeof(score), "Pinigai: %d",GetPlayerMoney(playerid));
    TextDrawSetString(Textdraw1[playerid], score);
}

Pamoka baigta! :D Textdraw gausis jums paprastas ir negražus akiai, nes jis buvo kurtas tik mokymosi tikslams, o ne naudojimo, pagal šią pamoką galėsite susikurti sau norimą lentelę kuri kažką išgaus, šiuo atveju xp, pinigus ir ieškomumo lygį.

Taip atrodys sukurta lentelė: http://www.part.lt/img/1d3bf6aebcc75e233015975245637a11162.png

 

P.S Dėkui blacky už pagalbą ištaisant klaidas.

Redaguota , nario ManvYAn
Nuoroda į komentarą
Dalintis per kitą puslapį

Sitema naudinga tikrai , bet tekstas ir fonas netinka visai ..

Skaitei ?

 

Pamoka baigta! :D Textdraw gausis jums paprastas ir negražus akiai, nes jis buvo kurtas tik mokymosi tikslams, o ne naudojimo, pagal šią pamoką galėsite susikurti sau norimą lentelę kuri kažką išgaus, šiuo atveju xp, pinigus ir ieškomumo lygį.

Nuoroda į komentarą
Dalintis per kitą puslapį

Kam tu OnPlayerConnect kuri globalinius textdrawus? labiau priimtina juos kurti OnGamemodeInit callback'e, o playerid kurie bus !aidejui ten , taionplayetconnect

Nes man atrodė, kad taip geriau, bet turbūt gavosi blogiau :D

 

 

Kodėl masyvai tokie dideli? Juk užtektų ir 20 simbolių.

O aš pasijuoksiu kai įspėjimą gausi.

Šiaip galvojau, kad neužteks, bet žiūriu, kad reikės pakeisti.

Nuoroda į komentarą
Dalintis per kitą puslapį

Kaip ištaisyti?

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(86) : error 021: symbol already defined: "YVers_OnScriptInit"
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(137) : error 021: symbol already defined: "OnPlayerConnect"
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(138) : warning 219: local variable "Pinigai" shadows a variable at a preceding level
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(139) : error 035: argument type mismatch (argument 1)
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(139) : error 035: argument type mismatch (argument 1)
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(140) : error 035: argument type mismatch (argument 3)
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(138) : warning 204: symbol is assigned a value that is never used: "Pinigai"
C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(221) : error 021: symbol already defined: "TextDrawShowForPlayer"
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Kam tu kūri globalius textdrawus? Žaidėjui yra naudojami PlayerTextDraw ( žaidėjo tipo textdraw'ai ) :) 

Beto visus tos "new" galima į viena - new td [ MAX_PLAYERS ] [ čia td skaičius ]  ;

Sėkmės.

Įprotis, o dabar jau beveik globalių textdrawų nebenaudoju. Ačiū.

 

 

Kaip ištaisyti?

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(86) : error 021: symbol already defined: "YVers_OnScriptInit"

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(137) : error 021: symbol already defined: "OnPlayerConnect"

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(138) : warning 219: local variable "Pinigai" shadows a variable at a preceding level

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(139) : error 035: argument type mismatch (argument 1)

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(139) : error 035: argument type mismatch (argument 1)

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(140) : error 035: argument type mismatch (argument 3)

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(138) : warning 204: symbol is assigned a value that is never used: "Pinigai"

C:\Documents and Settings\Gytis\Desktop\ManoGm\gamemodes\ManoGm.pwn(221) : error 021: symbol already defined: "TextDrawShowForPlayer"

 

 

 

 

Parašyk į skype(manvyan) padėsiu ištaisyti.

Redaguota , nario ManvYAn
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2950 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...