Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

Kaip sukurti žinučių logą (/smslogas)


AimuMedziag

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2261 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki,

Čia parodysiu kaip reikėtų pradėti kurti pvz (/smslogas) komanda (joje bus rašoma išrašas tavo parašytų žinučių):

Reikės: mysql naujesnės versijos, zcmd, sscanf2, 

new KokiaDataPasirinkta[ MAX_PLAYERS ][3];
new Kiekjaumatelogu[ MAX_PLAYERS ];

new MySQL:connectionHandle;


#define COLOR_RED 0xAA3333AA
forward smslogasrodyti(playerid,aryrazinuciu);
public smslogasrodyti(playerid,aryrazinuciu)
{
	if( cache_num_rows( ) )
	{
	    new Saugomezinutes[ 2500 ];
		new ZinuteSms[ 200 ];
	
	    for(new r=0; r < cache_num_rows(); ++r)
        {
        	cache_get_value(r, 0, ZinuteSms); // uzkrauname zinute
			format( Saugomezinutes, 2499,"%s%s\n", Saugomezinutes, ZinuteSms );
		}
		Kiekjaumatelogu[ playerid ] ++;
		ShowPlayerDialog(playerid, 100, DIALOG_STYLE_MSGBOX, "sms logas", Saugomezinutes, "Toliau", "Gerai");
	}
	else
	{
	    if( aryrazinuciu == 1 )
	    {
	        SendClientMessage( playerid, COLOR_RED,"* Nera zinuciu");
	    }
	}
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if( dialogid == 100 )
	{
	    if( response )
	    {
	        

			new StringAd[180];

			mysql_format(connectionHandle, StringAd,179, "SELECT sms FROM smslogas%s_%d_%d WHERE diena='%d' ORDER BY smstime DESC LIMIT %d,%d",
			PName( playerid ),
			KokiaDataPasirinkta[ playerid ][ 0 ],
			KokiaDataPasirinkta[ playerid ][ 1 ],
			KokiaDataPasirinkta[ playerid ][ 2 ],
			Kiekjaumatelogu[ playerid ]*20,
			(Kiekjaumatelogu[ playerid ]*20)+20);

			mysql_tquery(connectionHandle,StringAd, "smslogasrodyti", "dd", playerid,0);
		}
		return 1;
	}
	return 0;
}
stock IrasomeZinuteIDB( playerid, zinutesiusti[] )
{
	new FormatIMess[ 500 ];
	new Year;
	new Month;
	new Day;
		
	getdate(Year, Month, Day);

	format( FormatIMess, 200,"CREATE TABLE IF NOT EXISTS `smslogas%s_%d_%d` (`sms` varchar(200) NOT NULL,`diena` int(11) NOT NULL,`smstime` int(11) NOT NULL)",
	PName( playerid ),
	Year,
	Month,
	Day);
	mysql_tquery(connectionHandle,FormatIMess);

	format( FormatIMess, 499,"INSERT INTO `smslogas%s_%d_%d` (`sms`,`diena`,`smstime`) VALUES ('%e','%d','%d')",
	PName( playerid ),
	Year,
	Month,
	zinutesiusti,
	Day,
	gettime( ) );
	mysql_tquery(connectionHandle,FormatIMess);
}
CMD:smslogas(playerid,params[])
{
	new Data[ 3 ];

	new String[200];
	
    if (sscanf(params, "p<->iii", Data[ 0 ],Data[ 1 ],Data[ 2 ] )) // jeigu neiveda jokio datos tai rodom tik siendienos logus
	{
		Kiekjaumatelogu[ playerid ] = 0;

		new Year;
		new Month;
		new Day;

		getdate(Year,Month,Day);
		KokiaDataPasirinkta[ playerid ][ 0 ] = Year;
	 	KokiaDataPasirinkta[ playerid ][ 1 ] = Month;
	 	KokiaDataPasirinkta[ playerid ][ 2 ] = Day;

        mysql_format(connectionHandle, String,199, "SELECT sms FROM smslogas%s_%d_%d WHERE diena='%d' ORDER BY smstime DESC LIMIT 20", PName( playerid ),Year,Month,Day);
        mysql_tquery(connectionHandle, String, "smslogasrodyti", "dd", playerid,1);
	}
	else
	{
	    if( Data[ 0 ] < 2018 || Data[ 0 ] > 2100 || Data[ 1 ] < 1 || Data[ 1 ] > 12 || Data[ 2 ] < 1 || Data[ 2 ] > 31 )
		{
		    return 1;
		}
		Kiekjaumatelogu[ playerid ] = 0;
  		KokiaDataPasirinkta[ playerid ][ 0 ] = Data[ 0 ];
	 	KokiaDataPasirinkta[ playerid ][ 1 ] = Data[ 1 ];
	 	KokiaDataPasirinkta[ playerid ][ 2 ] = Data[ 2 ];
	 	mysql_format(connectionHandle, String,199, "SELECT sms FROM smslogas%s_%d_%d WHERE diena='%d' ORDER BY smstime DESC LIMIT 20", PName( playerid ),Data[ 0 ],Data[ 1 ],Data[ 2 ]);
	 	mysql_tquery(connectionHandle, String, "smslogasrodyti", "dd", playerid,1);
	}
	return 1;
}

CMD:sms(playerid, params[]) // sms komanda ar kokia tai jusu komanda kur rasom ikitam zmogui pranesimai
{
    IrasomeZinuteIDB( playerid,"test" ); // cia turite zinute pagal save irasyti vienam ir kitam zaidejui
	return 1;
}
stock PName(playerid)
{
    new name[24];
    GetPlayerName(playerid, name, 24);
    return name;
}

Taip pat cia reikės prisijungti prie duomenų bazės, jeigu kam reikės čia arba i pm rašykit. Taip pat čia būtų geriau turėti atskirą duomenų bazę, kadangi čia bus žaidimo metu kuriamos lentelės ir vis jų kuriama. Ten kur /sms dalis jeigu kas nesupratote tai irgi čia rasykit arba į pm, jeigu pagal savo gamemodą nemokate pritaikyti.

Redaguota , nario AimuMedziag
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2261 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...