Szerző Téma: XP-Rendszer  (Megtekintve 1584 alkalommal)

XP-Rendszer
« Dátum: 2015. június 07. - 15:25:21 »
0 Show voters
Sziasztok!
Szeretnék kérni tőletek 1 XP-rendszert ami TEXTDRAW-ban van és hozzá jutalmak.
PL: Ha megölnek 5 játékost akkor 5 XP, ha 10 játékost akkor 10 XP és így folyamatosan..
És ez kb. 1000-ig (vagy tovább) lenne. És az jó lenne ha pl: 100 XP akkor kapna a játékos GODOT.
És így ilyen jutalmak.
Előreis köszönöm. :)
« Utoljára szerkesztve: 2015. június 14. - 23:35:56 írta ƒlaﻛh »

XP-Rendszer
« Válasz #1 Dátum: 2015. június 07. - 17:11:05 »
0 Show voters

#include <a_samp>
#include <dini>
#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#endif
#define MAX_PLAYERS 50 // írd át arra a számra ahány slotos a szerver
new kills[MAX_PLAYERS];
stock CheckKills(playerid) {
switch(kills[playerid]) {
    case 1: SendClientMessage(playerid,-1,\"Első ölés!\");
    case 100: SendClientMessage(playerid,-1,\"100. ölés!\");
}
}
public OnPlayerConnect(playerid)
{
new n[32];
GetPlayerName(playerid,n,32);
format(n,32,\"%s.kills\",n);
dini_Create(n);
if(dini_Isset(n,\"Kills\")) {
    kills[playerid] = dini_Int(n,\"Kills\");
} else {
    kills[playerid] = 0;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new n[32];
GetPlayerName(playerid,n,32);
format(n,32,\"%s.kills\",n);
dini_IntSet(n,\"Kills\",kills[playerid]);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/mykills\", cmdtext, true, 10) == 0)
{
new string[16];
format(string,16,\"Öléseid: %d\",kills[playerid]);
return 1;
}
return 0;
}

 
Tömör gyönyör. Nem teszteltem.
E: textdrawban... szelektív olvasás. Na mindegy, majd megoldom ha hazaérek

XP-Rendszer
« Válasz #2 Dátum: 2015. június 07. - 18:57:51 »
0 Show voters
Akor ebben add olyanokat amiket írtam? :)
De azért köszi. :)

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
XP-Rendszer
« Válasz #3 Dátum: 2015. június 07. - 19:31:14 »
0 Show voters
Ez az amire te gondolsz: http://sampforum.hu/index.php?topic=19997.0
Csak pár sorral kell kibővíteni.

XP-Rendszer
« Válasz #4 Dátum: 2015. június 07. - 22:19:53 »
0 Show voters
De én olyant szeretnek amihez vannak juttalmak mind mas szerokban.
Bocs az ékezetért de telon vagyok

Nem elérhető Wes

  • 335
    • Profil megtekintése
XP-Rendszer
« Válasz #5 Dátum: 2015. június 07. - 22:24:41 »
0 Show voters
Ugye nem azt várod el hogy más megírja helyetted?

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
XP-Rendszer
« Válasz #6 Dátum: 2015. június 07. - 23:31:48 »
0 Show voters
Idézetet írta: Kingston20153 date=1433708393\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54618\" data-ipsquote-contentclass=\"forums_Topic
De én olyant szeretnek amihez vannak juttalmak mind mas szerokban.
 
Mint ahogy írtam, csak pár sorral kell kibővítened. Az a pár sor pont a \"jutalmak\".

Nem elérhető CMike

  • 332
  • FB.COM/sampdayrpg
    • Profil megtekintése
XP-Rendszer
« Válasz #7 Dátum: 2015. június 08. - 10:09:10 »
+1 Show voters
Idézetet írta: Wes date=1433708681\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54618\" data-ipsquote-contentclass=\"forums_Topic
Ugye nem azt várod el hogy más megírja helyetted?
 
Észrevetted hogy ez a \"script kérések\" téma? Szerintem nem kellene mindig mindenbe belekotni :-)
Egy új project-en dolgozom!
server28.clans.hu:7793
FB.COM/UJSAMP

XP-Rendszer
« Válasz #8 Dátum: 2015. június 08. - 13:05:50 »
0 Show voters
De ha nem írja le mit akar pontosan akkor hogy írjuk meg neki?  :facepalm:

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
XP-Rendszer
« Válasz #9 Dátum: 2015. június 08. - 15:00:46 »
0 Show voters
Na akkor ez alapján: http://sampforum.hu/index.php?topic=19997.0
 
#include <a_samp>
new Text:playerscoretext;
new Text:playerscoretext2;
new Text:playerscoretext3;
new Text:playerscoretext4;
#define RANK1NAME \"Szint: 1\"
#define RANK2NAME \"Szint: 2\"
#define RANK3NAME \"Szint: 3\"
#define RANK4NAME \"Szint: 4\"
#define RANK1SCOREa 0
#define RANK1SCOREb 99
#define RANK2SCOREa 100
#define RANK2SCOREb 249
#define RANK3SCOREa 250
#define RANK3SCOREb 999
#define RANK4SCORE 1000
public OnFilterScriptInit()
{
playerscoretext3 = TextDrawCreate(413.0,103.0,RANK3NAME);
    playerscoretext4 = TextDrawCreate(413.0,103.0,RANK4NAME);
playerscoretext = TextDrawCreate(413.0,103.0,RANK1NAME);
    playerscoretext2 = TextDrawCreate(413.0,103.0,RANK2NAME);
return 1;
}
public OnFilterScriptExit()
{
TextDrawDestroy(playerscoretext);
TextDrawDestroy(playerscoretext2);
TextDrawDestroy(playerscoretext3);
TextDrawDestroy(playerscoretext4);
return 1;
}
public OnPlayerUpdate(playerid)
{
if GetPlayerScore(playerid) >= RANK1SCOREa && GetPlayerScore(playerid) <=RANK2SCOREb*then
{
    TextDrawUseBox(playerscoretext, 1);
TextDrawBoxColor(playerscoretext, 0x000000FF);
TextDrawSetShadow(playerscoretext,0);
TextDrawShowForPlayer(playerid, playerscoretext);
    TextDrawHideForPlayer(playerid, playerscoretext2);
    TextDrawHideForPlayer(playerid, playerscoretext3);
    TextDrawHideForPlayer(playerid, playerscoretext4);
}
if GetPlayerScore(playerid) >= RANK2SCOREa && GetPlayerScore(playerid) <=RANK2SCOREb*then
{
TextDrawUseBox(playerscoretext2, 1);
TextDrawBoxColor(playerscoretext2, 0x000000FF);
TextDrawSetShadow(playerscoretext2,0);
TextDrawShowForPlayer(playerid, playerscoretext2);
TextDrawHideForPlayer(playerid, playerscoretext);
TextDrawHideForPlayer(playerid, playerscoretext4);
TextDrawHideForPlayer(playerid, playerscoretext3);
SetPlayerHealth(playerid, 99999);
}
if GetPlayerScore(playerid) >= RANK3SCOREa && GetPlayerScore(playerid) <=RANK3SCOREb*then
{
TextDrawUseBox(playerscoretext3, 1);
TextDrawBoxColor(playerscoretext3, 0x000000FF);
TextDrawSetShadow(playerscoretext3,0);
TextDrawShowForPlayer(playerid, playerscoretext3);
TextDrawHideForPlayer(playerid, playerscoretext);
TextDrawHideForPlayer(playerid, playerscoretext2);
TextDrawHideForPlayer(playerid, playerscoretext4);
}
if GetPlayerScore(playerid) >= RANK4SCORE*then
{
TextDrawUseBox(playerscoretext4, 1);
TextDrawBoxColor(playerscoretext4, 0x000000FF);
TextDrawSetShadow(playerscoretext4,0);
TextDrawShowForPlayer(playerid, playerscoretext4);
TextDrawHideForPlayer(playerid, playerscoretext);
TextDrawHideForPlayer(playerid, playerscoretext2);
TextDrawHideForPlayer(playerid, playerscoretext3);
}
return 1;
}
public OnPlayerDeath(playerid,killerid,reason)
{
TextDrawHideForPlayer(playerid, playerscoretext);
TextDrawHideForPlayer(playerid, playerscoretext2);
TextDrawHideForPlayer(playerid, playerscoretext3);
    TextDrawHideForPlayer(playerid, playerscoretext4);
    SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
return 1;
}

 
Textdrawos ahogy kérted.
Minden megölt ember után kap a játékos +1 pontot.
Négy szintre van tagolva: 1-es szint: 0-99 pont, 2-es szint: 100-249 pont, 3-as szint: 250-999 pont, 4-es szint: 1000-től a végtelenig
100 ponttól kértél godot jutalomnak, tehát ha a játékos eléri a 2-es szintet (ami 100 ponttól van) kapni fog godot.
Ez a script csak akkor működik jól ha a szervered menti a játékosok pontjait, mert amúgy minden kilépés után elveszlik a játékos szintje és kezdheti előről az ölést.
Ha nem menti a pontokat a szervered akkor használd ZyZu. pont mentő scriptjét (tökéletesen működik): http://sampforum.hu/index.php?topic=27568

XP-Rendszer
« Válasz #10 Dátum: 2015. június 08. - 15:29:36 »
0 Show voters
Na ez már valami. Köszi szépen :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal