Guida Come implementare la mount

Stato
Discussione chiusa ad ulteriori risposte.

Toki.San

Moderatore
25 Febbraio 2010
245
37
459
346
Ultima modifica da un moderatore:
Buonasera a tutti, è il mio primo post...speriamo bene.

Beh come avrete già capito vi dirò cosa dovrete fare per far funzionare al 100% le mount.

Vi sarà infatti successo che non appena implementavate nuove mount con un value a caso, questo non attaccassero o che non facevano danno.

Nel primo caso, il problema è dato dalla source client: non viene infatti riconosiuto quel value come mount, di conseguenza non ti permette di attaccare ( non si possono fare le spadate per intenderci ).
Per risolverlo:

Source Client/UserInterface e InstanceBase.cpp cerca:

Codice:
UINT CInstanceBase::SHORSE::GetLevel()

Inserisci sotto il value della mount (che se non attacca al 100% non ci sarà).

Nel secondo caso, il problema è dato dalla source server: è il server che questa volta non la riconosce come mount e in quanto tale non fa "danno"
Per risolverlo basta andare nella

Source Server/Game/pvp.cpp cerca:

Codice:
switch( pkChr->GetMountVnum() )

Inserisci sotto il value corrispondente( che se non fa danno al 100% non ci sarà.)

Immagino la parte di compilazione la sappiate fare, quindi la mia guida termina qui.

Grazie per l'attenzione
 

Toki.San

Moderatore
25 Febbraio 2010
245
37
459
346
Guida molto poco dettagliata, scarna di contenuti, praticamente inutile.

Va bene, hai detto la tua. Cosa devo migliorare invece di scrivere in questo modo? I contenuti sono quelli che ho scritto, mettere le immagini renderà forse la guida più carina, ma i contenuti sono sempre gli stessi...il problema di molti utenti di inforge è che vi lamentate, ma non dite come migliorare le cose!
Aspetto i tuoi suggerimenti.
 
  • Mi piace
Reazioni: Madara
9 Maggio 2017
510
43
285
356
Il punto è un altro. Siamo nella community di metin nell'anno 2019, di guide ce ne sono parecchie ovunque, non solo qui.
Se devi aprire una guida, ti consiglio di farla dettagliata e perché no, con immagini step by step. Poiché, se uno non sa una cosa, non è con questo genere di guide che capisce come farle. Arrivare al punto, senza una minima spiegazione, delle funzioni e quant'altro, non risolve del tutto il problema.
 
  • Mi piace
Reazioni: A s t e r i x

Toki.San

Moderatore
25 Febbraio 2010
245
37
459
346
Ripeto, i contenuti sono quelli, non so se hai mai fatto quello che ho scritto nella guida ma non c’e altro.

Di conseguenza la guida “dettagliata” non la posso fare, perché i passaggi sono quelli.

Possono andare in altri siti? Certo che possono, ma almeno sto contribuendo con delle informazioni che “magari” qualcuno troverà utili.

Le inmagini? Davvero? Che ti devo fare vedere? Naturalmente per chi avesse difficoltà potrei essere più chiaro e cristallino(anche se davvero non c’e altro)...dalle mie parti si dice “cunzala come voi, ma sempre cucuzza è.”

Riguardo all’ultimo punto mi pare che una minima spiegazione io l’abbia data, se poi vuoi un tema di 4 pagine in cui spiego nel dettaglio perché le mount non attaccano o fanno danno, beh perdonami ma ti rido in faccia. Per uno che ha questi problemi non interessa perché succede questa o quella cosa, vuole semplicemente risolverli anche perché come ho detto nella guida, la cosa è veramente facile da capire.

Se hai qualche difficoltà con qualche passaggio, dimmi pure. Ti aiuterò volentieri... però per piacere, non dare aria alla tua bocca tanto per.
 
  • Mi piace
Reazioni: Rayzeer
9 Maggio 2017
510
43
285
356
Puru di parti mia si dici u stessu.

Il problema è che non bisogna ragionare da esperti o pratici del settore.

Già dove dici "Qui bisognerà inserire il value della mount"

Qui dove? Per uno che ne mastica un po' ci arriva, uno che ha comprato oggi i files per imparare gli stai recando più danno che utile.
 

Toki.San

Moderatore
25 Febbraio 2010
245
37
459
346
Puru di parti mia si dici u stessu.

Il problema è che non bisogna ragionare da esperti o pratici del settore.

Già dove dici "Qui bisognerà inserire il value della mount"

Qui dove? Per uno che ne mastica un po' ci arriva, uno che ha comprato oggi i files per imparare gli stai recando più danno che utile.

Mi pare che al momento nessuno abbia chiesto questo. Non è difficile da capire, se si legge un po’ quello che c’e dentro i .cpp, si capisce bene dove inserirli.
 

RedStar

Utente Emerald
14 Dicembre 2008
1,142
50
624
635
Il punto è un altro. Siamo nella community di metin nell'anno 2019, di guide ce ne sono parecchie ovunque, non solo qui.
Se devi aprire una guida, ti consiglio di farla dettagliata e perché no, con immagini step by step. Poiché, se uno non sa una cosa, non è con questo genere di guide che capisce come farle. Arrivare al punto, senza una minima spiegazione, delle funzioni e quant'altro, non risolve del tutto il problema.
Come hai detto tu di guide ce ne sono parecchie e ovunque, ma non per questo non devono essere anche su inforge, non tutti i nuovi in questo settore sanno che basterebbe cercare su google in altre lingue per trovare molte soluzioni.
Detto ciò penso che se l'utente vuole dare un contributo, anche se non in maniera specifica, vada comunque ringraziato perché rappresenta un aggiunta alla raccolta del materiale metiniano italiano.
In oltre se un qualsivoglia utente dovesse avere uno o più problemi penso che l'autore della guida, se di buon senso, lo aiuterebbe nella risoluzione del problema.
 
  • Mi piace
Reazioni: Toki.San

Aioriax

Utente Premium+
21 Gennaio 2010
2,299
156
395
1,076
Grazie!

Comunque io non sono per niente esperto su queste cose, ma andando ad istinto direi che nel file pvp.cpp il value va inserito dopo la linea:

Codice:
switch( pkChr->GetMountVnum() )

mentre in instancebase.cpp credo vada inserito in:

Codice:
UINT CInstanceBase::SHORSE::GetLevel()

ma come ho detto sono una pippa con queste cose, perciò correggetemi voi se dico una cazzata °L°
 

Genezis

Utente Gold
4 Gennaio 2010
441
22
163
231
Ripeto, i contenuti sono quelli, non so se hai mai fatto quello che ho scritto nella guida ma non c’e altro.

Di conseguenza la guida “dettagliata” non la posso fare, perché i passaggi sono quelli.

Possono andare in altri siti? Certo che possono, ma almeno sto contribuendo con delle informazioni che “magari” qualcuno troverà utili.

Le inmagini? Davvero? Che ti devo fare vedere? Naturalmente per chi avesse difficoltà potrei essere più chiaro e cristallino(anche se davvero non c’e altro)...dalle mie parti si dice “cunzala come voi, ma sempre cucuzza è.”

Riguardo all’ultimo punto mi pare che una minima spiegazione io l’abbia data, se poi vuoi un tema di 4 pagine in cui spiego nel dettaglio perché le mount non attaccano o fanno danno, beh perdonami ma ti rido in faccia. Per uno che ha questi problemi non interessa perché succede questa o quella cosa, vuole semplicemente risolverli anche perché come ho detto nella guida, la cosa è veramente facile da capire.

Se hai qualche difficoltà con qualche passaggio, dimmi pure. Ti aiuterò volentieri... però per piacere, non dare aria alla tua bocca tanto per.



Te li do io i contenuti (dato che ancora non vedo suggerimenti per migliorare):

1. Breve descrizione della guida o del problema (descrizione chiara e concica )
Es.
Fix Problema Mount che non attaccano (Nuove mount implementate sul vostro server)

2. Usare la funzione Codice di inforge per leggere al meglio il tutto.
Es.

1_ In ClientSide - PythonApllicationModuel.cpp
Search:
Codice:
CODICE/STRINGA O PARAGRAFO DA CERCARE

Add above/after / replace with:
Codice:
CODICE/STRINGA DA INSERIRE



2_ In ServerSide/game - pvp.cpp
Search:
Codice:
CODICE/STRINGA O PARAGRAFO DA CERCARE

Add above/after / replace with:
Codice:
CODICE/STRINGA DA INSERIRE




3_ In Client/root - interfacemodule
Search:
Codice:
CODICE/STRINGA O PARAGRAFO DA CERCARE

Add above/after / replace with:
Codice:
CODICE/STRINGA DA INSERIRE



Penso che questo sia il miglior modo (almeno per me) di spiegare e di far capire le cose anche agli utenti meno esperti che si affacciano al mondo della Source Metin2.
 

Arves100

Utente Developer
15 Febbraio 2011
515
46
368
413
Ciao, bella guida mi hai risparmiato tempo di diagnosticare xD
Bando alle ciance, per chi si ritrovasse una cosa del genere nel Client (InstanceBase.cpp, per ora riscontrata solo nei sorgenti di martino ma chissà) :
Codice:
        return static_cast<UINT>(GetMountLevelByVnum(m_pkActor->GetRace(), false));
nella funzione GetLevel().
Generalmente dove c'è questo controllo di ENABLE_NO_MOUNT_CHECK, non bisogna modificare quella funzione direttamente ma saltare qui:
Codice:
eMountType GetMountLevelByVnum(DWORD dwMountVnum, bool IsNew)
Qui possiamo differenzare 3 tipi di mount
le "military" vanno sotto queste due righe:
case 20225: // Dyno Lv3 (yes skill, yes atk)
case 20230: // Turkey Lv3 (yes skill, yes atk)
e ti fanno usare sia le skill che gli attacchi normali.
le combat che ti fanno attaccare ma non usare le skill vanno sotto queste due righe:
case 20231: // Leopard (no skill, yes atk)
case 20232: // Black Panther (no skill, yes atk)
le mount normali che non ti fanno attaccare o usare skill vanno sotto queste due righe:
case 20223: // Dyno Lv1 (no skill, no atk)
case 20228: // Turkey Lv1 (no skill, no atk)

(Esempio: case 35554: )

Per il lato server, questa volta il file da modificare è in char_skill.cpp, e si modifica allo stesso modo del lato client.
Buona fortuna.
 
  • Mi piace
Reazioni: Toki.San

Drawing

Utente Gold
6 Febbraio 2009
816
54
120
324
Magari inserisci un esempio del code sbagliato ( mount che non workano) e poi esempio di come dovrebbe essere.
 
Stato
Discussione chiusa ad ulteriori risposte.