ShowPlayerDialog Server closed the connection -
kevi11 - 05.09.2018
PHP код:
CMD:danni(playerid, params[])
{
new
id, Float: pPos[3];
if(sscanf(params, "u", id)) return SCM(playerid, 0xFF6347FF, "UTILIZZA: {FFFFFF}/danni [playerid/Nome]");
if(!IsPlayerConnected(id)) return SCM(playerid, 0xFF6347FF, "L'ID specificato non и stato trovato.");
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 7.0, pPos[0], pPos[1], pPos[2]))
{
ShowPlayerDamages(id, playerid);
}
else return SCM(playerid, 0xB8BAC6FF, "Sei troppo lontano.");
return 1;
}
this is define:
PHP код:
#define DIALOG_DAMAGE 1
What it's suppose to do is show a list of damage, and then you can press "Done", press "ESC", and it shows Server closed the connection.. as if they got kicked.
Re: ShowPlayerDialog Server closed the connection -
andrejc999 - 05.09.2018
Where's the showplayerdialog code?
And send the ondialogresponse code.
Re: ShowPlayerDialog Server closed the connection -
kevi11 - 05.09.2018
I just download this script, in the script don't exist the "ondialogresponse" IDK....
this is the filterscript:
PHP код:
//=====================INCLUDES=====================
#include <a_samp>
#include <zcmd>
#include <sscanf2>
//=====================DIALOGS======================
#define DIALOG_DAMAGE 1
//==================CONTROL PANEL===================
#define FILTERSCRIPT
#define MAX_DAMAGES 1000
#define SCM SendClientMessage
#define FORMAT:%0(%1) format(%0, sizeof(%0), %1)
#define BODY_PART_TORSO 3
#define BODY_PART_GROIN 4
#define BODY_PART_RIGHT_ARM 5
#define BODY_PART_LEFT_ARM 6
#define BODY_PART_RIGHT_LEG 7
#define BODY_PART_LEFT_LEG 8
#define BODY_PART_HEAD 9
//===================ENUMERATORS====================
enum dmgInfo
{
dmgDamage,
dmgWeapon,
dmgBodypart,
dmgKevlarhit,
dmgSeconds,
}
new DamageInfo[MAX_PLAYERS][MAX_DAMAGES][dmgInfo];
public OnFilterScriptInit()
{
print("\n ==================================");
print(" | |");
print(" | Damage System |");
print(" | By Hreesang |");
print(" | |");
print(" ==================================\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
stock ResetPlayerDamages(playerid)
{
for(new id = 0; id < MAX_DAMAGES; id++)
{
if(DamageInfo[playerid][id][dmgDamage] != 0)
{
DamageInfo[playerid][id][dmgDamage] = 0;
DamageInfo[playerid][id][dmgWeapon] = 0;
DamageInfo[playerid][id][dmgBodypart] = 0;
DamageInfo[playerid][id][dmgKevlarhit] = 0;
DamageInfo[playerid][id][dmgSeconds] = 0;
}
}
return 1;
}
public OnPlayerConnect(playerid)
{
ResetPlayerDamages(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
ResetPlayerDamages(playerid);
return 1;
}
stock ShowPlayerDamages(playerid, toid)
{
new
str[1000], str1[500], count = 0, name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new id = 0; id < MAX_DAMAGES; id++)
{
if(DamageInfo[playerid][id][dmgDamage] != 0) count++;
}
if(count == 0) return ShowPlayerDialog(toid, DIALOG_DAMAGE, DIALOG_STYLE_LIST, name, "Non hai subito nessun danno...", "Chiudi", "");
else if(count > 0)
{
for(new id = 0; id < MAX_DAMAGES; id++)
{
if(DamageInfo[playerid][id][dmgDamage] != 0)
{
FORMAT:str1("%d danno da %s al %s (Kevlarhit: %d) %d s fa\n", DamageInfo[playerid][id][dmgDamage], GetWeaponNameEx(DamageInfo[playerid][id][dmgWeapon]), GetBodypartName(DamageInfo[playerid][id][dmgBodypart]), DamageInfo[playerid][id][dmgKevlarhit], gettime() - DamageInfo[playerid][id][dmgSeconds]);
strcat(str, str1);
}
}
ShowPlayerDialog(toid, DIALOG_DAMAGE, DIALOG_STYLE_LIST, name, str, "Chiudi", "");
}
return 1;
}
stock GetName(playerid)
{
new name;
GetPlayerName(playerid, name, sizeof(name));
return name;
}
CMD:danni(playerid, params[])
{
new
id, Float: pPos[3];
if(sscanf(params, "u", id)) return SCM(playerid, 0xFF6347FF, "UTILIZZA: {FFFFFF}/danni [playerid/Nome]");
if(!IsPlayerConnected(id)) return SCM(playerid, 0xFF6347FF, "L'ID specificato non и stato trovato.");
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 7.0, pPos[0], pPos[1], pPos[2]))
{
ShowPlayerDamages(id, playerid);
}
else return SCM(playerid, 0xB8BAC6FF, "Sei troppo lontano.");
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(IsPlayerConnected(playerid))
{
new
id, Float: pHP, Float: pArm;
GetPlayerHealth(playerid, pHP);
GetPlayerArmour(playerid, pArm);
for(new i = 0; i < MAX_DAMAGES; i++)
{
if(!DamageInfo[playerid][i][dmgDamage])
{
id = i;
break;
}
}
DamageInfo[playerid][id][dmgDamage] = floatround(amount, floatround_round);
DamageInfo[playerid][id][dmgWeapon] = weaponid;
DamageInfo[playerid][id][dmgBodypart] = bodypart;
if(pArm > 0) DamageInfo[playerid][id][dmgKevlarhit] = 1;
else if(pArm < 1) DamageInfo[playerid][id][dmgKevlarhit] = 0;
DamageInfo[playerid][id][dmgSeconds] = gettime();
}
return 1;
}
stock GetWeaponNameEx(weaponid)
{
new weaponname[60];
GetWeaponName(weaponid, weaponname, sizeof(weaponname));
return weaponname;
}
stock GetBodypartName(bodypart)
{
new bodyname[60];
switch(bodypart)
{
case BODY_PART_TORSO: FORMAT:bodyname("TORSO");
case BODY_PART_GROIN: FORMAT:bodyname("INGUINE");
case BODY_PART_RIGHT_ARM: FORMAT:bodyname("BRACCIO DESTRO");
case BODY_PART_LEFT_ARM: FORMAT:bodyname("BRACCIO SINISTRO");
case BODY_PART_RIGHT_LEG: FORMAT:bodyname("GAMBA DESTRA");
case BODY_PART_LEFT_LEG: FORMAT:bodyname("GAMBA SINISTRA");
case BODY_PART_HEAD: FORMAT:bodyname("TESTA");
}
return bodyname;
}
Re: ShowPlayerDialog Server closed the connection -
KinderClans - 05.09.2018
pawn Код:
case DIALOG_DAMAGE:
{
if (!response) return 1;
}
Incolla questo codice in OnDialogResponse. E' inutile creare una dialog se poi (anche se non c'и nessuna opzione da selezionare), non viene aggiunta li.
Comunque, il problema de "server closed connection" и perchи probabilmente l'id della dialog (in questo caso 1), va in conflitto con altre dialog. Ti do un consiglio, invece di fare #define DIALOG_DAMAGE 1, usa un enum:
pawn Код:
enum
{
DIALOG_UNUSED,
DIALOG_DAMAGE
};
Se ci fai caso non ho specificato l'ID dei dialog perchи non ce n'и bisogno. Inoltre, puoi usare DIALOG_UNUSED for mostrare informazioni (in questo caso i danni), oppure per mostrare le stats di un player etc etc, tutto con DIALOG_UNUSED. Senza creare dialogs inutili.
Ricordati di aggiungere in OnDialogResponse questo:
pawn Код:
case DIALOG_UNUSED: return 1;
Se c'и altro chiedi pure.
Re: ShowPlayerDialog Server closed the connection -
v1k1nG - 05.09.2018
La butto lм, controlla se i dialoghi nel filterscript sono definiti con lo stesso ID dei dialoghi nella gamemode. In questo caso io credo che sia il dialogo LOGIN, dove di solito se un utente non "risponde" viene kickato, che DIALOG_DAMAGE siano stati definiti con lo stesso ID, in questo caso 1. щ
Potrebbe darsi che vengano chiamati 2 dialoghi nello stesso momento, un dialogo della gamemode e uno del filterscript.
Oh quasi dimenticavo, ciao ragazzi
Re: ShowPlayerDialog Server closed the connection -
KinderClans - 05.09.2018
v1k1nG infatti и quello che ho detto io. Molto probabilmente ci sarа un conflitto tra i vari ID dei dialogs. P.S. Ciao! Entra nel mio server discord se vuoi.
Re: ShowPlayerDialog Server closed the connection -
solstice_ - 05.09.2018
How about you two speak english? Because there might be other people who will need help with that and they won't understand shit.
Re: ShowPlayerDialog Server closed the connection -
v1k1nG - 05.09.2018
O cavoli, scusami KinderClans non ho letto tutto il tuo post.. effettivamente la risposta sta giа lм
Sм, darт un'occhiata al tuo Discord
Re: ShowPlayerDialog Server closed the connection -
kevi11 - 05.09.2018
Ciao ragazzi grazie mille per avermi risposto, proverт come mi avete consigliato

Comunque sono un novellino nel mondo dello script e pian piano sto imparando, per esempio so riuscito a sbuggare l'anticheat di una gm scaricata (con cosa basilari) e creare dei sistemi.
Purtroppo avendo scaricato questo filterscript non pensavo esistessero questi problemi, comunque ragazzi ho visto che ve ne intendete.. ma per caso qualcuno di voi avrebbe possibilitа di creare una gm RP (ovviamente a pagamento)
Re: ShowPlayerDialog Server closed the connection -
KinderClans - 05.09.2018
Io la sto creando da 0. Per me non ci sono problemi, posso creartela anche io. Ne sto facendo una da me proprio da ZERO assoluto. Controlla il mio discord e contattami li che parliamo.