Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: David003 poslato April 03, 2013, 23:00:20 POSLE PODNE

Naslov: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 03, 2013, 23:00:20 POSLE PODNE
Skripta koju koristi: Moja
Problem: Kako da satavim TD koji sam napravio da se pojavljuje onako 4 sec prije passworda Tj prije onog prozorcica za password i onak nakon 4 sec da se TD ukine i dode prozorcic za password  (ovo ocu da stavim da se pojavljuje http://zaslike.com/viewer.php?file=hfi9s2oqufg1gl2ykaw.png)
Dio skripte: Dacu sto treba
Slika/Video: dao sam
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 03, 2013, 23:02:30 POSLE PODNE
dodas ga pod onplayerconnect a prekrijes ga pod onplayerspawn
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 03, 2013, 23:06:19 POSLE PODNE
Znam ja to ali ja zelim da mi se pojavljuje prije dialoga za password,npr ako stavim tako kako si reko sve radi ok ali mi se prozorcic za password pojavljuje u isto vrijeme kao u TD,a ja bi htio da se TD pojavi prije dialoga za passwrod i da to traje 4 sec pa da se nakon 4 sec pojavi dialog za password
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 03, 2013, 23:10:05 POSLE PODNE
aha, onda stavis pod onplayerconnect, i tamo pod liniju gde ti je taj dialog ti prikrij textdrawove
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 03, 2013, 23:13:47 POSLE PODNE
Aha,a kako da stavim da mi se dialog pojavi tek nakon 5 sec tako da bude sve ok jer mi ovako sve radi ali mi se dialog za pass pojavi odma kao i TD
Ovo je moj login sistem

public OnPlayerRequestClass(playerid, classid)
{
PlayerInfo[playerid][pModel] = Peds[classid][0];

if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1 && IsPlayerNPC(playerid) !=1)
{
ClearChatbox(playerid, 10);
if (gPlayerAccount[playerid] != 0)
{
new loginstring[512];
new loginname[64];
    PlayAudioStreamForPlayer(playerid, "http://beemp3.com/download.php?file=24815206&song=Flo+Rida+%26+Andy+Stroke+-+Whistle");

      ClearChatbox(playerid, 10);
      new rand = random(sizeof(gRandomCamPos));
SetPlayerCameraPos(playerid, gRandomCamPos[rand][0], gRandomCamPos[rand][1],gRandomCamPos[rand][2]);
SetPlayerCameraLookAt(playerid, gRandomCamLookAt[rand][0], gRandomCamLookAt[rand][1],gRandomCamLookAt[rand][2]);
SetPlayerPos(playerid, gRandomCamPos[rand][0], gRandomCamPos[rand][1],gRandomCamPos[rand][2]);
    GetPlayerName(playerid,loginname,sizeof(loginname));
SendClientMessage(playerid, SVETLOPLAVA, "|SkyAs| Vase korisnicko {FFFFFF}Ime {00C0FF}je Registrirano | Molimo logirajte se na {FFFFFF}server {00C0FF}da biste mogli igrati!.");
format(loginstring,sizeof(loginstring),"{FFFFFF}______________________________________________\n\n{00C0FF}Dobrodosao na {FFFFFF}Croatia Sky RolePlay {00C0FF}Server\n\n{FFFFFF}%s\n\n{00C0FF}Forum je: {FFFFFF}www.mulitimaster-cs.info\n\n{00C0FF}Upisite svoju lozinku da se logirate na server\n\n{FFFFFF}______________________________________________",loginname);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"{00C0FF}|SkyAs| - Logiranje",loginstring,"Prijava","Izadji");
}
else
        {
          gPlayerAccount[playerid] = 0;
new regstring[512];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
SendClientMessage(playerid, SVETLOPLAVA, "|SkyAs| Vase korisnicko {FFFFFF}Ime {00C0FF}nije Registrirano | Molimo registrujte se na {FFFFFF}server {00C0FF}da biste mogli igrati!.");
    format(regstring,sizeof(regstring),"{FFFFFF}______________________________________________\n\n{00C0FF}Dobrodosao na {FFFFFF}Croatia Sky RolePlay {00C0FF}Server\n\n{FFFFFF}%s\n\n{00C0FF}Forum je: {FFFFFF}www.mulitimaster-cs.info\n\n{00C0FF}Upisite svoju lozinku da se registrirate na server\n\n{FFFFFF}______________________________________________",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"{00C0FF}Registracija",regstring,"Registruj","Izadji");
}
PlayerInfo[playerid][pModel] = Peds[classid][0];
SetPlayerTeamFromClass(playerid,classid);
}
else SpawnPlayer(playerid);
return false;
}
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 03, 2013, 23:15:45 POSLE PODNE
sad si me skroz zbunio ?
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 03, 2013, 23:17:27 POSLE PODNE
Znaci onako kao sto je CH kad se logiras prvo ti dode TD,a nakon par sec dialog
(Da neko nebi krivo shvatio ne kopiram CH,niti mi je to namjera)
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 03, 2013, 23:22:22 POSLE PODNE
aa, pa napravi pod onplayerrequestclass da ti plasira dialog, i onda uradis tajmer, primera SetTimerEx("dialog", 10000, false, "i", playerid); i onda napravis public ovako public dialog(playerid)
{
//dialog
return 1;
}
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Slay poslato April 03, 2013, 23:24:36 POSLE PODNE
Citat: Blaeks poslato April 03, 2013, 23:22:22 POSLE PODNE
aa, pa napravi pod onplayerrequestclass da ti plasira dialog, i onda uradis tajmer, primera SetTimerEx("dialog", 10000, false, "i", playerid); i onda napravis public ovako public dialog(playerid)
{
//dialog
return 1;
}


Recimo, otvori server uÄ'e 30-50 igrača na server i svi se krenu logirati i pokrene im se ovaj timer to je 50 timera, koji sumnjam da će uniÅ¡tavati, CRASH je zagarantiran.

Neka koristi varijablu kao timer. Dovoljan mu je 1 lokalni timer da sve timer varijable spoji preko njega...
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 03, 2013, 23:28:24 POSLE PODNE
dobro moja greska, moze on slobodno da ovaj tajmer unisti pod onplayerspawn  ;)
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 03, 2013, 23:36:39 POSLE PODNE
Jel mi moze to netko od vas napravit
Dao sam vam svoj  OnPlayerRequestClass iznad
Sad nemam vremena za procavanje (iskreno i ne kuzim bas najbolje), sutra cu proucit to,skola ujutro,a moram knjige spremit
Tj izbacuje mi neke errori nest sam krivo ,zurim se jer nestignem sad
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Slay poslato April 03, 2013, 23:37:04 POSLE PODNE
Citat: Blaeks poslato April 03, 2013, 23:28:24 POSLE PODNE
dobro moja greska, moze on slobodno da ovaj tajmer unisti pod onplayerspawn  ;)

Nije problem u tom, svakako će se pokrenuti 50 timera, uništavanje timera samo smanjuje vjerojatnost od crasha ali će to biti veliki, veliki LAGG koji host možda neće ni izdržati pa čak niti konekcija igrača sa serverom (ping) tako da će vjerojatno nekima i crashati, ako ne i svima.

Zato za ovakve stvari se radi timer kao varijabla, bolje zauzeti 8-32 bit memorije PAWNCC u kompajler memoriji (heap-u) nego stvarati timer novi za svaku [cenzura]ost, timerEx ima namjenu za male stvari koje će rijetko koji igrač koristiti pa radi oscilacija samog timera koji je Slice i Yless napravili fix za odstupanja onda se koristi timerEx

Evo banalni primjer za ovo šta sam mislio da odma zna...

(http://img7.imageshack.us/img7/825/d7f91fb66a5642a4be2d4a6.png)
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: David003 poslato April 04, 2013, 10:06:54 PRE PODNE
kad tako napravim pise mi pawno stoped working :/
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Blaeks poslato April 04, 2013, 11:30:36 PRE PODNE
to je sigurno negde visak/manjak zagrada..
Naslov: Odg: [POMOC] TD prije logina (passworda)
Poruka od: Slay poslato April 04, 2013, 14:10:12 POSLE PODNE
Citat: David003 poslato April 04, 2013, 10:06:54 PRE PODNE
kad tako napravim pise mi pawno stoped working :/

To je zato jer si stvorio 8 bitnu varijablu, a ne 32 bitnu, kod 8 bitnih varijabli ne koristiš [] nego {} velika je razlika, kod manjka uvlaka ( {} ) dobiješ 26 errora, kompajler ne može prepoznati manjak uvlaka...

Višak uvlaka može