←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Procentowy stan wykonanego zadania.

  • +
  • -
Eldo. - zdjęcie Eldo. 08.09.2013

Cześć.

Posiadam ten plugin:

link:  http://amxx.pl/topic...mmisje-zadania/

Dokładnie chodzi mi o:

Opisze quest z dmg.

Aktualnie w pluginie jest tak, gdy gracz ma zadać 500 dmg wyświetla: "350/500" a mi chodzi aby obliczało procentowo tak jak z expe'm na cod mod czy diablo.

Mam nadzieje, że każdy wie o co chodzi.

Z góry dzięki.

 

Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 09.09.2013

Chcesz żeby Ci to przerobić czy pokazać jak zrobić?

Działanie powinno wyglądać tak:

x = postęp misji
y = wymagany postęp misji
z = procentowy postęp misji
 
z = x/y * 100.0

Wyobraź to sobie w kodzie (nie zerkałem do niego) i dodaj wynik w odpowiednie miejsce wyobrażając sobie jak powinien wyglądać cały kod.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 09.09.2013

Kurde próboje przerobić ten kod ale cos nie moge: 
new ileMa = doswiadczenie_gracza[id],ilePotrzeba = doswiadczenie_poziomu[poziom_gracza[id]],ilePotrzebaBylo = poziom_gracza[id]-1 >= 0 ? doswiadczenie_poziomu[poziom_gracza[id]-1] : 0 new Float:fProcent = 0.0; fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;

Użytkownik maybe1love edytował ten post 09.09.2013 20:27
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 09.09.2013

To tak jak w przykładzie podałeś, dajmy że 350 to aktualny postęp, a 500 do wymagany postęp, wtedy kod będzie wyglądał tak:

350/500 * 100.0 = 70.0%

Tylko tam musisz podstawić zmienne, bo wiadomo wymagany postęp jest inny dla misji i zależny od pluginu rejestrującego Quest'a, a postęp zmienia się w różnych sytuacjach zależnie od rodzaju misji, np. jeżeli w misji chodzi o zabijanie, to z każdym fragiem zmienia sie postęp misji ;)

 

Tu nie trzeba kombinować tak jak w procentowym XP dla Cod'a

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 10.09.2013

Kurde, dalej nie wiem jak to zrobic ;c

Wiem, że się nie naucze jak dasz gotowca. Lecz jeszcze nie ten poziom abym mógł robić to. Dlatego proszę Cię o gotowca.

Za pomoc daje :plus:

Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 10.09.2013

public MyInfo_QuestMenu(id, qid)
{
    new IQuest=menu_create("Decyzja","MyInfo_QuestMenu_Handle");
    menu_additem(IQuest,"Rezygnuje z Questa");
    menu_additem(IQuest,"Nie rezygnuje z Questa");
    new message[128];
    new iName[32], iRew[64], iOpis[256];
    ArrayGetString(g_QuestsDesc, qid, iOpis, 255);
    ArrayGetString(g_QuestsReward, qid, iRew, 63);
    ArrayGetString(g_QuestsName, qid, iName, 31);
    if(equal("-1", iRew, 2))
        format(message, 127, "^n\rNazwa: \y%s^n\rOpis: \y%s^n\rPostep: \y%0.2f", iName, iOpis, float(fArrayGetCell(g_QuestsProgress[id], qid))/float(ArrayGetCell(g_QuestsTarget, qid)) * 100.0);
    else
        format(message, 127, "^n\rNazwa: \y%s^n\rOpis: \y%s^n\rPostep: \y%0.2f^n\rNagroda: \y%s", iName, iOpis, float(fArrayGetCell(g_QuestsProgress[id], qid))/float(ArrayGetCell(g_QuestsTarget, qid)) * 100.0, iRew);
        
    menu_addtext(IQuest, message);
    g_ItemID[id]=qid;
    menu_setprop(IQuest,MPROP_EXIT,MEXIT_NEVER);
    menu_display(id, IQuest);
    return PLUGIN_HANDLED;
}

Podmień funkcje w pluginie, na tą wyżej.


Użytkownik d0naciak edytował ten post 10.09.2013 14:20
Odpowiedz

  • +
  • -
radim - zdjęcie radim 10.09.2013

%0.2f

na:

%0.2f%%

Tak dla lepszej czytelności ; ))

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 10.09.2013

Zrobiłem hud z wyświetleniem nazwy + postęp questa.

To public:

 

public PokazInformacje(id, qid)
{
id -= ZADANIE_POKAZ_INFORMACJE;


new iName[32];
ArrayGetString(g_QuestsName, qid, iName, 31);


if(!is_user_alive(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return;
}


set_hudmessage(255, 255, 0, 0.02, 0.23, 0, 6.0, 1.0);
ShowSyncHudMsg(id, CreateHudSyncObj(), "^n[Quest: %s | %0.2f%%]", iName), float(fArrayGetCell(g_QuestsProgress[id], qid))/float(ArrayGetCell(g_QuestsTarget, qid)) * 100.0);;
}
Lecz wywala takie błędy:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team


Error: Undefined symbol "fArrayGetCell" on line 137
Error: Invalid expression, assumed zero on line 137
Warning: Expression has no effect on line 137
Error: Empty statement on line 137
Error: Too many error messages on one line on line 137


Compilation aborted.
4 Errors.
Could not locate output file C:\Users\Krupek\Desktop\CodMod\scripting\quests.amx (compile failed).

 

Odpowiedz