new msg[64];new msga[64];new name[MAX_PLAYER_NAME];GetPlayerName(playerid, name, sizeof(name))
else if(GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 1) { Rank = \"1\"; format(msg, sizeof(msg), \"Szintet léptél! Szinted: %s\", Rank); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %s\", name, Rank); SendClientMessageToAll(-1, msga); }
else if(GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 1)
new rank[MAX_PLAYERS];
else if(GetPlayerScore(playerid) == 1 && rank[playerid] != 1){ rank[playerid] = 1; format(msg, sizeof(msg), \"Szintet léptél! Szinted: %d\", rank[playerid]); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %d\", name, rank[playerid]); SendClientMessageToAll(-1, msga);}
if(GetPlayerScore(playerid) != rank[playerid] && GetPlayerScore(playerid) != 0){ rank[playerid] = GetPlayerScore(playerid); format(msg, sizeof(msg), \"Szintet léptél! Szinted: %d\", rank[playerid]); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %d\", name, rank[playerid]); SendClientMessageToAll(-1, msga);}
new rank[MAX_PLAYERS], score[MAX_PLAYERS], nextscore[MAX_PLAYERS];public OnPlayerConnect(playerid) { //Azért OnP.Conn. -hez írtam mert nem tudom hogy honnan töltöd be a player rankját, pontját. Így egyszerűsítem. rank[playerid] = 1; score[playerid] = 0; nextscore[playerid] = 50; //2-es szinthez szükséges return 1;}if(GetPlayerScore(playerid) >= nextscore[playerid] && rank[playerid] != 60){ rank[playerid]++; nextscore[playerid] = nextscore[playerid]*2; format(msg, sizeof(msg), \"Szintet léptél! Szinted: %d! Következő szinthez szükséges pontszám: %d\", rank[playerid], nextscore[playerid]); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %d\", name, rank[playerid]); SendClientMessageToAll(-1, msga);}//Nem teszteltem elvileg jó.
Ha mindig duplázni szeretnéd akkor itt egy megoldás.Amúgy bocsi hogy ennyit kellett rá várni csak nem volt túl sok időm. new rank[MAX_PLAYERS], score[MAX_PLAYERS], nextscore[MAX_PLAYERS];public OnPlayerConnect(playerid) { //Azért OnP.Conn. -hez írtam mert nem tudom hogy honnan töltöd be a player rankját, pontját. Így egyszerűsítem. rank[playerid] = 1; score[playerid] = 0; nextscore[playerid] = 50; //2-es szinthez szükséges return 1;}if(GetPlayerScore(playerid) >= nextscore[playerid] && rank[playerid] != 60){ rank[playerid]++; nextscore[playerid] = nextscore[playerid]*2; format(msg, sizeof(msg), \"Szintet léptél! Szinted: %d! Következő szinthez szükséges pontszám: %d\", rank[playerid], nextscore[playerid]); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %d\", name, rank[playerid]); SendClientMessageToAll(-1, msga);}//Nem teszteltem elvileg jó.
if(GetPlayerScore(playerid) == nextscore[playerid]){nextscore[playerid] = nextscore[playerid]*2;rank[playerid]++;// Szintlepes szövege...return 1;}
if(GetPlayerScore(playerid) == nextscore[playerid]){nextscore[playerid] = nextscore[playerid]*2;rank[playerid]++;// Szintlepes szövege...return 1;} Esetleg ez? de a nextscorét mensd el!!!!! meg a rankot is meg ezeket... csak akkor fog úgy menni ahogy te szeretnéd
Amit küldtél forráskódot, arra holnap szakítok időt és átnézem.
hát nem muszáj ha írsz egy olyan scriptet ami kiszámítja hogy GetPlayerScore alapján milyen rangja van és mennyi kell a következő ranghoz
new PlayerText:Szint[MAX_PLAYERS];new rank[MAX_PLAYERS], scoree[MAX_PLAYERS], nextscore[MAX_PLAYERS];
new text[41];new jatekosname[MAX_PLAYER_NAME];GetPlayerName(playerid, jatekosname, sizeof(jatekosname));Szint[playerid] = CreatePlayerTextDraw(playerid, 500.000000, 192.000000, \" \");PlayerTextDrawBackgroundColor(playerid, Szint[playerid], 255);PlayerTextDrawFont(playerid, Szint[playerid], 2);PlayerTextDrawLetterSize(playerid, Szint[playerid], 0.230000, 1.100000);PlayerTextDrawColor(playerid, Szint[playerid], -1);PlayerTextDrawSetOutline(playerid, Szint[playerid], 1);PlayerTextDrawSetProportional(playerid, Szint[playerid], 1);PlayerTextDrawUseBox(playerid, Szint[playerid], 1);PlayerTextDrawBoxColor(playerid, Szint[playerid], 100);PlayerTextDrawTextSize(playerid, Szint[playerid], 637.000000, 0.000000);format(text, sizeof(text), \"~g~Szint: ~r~-\");PlayerTextDrawSetString(playerid, Szint[playerid], text);for(new i; i < MAX_PLAYERS; i ++){if(IsPlayerConnected(i)){ PlayerTextDrawShow(i, Szint[playerid]);}}
new score;new text[41];new msg[64];new msga[64];new name[MAX_PLAYER_NAME];score = GetPlayerScore(playerid);GetPlayerName(playerid, name, sizeof(name)); rank[playerid] = 1; scoree[playerid] = 0; nextscore[playerid] = 50; //2-es szinthez szükségesif(GetPlayerScore(playerid) == nextscore[playerid] && rank[playerid] != 60){ nextscore[playerid] = nextscore[playerid]*2;rank[playerid]++; format(msg, sizeof(msg), \"Szintet léptél! Szinted: %d! Következő szinthez szükséges pontszám: %d\", rank[playerid], nextscore[playerid]); SendClientMessage(playerid, -1, msg); format(msga, sizeof(msga), \"%s szintet lépett! Szint: %d\", name, rank[playerid]); SendClientMessageToAll(-1, msga);} format(text, sizeof(text), \"~g~Szint:~r~ %i (%i)\", rank[playerid], (nextscore[playerid] - score)); PlayerTextDrawSetString(playerid, Szint[playerid], text);
rank[playerid] = 1;//scoree[playerid] = 0;nextscore[playerid] = 50; //2-es szinthez szükséges