[POMOC] Dialog - sifra

Započeo V_More
17. Dec. 2011.
1,584
pregleda
16
postova
Hustley
4
Made Man
17. Dec. 2011.
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):
Johnâ„¢
5
Godfather
17. Dec. 2011.
Pokažeš mu dialog te u OnDialogResponse provjeriš da li je lozinka točna, ako je otvoriš, ako nije napraviš što hoćeš.
Maki187
5
Crime Lord
17. Dec. 2011.
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.
Johnâ„¢
5
Godfather
17. Dec. 2011.
@[BR]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))
Hitman
5
Crime Lord
17. Dec. 2011.
Uzmi si iz nekog GMa sistem za pin (za bankomat) pa edituj
Hustley
4
Made Man
17. Dec. 2011.
Quote from December 17, 2011, 5:53 pm:
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?
Johnâ„¢
5
Godfather
17. Dec. 2011.
Vectro64 wrote on December 17, 2011, 6:09 pm:
1. A, kako da stavim da se ta sifra onda moze mjenjat?


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

Vectro64 wrote on December 17, 2011, 6:09 pm:
2. Kako se ono definise dialog?


Funkcija za pokazivanje dialoga je ShowPlayerDialog.
Hustley
4
Made Man
17. Dec. 2011.
The Guy wrote on December 17, 2011, 6:09 pm:
1. A, kako da stavim da se ta sifra onda moze mjenjat?


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

Vectro64 wrote on December 17, 2011, 6:09 pm:
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?
Johnâ„¢
5
Godfather
17. Dec. 2011.
Vectro64 wrote on December 17, 2011, 6:20 pm:
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.

Vectro64 wrote on December 17, 2011, 6:20 pm:
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
Hustley
4
Made Man
17. Dec. 2011.
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.
Johnâ„¢
5
Godfather
17. Dec. 2011.
Vectro64 wrote on December 17, 2011, 6:31 pm:
if(!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
Hustley
4
Made Man
17. Dec. 2011.
The Guy wrote on December 17, 2011, 6:31 pm:
if(!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
Maki187
5
Crime Lord
17. Dec. 2011.
Vectro64 wrote on December 17, 2011, 6:31 pm:
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)) ??
Hustley
4
Made Man
17. Dec. 2011.
Evo EDIT sam post ovaj prije Maki-evog, sad imam samo te bugove, inace ovaj Undefinied simbol je kod ovog:
#define COLOR_BLUE 05B5FA
Maki187
5
Crime Lord
17. Dec. 2011.
ubaci ovo za boju

#define COLOR_BLUE 0x2641FEAA

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha