[POMOC] Dialog - sifra

Započeo V_More, Decembar 17, 2011, 17:32:06 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Skripta koju koristim: Moja Filterskripta
Detaljan opis problema: Kako da napravim da kad se pridje ono kao IsPlayerInRange i ono da pritisne tipku za otvaranje vrata na tastaturi, no da se ne otvore odmah, nego da prvo mora unijet neku sifru, ako je netacna, pokaze mu kao neko poruku ono SendClientMessage, a ako je tacna, otvore mu se vrata.
Dio skripte: if( newkeys == KEY_SPRINT ) // Tipka SPACE
{
if( IsPlayerInRangeOfPoint(playerid, 1.0, 236.42187500,115.92285156,1003.47729492))
       {
    MoveObject(vrata6,235.12187500,115.92285156,1003.47729492, 2.0);
    SetTimer("Zvrata6", 5000, 0);
                return 1;
       }
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Last nick: Vectro64

Pokažeš mu dialog te u OnDialogResponse provjeriš da li je lozinka točna, ako je otvoriš, ako nije napraviš što hoćeš.

Last nick: Paradox

Uradi ovako

if( newkeys == KEY_SPRINT ) // Tipka SPACE
{
if( IsPlayerInRangeOfPoint(playerid, 1.0, 236.42187500,115.92285156,1003.47729492))
      {
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_INPUT,"Sifra","Ukucajte ispod sigurnosnu sifru","Ok","Odustani");
return 1;
}
}


onda pod pod public Ondialogrespone stavis ovo

if(dialogid == 1234)
{
   if(response)
   {
       if(strlen(inputtext) == sifra)
{
   MoveObject(vrata6,235.12187500,115.92285156,1003.47729492, 2.0);
   SetTimer("Zvrata6", 5000, 0);
   return 1;
}
    }
else
{
   SendClientMessage(playerid, BELA,"Pogresna sifra!!");
}
}



E sad, ID dijaloga promeni u neki drugi, kak ot ise nebi mesao sa gm-om

onda,  if(strlen(inputtext) == sifra) , ovo sifra ti ej ustvari text(sifra) koju igrac mora uneti, da bi mu se otvorila vrata... i promeni ovo BELA u koju zelis boju...

Javi ako ima nekih greski...

Upozorenje - dok ste kucali poslat je nov odgovor. Možda ćete želeti da izmenite svoju poruku.

@
Maki187,
if(strlen(inputtext) == sifra)

Taj kod ti nema smisla. Provjerava duljinu varijable inputtext sa 'sifra'. Ako si htio usporedit koji je tekst upisao sa pravom lozinku, onda se to ovako radi:

if(!strcmp(inputtext, /*Ovdje ide tvoja lozinka*/, false))

Last nick: Paradox


Citat: [AG] нιÑ,мαη.ιηc poslato Decembar 17, 2011, 18:53:12 POSLE PODNE
Uzmi si iz nekog GMa sistem za pin (za bankomat) pa edituj

Nisi mi bas puno pomogao.

1. A, kako da stavim da se ta sifra onda moze mjenjat?

2. Kako se ono definise dialog?
Last nick: Vectro64

Citat: Vectro64 poslato Decembar 17, 2011, 19:09:19 POSLE PODNE
1. A, kako da stavim da se ta sifra onda moze mjenjat?

Možeš napravit neku komandu ili nešto u tom stilu.

Citat: Vectro64 poslato Decembar 17, 2011, 19:09:19 POSLE PODNE
2. Kako se ono definise dialog?

Funkcija za pokazivanje dialoga je ShowPlayerDialog.

Last nick: Paradox

Citat: The Guy poslato Decembar 17, 2011, 19:12:54 POSLE PODNE
Citat: Vectro64 poslato Decembar 17, 2011, 19:09:19 POSLE PODNE
1. A, kako da stavim da se ta sifra onda moze mjenjat?

Možeš napravit neku komandu ili nešto u tom stilu.

Citat: Vectro64 poslato Decembar 17, 2011, 19:09:19 POSLE PODNE
2. Kako se ono definise dialog?

Funkcija za pokazivanje dialoga je ShowPlayerDialog.

1. Koju komandu, kako da napravim?

2. Nisam to mislio, nego ono kao kako ide new ili #define, ono na pocetku kako ono?
Last nick: Vectro64

Citat: Vectro64 poslato Decembar 17, 2011, 19:20:15 POSLE PODNE
1. Koju komandu, kako da napravim?

Pa napraviš komandu u kojoj možeš pokazat igraču jedan dialog i onda on u taj dialog upiše novu lozinku i ti samo staru lozinku zamijeniš novom.

Citat: Vectro64 poslato Decembar 17, 2011, 19:20:15 POSLE PODNE
2. Nisam to mislio, nego ono kao kako ide new ili #define, ono na pocetku kako ono?

Ako si mislio na definiranje dialog ID-a preko macroa onda to ide ovako:
#define TU_IDE_IME_TOG_MACROA 1 // 1 možeš promijenit u koji dialog ID hoćeš da bude

Last nick: Paradox

Imam sad ovaj error kod OnPlayerDialogResponse:

Ovaj dio je od linije 302:
public OnPlayerDialogResponse
if(dialogid == 1)
{
    if(response)
    {
        if(!strcmp(inputtext, test, false))
{
    MoveObject(vrata6,235.12187500,115.92285156,1003.47729492, 2.0);
    SetTimer("Zvrata6", 5000, 0);
    return 1;
}
    }
else
{
    SendClientMessage(playerid, COLOR_BLUE,"Pogresna sifra!");
}
}


Errori:
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(303) : error 001: expected token: ";", but found "if"
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(305) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(307) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(311) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(314) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(319) : warning 203: symbol is never used: "OnPlayerDialogResponse"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.

Last nick: Vectro64

Citat: Vectro64 poslato Decembar 17, 2011, 19:31:08 POSLE PODNEif(!strcmp(inputtext, test, false))

Test mora biti string, to znači da mora biti ovako:
if(!strcmp(inputtext, "test", false))

Tako izgleda ako hoćeš da lozinka konstantno bude 'test, dok ti to ne promijeniš u skripti. A ako hoćeš da mogu igrači mijenjat in-game lozinku onda moraš spremat tu lozinku u neku varijablu, te bi onda to ovako izgledalo:
if(!strcmp(inputtext, varijabla, false)) // Umjesto 'varijabla' stavi ime svoje varijable u koju spremaš lozinku

Last nick: Paradox

Citat: The Guy poslato Decembar 17, 2011, 19:35:41 POSLE PODNE
Citat: Vectro64 poslato Decembar 17, 2011, 19:31:08 POSLE PODNEif(!strcmp(inputtext, test, false))

Test mora biti string, to znači da mora biti ovako:
if(!strcmp(inputtext, "test", false))

Tako izgleda ako hoćeš da lozinka konstantno bude 'test, dok ti to ne promijeniš u skripti. A ako hoćeš da mogu igrači mijenjat in-game lozinku onda moraš spremat tu lozinku u neku varijablu, te bi onda to ovako izgledalo:
if(!strcmp(inputtext, varijabla, false)) // Umjesto 'varijabla' stavi ime svoje varijable u koju spremaš lozinku

Moze pomoc oko te komande onda?

Mozes mi pokazat kako to ide i sve detaljno objasnit, bio bih ti zahvalan, ides i u Creditse za FS isto.

EDIT:

Sad imam ove bugove:
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(159) : error 029: invalid expression, assumed zero
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(159) : error 029: invalid expression, assumed zero
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(159) : error 017: undefined symbol "B5FA"
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(159) : fatal error 107: too many error messages on one line
Poslednja Izmena: Decembar 17, 2011, 19:41:23 POSLE PODNE od Vectro64
Last nick: Vectro64

Citat: Vectro64 poslato Decembar 17, 2011, 19:31:08 POSLE PODNE
Imam sad ovaj error kod OnPlayerDialogResponse:

Ovaj dio je od linije 302:
public OnPlayerDialogResponse
if(dialogid == 1)
{
    if(response)
    {
        if(!strcmp(inputtext, test, false))
{
    MoveObject(vrata6,235.12187500,115.92285156,1003.47729492, 2.0);
    SetTimer("Zvrata6", 5000, 0);
    return 1;
}
    }
else
{
    SendClientMessage(playerid, COLOR_BLUE,"Pogresna sifra!");
}
}


Errori:
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(303) : error 001: expected token: ";", but found "if"
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(305) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(307) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(311) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(314) : error 010: invalid function or declaration
C:\Documents and Settings\User\My Documents\My Documents\Downloads\Skriptanje\Karagon's CnR\pawno\pdintfilterscript.pwn(319) : warning 203: symbol is never used: "OnPlayerDialogResponse"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.



normalno da imas erore kad public OnPlayerDialogResponse nepostoji, uradi ovako

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
      {
          if(response)
          {
              if(!strcmp(inputtext, test, false))
            {
                MoveObject(vrata6,235.12187500,115.92285156,1003.47729492, 2.0);
                SetTimer("Zvrata6", 5000, 0);
                return 1;
            }
          }
         else
         {
             SendClientMessage(playerid, COLOR_BLUE,"Pogresna sifra!");
         }
      }
return 1;
}

@The Guy, hvala na ispravci gore, al me nesto buni
if(!strcmp(inputtext, test, false))

zar ovo ustvari neproverava da ako ukucani tekst NIJE test, da onda uradi nesto ?
zar nebi trebalo da je if(strcmp(inputtext, test, true)) ??
Poslednja Izmena: Decembar 17, 2011, 19:45:46 POSLE PODNE od [BR]Maki187

Evo EDIT sam post ovaj prije Maki-evog, sad imam samo te bugove, inace ovaj Undefinied simbol je kod ovog:

#define COLOR_BLUE 05B5FA
Last nick: Vectro64