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):
PokažeÅ¡ mu dialog te u OnDialogResponse provjeriÅ¡ da li je lozinka toÄna, ako je otvoriÅ¡, ako nije napraviÅ¡ Å¡to hoćeÅ¡.
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))
Uzmi si iz nekog GMa sistem za pin (za bankomat) pa edituj
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?
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.
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?
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
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.
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
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
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)) ??
Evo EDIT sam post ovaj prije Maki-evog, sad imam samo te bugove, inace ovaj Undefinied simbol je kod ovog:
#define COLOR_BLUE 05B5FA
ubaci ovo za boju
#define COLOR_BLUE 0x2641FEAA
Sad je sve ok, moze samo ova komanda za mjenjanje sifre, sta sve trebam izmjenuti to.