*Problemă/Întrebare: Salut!Am adaugat sistemul pentru blocarea licorilor rosii in duel si merge totul ok.Insa am adaugat si codul elixirului red in functie dar acesta nu se dezactiveaza in duel,ma poate ajuta cineva? Multumesc
Tipologie server: -
*Resursă folosită: ht tps://pastebin.com/nRHzFQSU
*ServerFiles utilizat: Marty
*Syserr: Nici-o eroare
Poză:-
*Detalii suplimentare:-
Problema eliminare licori in duel
- Alcinous
-

- Mesaje: 670
- Membru din: 13 Noi 2020, 23:46
- Server: None
- Regat: Jinno
- Aprecieri: 322
- Mulţumiri: 487
- Discord: Copiază ID
- Amun3808
-

- Mesaje: 54
- Membru din: 29 Noi 2020, 01:21
- Regat: Chunjo
- Aprecieri: 29
- Mulţumiri: 10
- Discord: Copiază ID
Fereasca sfantul... Imi vine sa plang cand vad ce se posteaza pe aici..
In loc sa adaugi N'spe mii de functii si 1000 de linii retardate in sursa ai putea doar sa adaugi un mic check in char_item.cpp sa vezi daca jucatorul are duel si daca are sa dea return.
Doar cauta case item_auto_hp_recovery si pune check-ul inainte sau dupa if (CArenaManager::instance().IsArenaMap(GetMapIndex()))
Eventual ai putea sa faci o mica functie care sa verifice pentru licori sau elixire si sa inlocuiesti toate verificarile pentru ArenaMap cu ea, asta ca sa nu ai conditii inutile lasate in sursa, din moment ce anulezi toate licorile indiferent daca jucatorul e in arena sau nu.
In fine, bafta !
In loc sa adaugi N'spe mii de functii si 1000 de linii retardate in sursa ai putea doar sa adaugi un mic check in char_item.cpp sa vezi daca jucatorul are duel si daca are sa dea return.
Doar cauta case item_auto_hp_recovery si pune check-ul inainte sau dupa if (CArenaManager::instance().IsArenaMap(GetMapIndex()))
Eventual ai putea sa faci o mica functie care sa verifice pentru licori sau elixire si sa inlocuiesti toate verificarile pentru ArenaMap cu ea, asta ca sa nu ai conditii inutile lasate in sursa, din moment ce anulezi toate licorile indiferent daca jucatorul e in arena sau nu.
In fine, bafta !
- [Reizo]
-

- Mesaje: 1301
- Membru din: 22 Oct 2019, 15:44
- Server: SAPPHIRE2
- Regat: Chunjo
- Aprecieri: 409
- Mulţumiri: 4322
- Discord: Copiază ID
- Contact:
E ok in mare parte ce zici, da' daca le are puse nu se va da jos asta-i problema. Si pentru duel o sa trebuiasca sa schimbe if-u nuj dc ai dat pentru arena.Amun3808 scrie: ↑09 Ian 2021, 22:34 Fereasca sfantul... Imi vine sa plang cand vad ce se posteaza pe aici..
In loc sa adaugi N'spe mii de functii si 1000 de linii retardate in sursa ai putea doar sa adaugi un mic check in char_item.cpp sa vezi daca jucatorul are duel si daca are sa dea return.
Doar cauta case item_auto_hp_recovery si pune check-ul inainte sau dupa if (CArenaManager::instance().IsArenaMap(GetMapIndex()))
Eventual ai putea sa faci o mica functie care sa verifice pentru licori sau elixire si sa inlocuiesti toate verificarile pentru ArenaMap cu ea, asta ca sa nu ai conditii inutile lasate in sursa, din moment ce anulezi toate licorile indiferent daca jucatorul e in arena sau nu.
In fine, bafta !
Pentru check duel poti folosi daca nu ma insel IsFight, si ca sa dezactiveze elixirul poti sa faci check si sa ii spui ca nu poate incepe duelul daca are un elixir activat .
- Amun3808
-

- Mesaje: 54
- Membru din: 29 Noi 2020, 01:21
- Regat: Chunjo
- Aprecieri: 29
- Mulţumiri: 10
- Discord: Copiază ID
Aici ai dreptate, daca intra in duel cu elixirul activat acel check in case n-o sa mai aiba nicio valoare daca nu dezactiveaza elixirul.
In loc sa ne mai batem capul cu case-urile, mai bine blocam direct din AutoRecoveryItemProcess.
Bazat pe ceea ce i-a dat celalalt baiat mai sus, uite aici treaba completa:
pvp.cpp
adauga la final:
cauta
Cod: Selectaţi tot
CPVP * Find(DWORD dwCRC);
Cod: Selectaţi tot
bool HasDuel(LPCHARACTER pkChar);
Cauti
Cod: Selectaţi tot
void CHARACTER::AutoRecoveryItemProcess(const EAffectTypes type)
{
Cod: Selectaţi tot
if (CPVPManager::Instance().HasDuel(quest::CQuestManager::instance().GetCurrentCharacterPtr()))
return;Ceea ce ar trebui sa testati voi este daca elixirul functioneaza cum trebuie la war intre bresle sau in three_way(flag war).
Daca elixirul este blocat acolo o sa fie nevoie sa adaugati o extra conditie ca sa verifice daca jucatorul este in mapa de war/flag war.
Bafta
Edit:
Am uitat sa precizez ca puteti folosi acest check si pentru restul licorilor.
De asemenea, ar trebui sa stergeti check-urile pentru Arena din moment ce or sa fie inutile daca blocati licorile in duel.
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Bing [Bot] și 11 vizitatori



