error on Ondialogresponse
#1

PHP код:
C:\Users\dgfh\Desktop\Nuova cartella\filterscripts\DamageSystem.pwn(142) : error 014invalid statementnot in switch
C:\Users\dgfh\Desktop\Nuova cartella\filterscripts\DamageSystem.pwn(143) : warning 225unreachable code
C
:\Users\dgfh\Desktop\Nuova cartella\filterscripts\DamageSystem.pwn(143) : error 014invalid statementnot in switch
C:\Users\dgfh\Desktop\Nuova cartella\filterscripts\DamageSystem.pwn(143) : warning 203symbol is never used"DIALOG_DAMAGE"
C:\Users\dgfh\Desktop\Nuova cartella\filterscripts\DamageSystem.pwn(142) : warning 203symbol is never used"DIALOG_UNUSED" 
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
       if(
dialogid == DIALOG_UNUSED)
       {
           if(
response)
           {
              case 
DIALOG_UNUSED: return 1;
              case 
DIALOG_DAMAGE:
              {
              if (!
response) return 1;
              }
           }
       }
       return 
1;

Reply
#2

What are you trying to do with that "DIALOG_UNUSED" ?
Reply
#3

Non puoi usare 2 dialog ID diversi nel primo if. E usa "switch", и piu' veloce.

pawn Код:
switch (dialogid)
{
         case DIALOG_UNUSED: return 1;
         case DIALOG_DAMAGE: return 1;
}
Inoltre DIALOG_UNUSED ti ho detto nell'altro topic che non va messa una response, in quanto serve solo per mostrare informazioni.

Se con le dialog non ci fai nulla (ma solo mostrare info, come per dialog_damage e dialog_unused), allora usa return 1; e basta, non response, и inutile.

Se invece con le dialog ci fai qualcosa:

pawn Код:
case DIALOG_LOGIN:
{
         if (!response) return Kick(playerid);
         //resto del codice per DIALOG_LOGIN
}
Reply
#4

I just have a problem with the dialog, and they advised me to do it.
When i write the CMD: /damage and close the dialog, give me a "Server closed the connection".
I just changed the variable from my Gamemode and this filterscript and do not match and I do not know what to do to solve this problem
Reply
#5

Ok, adesso ho risolto.. grazie al tuo commento, ma rimane sempre il fatto di questo "Server closed the connection", ho provato a cambiare le variabili della gamemode, ne combaciava solamente una con il "Register", e ho impostato il valore a quella dello script su "7" che non ha nessun valore nella gamemode RP.
Reply
#6

Quote:
Originally Posted by kevi11
Посмотреть сообщение
I just have a problem with the dialog, and they advised me to do it.
When i write the CMD: /damage and close the dialog, give me a " closed the connection".
I just changed the variable from my Gamemode and this filterscript and do not match and I do not know what to do to solve this problem
You probably have added
PHP код:
Kick(playerid); 
in
PHP код:
if(!response
Explain me what are you trying to do in each dialog.
Reply
#7

Look mate i don't see "Kick(playerid)"

PHP код:
//=====================INCLUDES=====================

#include     <a_samp>
#include    <zcmd>
#include    <sscanf2>

//=====================DIALOGS======================

#define DIALOG_UNUSED;

enum
{
    
DIALOG_UNUSED,
    
DIALOG_DAMAGE
};

enum Corpo
{
    
BODY_PART_TORSO,
    
BODY_PART_GROIN,
    
BODY_PART_RIGHT_ARM,
    
BODY_PART_LEFT_ARM,
    
BODY_PART_RIGHT_LEG,
    
BODY_PART_LEFT_LEG,
    
BODY_PART_HEAD
};

#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

//==================CONTROL PANEL===================

#define     FILTERSCRIPT
#define        MAX_DAMAGES            1000

#define        SCM                    SendClientMessage
#define        FORMAT:%0(%1)        format(%0, sizeof(%0), %1)


//===================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 0id MAX_DAMAGESid++)
    {
        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(playeridkilleridreason)
{
    
ResetPlayerDamages(playerid);
    return 
1;
}

stock ShowPlayerDamages(playeridtoid)
{
    new
    
str[1000], str1[500], count 0name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    for(new 
id 0id MAX_DAMAGESid++)
    {
        if(
DamageInfo[playerid][id][dmgDamage] != 0count++;
    }
    if(
count == 0) return ShowPlayerDialog(toidDIALOG_DAMAGEDIALOG_STYLE_LISTname"Non hai subito nessun danno...""Chiudi""");
    else if(
count 0)
    {
        for(new 
id 0id MAX_DAMAGESid++)
        {
            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(strstr1);
            }
        }
        
ShowPlayerDialog(toidDIALOG_DAMAGEDIALOG_STYLE_LISTnamestr"Chiudi""");
    }
    return 
1;
}

stock GetName(playerid)
{
    new 
name;
    
GetPlayerName(playeridnamesizeof(name));
    return 
name;
}
CMD:danni(playeridparams[])
{
    new
    
idFloatpPos[3];
    if(
sscanf(params"u"id)) return SCM(playerid0xFF6347FF"UTILIZZA: {FFFFFF}/danni [playerid/Nome]");
    if(!
IsPlayerConnected(id)) return SCM(playerid0xFF6347FF"L'ID specificato non и stato trovato.");

    
GetPlayerPos(playeridpPos[0], pPos[1], pPos[2]);
    if(
IsPlayerInRangeOfPoint(playerid7.0pPos[0], pPos[1], pPos[2]))
    {
        
ShowPlayerDamages(idplayerid);
    }
    else return 
SCM(playerid0xB8BAC6FF"Sei troppo lontano.");
    return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
         switch (
dialogid)
         {
         case 
DIALOG_UNUSED: return 1;
         case 
DIALOG_DAMAGE: return 1;
         }
         return 
1;
}


public 
OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
{
    if(
IsPlayerConnected(playerid))
    {
        new
        
idFloatpHPFloatpArm;
        
GetPlayerHealth(playeridpHP);
        
GetPlayerArmour(playeridpArm);
        for(new 
0MAX_DAMAGESi++)
        {
            if(!
DamageInfo[playerid][i][dmgDamage])
            {
                
id i;
                break;
            }
        }

        
DamageInfo[playerid][id][dmgDamage] = floatround(amountfloatround_round);
        
DamageInfo[playerid][id][dmgWeapon] = weaponid;
        
DamageInfo[playerid][id][dmgBodypart] = bodypart;
        if(
pArm 0DamageInfo[playerid][id][dmgKevlarhit] = 1;
        else if(
pArm 1DamageInfo[playerid][id][dmgKevlarhit] = 0;
        
DamageInfo[playerid][id][dmgSeconds] = gettime();
    }
    return 
1;
}

stock GetWeaponNameEx(weaponid)
{
    new 
weaponname[60];
    
GetWeaponName(weaponidweaponnamesizeof(weaponname));
    return 
weaponname;
}

stock GetBodypartName(bodypart)
{
    new 
bodyname[60];
    switch(
bodypart)
    {
        case 
BODY_PART_TORSOFORMAT:bodyname("TORSO");
        case 
BODY_PART_GROINFORMAT:bodyname("INGUINE");
        case 
BODY_PART_RIGHT_ARMFORMAT:bodyname("BRACCIO DESTRO");
        case 
BODY_PART_LEFT_ARMFORMAT:bodyname("BRACCIO SINISTRO");
        case 
BODY_PART_RIGHT_LEGFORMAT:bodyname("GAMBA DESTRA");
        case 
BODY_PART_LEFT_LEGFORMAT:bodyname("GAMBA SINISTRA");
        case 
BODY_PART_HEADFORMAT:bodyname("TESTA");
    }
    return 
bodyname;

Reply
#8

Vieni su Discord, proviamo a sistemare li.
Reply
#9

Quote:
Originally Posted by kevi11
Посмотреть сообщение
Look mate i don't see "Kick(playerid)"

PHP код:
//=====================INCLUDES=====================
#include     <a_samp>
#include    <zcmd>
#include    <sscanf2>
//=====================DIALOGS======================
#define DIALOG_UNUSED;
enum
{
    
DIALOG_UNUSED,
    
DIALOG_DAMAGE
};
enum Corpo
{
    
BODY_PART_TORSO,
    
BODY_PART_GROIN,
    
BODY_PART_RIGHT_ARM,
    
BODY_PART_LEFT_ARM,
    
BODY_PART_RIGHT_LEG,
    
BODY_PART_LEFT_LEG,
    
BODY_PART_HEAD
};
#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
//==================CONTROL PANEL===================
#define     FILTERSCRIPT
#define        MAX_DAMAGES            1000
#define        SCM                    SendClientMessage
#define        FORMAT:%0(%1)        format(%0, sizeof(%0), %1)
//===================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 0id MAX_DAMAGESid++)
    {
        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(playeridkilleridreason)
{
    
ResetPlayerDamages(playerid);
    return 
1;
}
stock ShowPlayerDamages(playeridtoid)
{
    new
    
str[1000], str1[500], count 0name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    for(new 
id 0id MAX_DAMAGESid++)
    {
        if(
DamageInfo[playerid][id][dmgDamage] != 0count++;
    }
    if(
count == 0) return ShowPlayerDialog(toidDIALOG_DAMAGEDIALOG_STYLE_LISTname"Non hai subito nessun danno...""Chiudi""");
    else if(
count 0)
    {
        for(new 
id 0id MAX_DAMAGESid++)
        {
            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(strstr1);
            }
        }
        
ShowPlayerDialog(toidDIALOG_DAMAGEDIALOG_STYLE_LISTnamestr"Chiudi""");
    }
    return 
1;
}
stock GetName(playerid)
{
    new 
name;
    
GetPlayerName(playeridnamesizeof(name));
    return 
name;
}
CMD:danni(playeridparams[])
{
    new
    
idFloatpPos[3];
    if(
sscanf(params"u"id)) return SCM(playerid0xFF6347FF"UTILIZZA: {FFFFFF}/danni [playerid/Nome]");
    if(!
IsPlayerConnected(id)) return SCM(playerid0xFF6347FF"L'ID specificato non и stato trovato.");
    
GetPlayerPos(playeridpPos[0], pPos[1], pPos[2]);
    if(
IsPlayerInRangeOfPoint(playerid7.0pPos[0], pPos[1], pPos[2]))
    {
        
ShowPlayerDamages(idplayerid);
    }
    else return 
SCM(playerid0xB8BAC6FF"Sei troppo lontano.");
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
         switch (
dialogid)
         {
         case 
DIALOG_UNUSED: return 1;
         case 
DIALOG_DAMAGE: return 1;
         }
         return 
1;
}
public 
OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
{
    if(
IsPlayerConnected(playerid))
    {
        new
        
idFloatpHPFloatpArm;
        
GetPlayerHealth(playeridpHP);
        
GetPlayerArmour(playeridpArm);
        for(new 
0MAX_DAMAGESi++)
        {
            if(!
DamageInfo[playerid][i][dmgDamage])
            {
                
id i;
                break;
            }
        }
        
DamageInfo[playerid][id][dmgDamage] = floatround(amountfloatround_round);
        
DamageInfo[playerid][id][dmgWeapon] = weaponid;
        
DamageInfo[playerid][id][dmgBodypart] = bodypart;
        if(
pArm 0DamageInfo[playerid][id][dmgKevlarhit] = 1;
        else if(
pArm 1DamageInfo[playerid][id][dmgKevlarhit] = 0;
        
DamageInfo[playerid][id][dmgSeconds] = gettime();
    }
    return 
1;
}
stock GetWeaponNameEx(weaponid)
{
    new 
weaponname[60];
    
GetWeaponName(weaponidweaponnamesizeof(weaponname));
    return 
weaponname;
}
stock GetBodypartName(bodypart)
{
    new 
bodyname[60];
    switch(
bodypart)
    {
        case 
BODY_PART_TORSOFORMAT:bodyname("TORSO");
        case 
BODY_PART_GROINFORMAT:bodyname("INGUINE");
        case 
BODY_PART_RIGHT_ARMFORMAT:bodyname("BRACCIO DESTRO");
        case 
BODY_PART_LEFT_ARMFORMAT:bodyname("BRACCIO SINISTRO");
        case 
BODY_PART_RIGHT_LEGFORMAT:bodyname("GAMBA DESTRA");
        case 
BODY_PART_LEFT_LEGFORMAT:bodyname("GAMBA SINISTRA");
        case 
BODY_PART_HEADFORMAT:bodyname("TESTA");
    }
    return 
bodyname;

Try this :
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
 switch (
dialogid)
 {
  if(!
response) return 0;
  if(
response)
  {
    case 
DIALOG_UNUSED:
    {
      
// your stuff here
     
}
     case 
DIALOG_DAMAGE:
     {
      
//your stuff here
      
}
  }
  return 
1;

Reply
#10

Quote:
Originally Posted by Orbit21
Посмотреть сообщение
Try this :
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
 switch (
dialogid)
 {
  if(!
response) return 0;
  if(
response)
  {
    case 
DIALOG_UNUSED:
    {
      
// your stuff here
     
}
     case 
DIALOG_DAMAGE:
     {
      
//your stuff here
      
}
  }
  return 
1;

this method i never liked
i better like this way
PHP код:
if(dialogid == DIALOG1)
{
 if(
response)
 {
   if(
listitem == 0)
   {
     
//here code
   
}
 }
 return 
1;
}
if(
dialogid == DIALOG2)
{
 if(
response)
 {
   if(
listitem == 0)
   {
     
//here code
   
}
 }
 return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)