Ранги
#1

Всем привет,у меня есть скрипт ранг в 3D тексте над персонажем,но когда набираешь определенное количество убиств он не обновляется,и не могу сделать так чтобы он сохранялся у игроков....Помогите пожалуйста! =)
Reply
#2

Ты вообще знаешь, каким образом сохраняются данные в SA-MP'овских скриптах и модах?
Reply
#3

сделать не могу(но немножко представляю
Reply
#4

Quote:
Originally Posted by [HHT]DRON
View Post
Всем привет,у меня есть скрипт ранг в 3D тексте над персонажем,но когда набираешь определенное количество убиств он не обновляется,и не могу сделать так чтобы он сохранялся у игроков....Помогите пожалуйста! =)
Господи, я конечно видал быдло код, но до такой степени я, честно говоря, вижу впервые, и вряд ли в будущем встречусь с подобным кодом xD Если честно я даже не понял, что ты хотел сделать, если ты пытался реализовать подобие системы уровней, как это было на GW (GWRussia), то твой код - ужасный бред.

Вот, набросал от скуки...
PHP Code:
#include <a_samp>
new
    
Text3D:Level3D[MAX_PLAYERS],
    
TextString[MAX_PLAYERS][128];
#define AddScoreToPlayer(%0,%1) SetPlayerScore(%0,GetPlayerScore(%0)+%1)
public OnFilterScriptInit()
{
    for(new 
i=0i<GetMaxPlayers(); i++)
    {
        
Level3D] = Create3DTextLabel(" ",0xFFFFFFAA,0.000,0.000,-4.000,18.0,0,1);
    }
    return 
1;
}
public 
OnPlayerDeath(playerid,killerid)
{
    
AddScoreToPlayer(killerid1);
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    switch(
GetPlayerScore(playerid))
    {
        case 
1..100:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}Игрок{FFFFFF}*\n*Уровень: {00CCFF}1{FFFFFF}.*\n*{00CCFF}Новечек{FFFFFF}*");
        case 
101..250:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*Игрок{FFFFFF}*\n*Уровень: {00CCFF}2{FFFFFF}.*\n*{00CCFF}Свой{FFFFFF}*");
        case 
251..400:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}Игрок{FFFFFF}*\n*Уровень: {00CCFF}3{FFFFFF}.*\n*{00CCFF}Умелый{FFFFFF}*");
        case 
401..600:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}Игрок{FFFFFF}*\n*Уровень: {00CCFF}4{FFFFFF}.*\n*{00CCFF}Кент{FFFFFF}*");
        case 
601..1000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}Игрок{FFFFFF}*\n*Уровень: {00CCFF}5{FFFFFF}.*\n*{00CCFF}Киллер{FFFFFF}*");
        case 
1001..2000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}Игрок{FFFFFF}*\n*Уровень: {00CCFF}6{FFFFFF}.*\n*{00CCFF}Полу Проффи{FFFFFF}*");
        case 
2001..3000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}*Игрок*{FFFFFF}*\n*Уровень: {00CCFF}7{FFFFFF}.*\n*{00CCFF}Профи{FFFFFF}*");
        case 
3001..4000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}*Игрок*{FFFFFF}*\n*Уровень: {00CCFF}8{FFFFFF}.*\n*{00CCFF}Охотник{FFFFFF}*");
        case 
4001..5000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}*Игрок*{FFFFFF}*\n*Уровень: {00CCFF}9{FFFFFF}.*\n*{00CCFF}Непобедимый{FFFFFF}*");
        case 
5001..6000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}*Игрок*{FFFFFF}*\n*Уровень: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}Псих{FFFFFF}*");
        case 
6001..10000:format(TextString[playerid],sizeof(TextString),"{FFFFFF}*{00CCFF}*Игрок*{FFFFFF}*\n*Уровень: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}головорез{FFFFFF}*");
    }
    
Attach3DTextLabelToPlayer(Level3D[playerid],playerid,0.0,0.0,0.47);
    
Update3DTextLabelText(Level3D[playerid],0x00FF00FF,TextString[playerid]);
    return 
1;

Reply
#5

Quote:

Господи, я конечно видал быдло код, но до такой степени я, честно говоря, вижу впервые, и вряд ли в будущем встречусь с подобным кодом xD Если честно я даже не понял, что ты хотел сделать, если ты пытался реализовать подобие системы уровней, как это было на GW (GWRussia), то твой код - ужасный бред.

Не я делал,мне друг скидывал,а там был этот скрипт =)
Reply
#6

seeeca,нет не работает,3D текст не появляется над персонажем
Reply
#7

Зачем ты делаешь TextString[MAX_PLAYERS][128] в самом верху? можно сделать string в OnPlayerSpawn.
Тебе нужно будет поставить таймер (5-20 секунд) на обновление 3д текста, а то старый текст со старым рангом будет висеть пока ты не заспавнишься в очередной раз..
У тебя последний ранг до 10000 очков, после 10000 очков 3д текст появляться не будет, уводи его в бесконечность если это последний ранг.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)