Jump to content
  • 0

pomoc Rozdělení dárků na levely


DarkDragon_CZE69

Dotaz

Zdravím potřeboval bych pomoc rozdělit můj dárkový script na 2 levely a příkaz by měl vypadat /setdarecek [iD] [LEVEL]

 

Zde je můj celý FS:

 

 

/*Tento Script udělal Stringer_CZE*/

#include
#include
#include
#define COLOR_LIME 0x80FF00FF
#define COLOR_TMAVEMODRA 0x0000FFFF
#define COLOR_SVETLEMODRA 0x00FFFFFF
#define COLOR_SPECCERVENA 0xFF0000FF
#define DIALOG_DAREKINFO 1456
#define DIALOG_DAREKINFOA 1457
new DAREK[MAX_PLAYERS];
new DAREKSAVE[50];
new DAREKREMOVE[50];

public OnFilterScriptInit()
{
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

public OnGameModeInit()
{
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
return 1;
}

public OnPlayerConnect(playerid)
{
format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(playerid));
DAREK[playerid] = dini_Bool(DAREKSAVE, "DAREK");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

CMD:setdarecek(playerid,params[])
{
new id = strval(params);
if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /setdarecek [ID]");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!");
else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF, "Jenom RCON může dát hráči dárek!");
else if(DAREK[id] == 1) return SendClientMessage(playerid,COLOR_SPECCERVENA, "Tento hráč už má darek!");
else
{
DAREK[id] = 1;
new setdarecek[150];
format(setdarecek, sizeof(setdarecek), "Administrátor %s dal hráči %s dárek č.1 !", Meno(playerid), Meno(id));
SendClientMessageToAll(COLOR_SPECCERVENA, setdarecek);
format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id));
if(!dini_Exists(DAREKSAVE))
{
dini_Create(DAREKSAVE);
dini_BoolSet(DAREKSAVE, "DAREK", DAREK[playerid]);
}
}
return 1;
}

CMD:darecek(playerid,params[])
{
if(DAREK[playerid] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Nevlastníš žádný dárek!");
new string[200];
new name[25];
switch(random(10))
{
case 0:{
random(10);
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}125,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 1:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}500,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 2:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}250,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 3:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}1,000,000.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 4:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}200,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 5:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}25,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 6:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}150,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 7:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}100,000$.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 8:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}má smůlu a nedostal nic.", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
case 9:{
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}50,000$ .", name);
SendClientMessageToAll(COLOR_SPECCERVENA,string);
DAREK[playerid] = 0;
}
}
return 1;
}

CMD:odeberdarecek(playerid,params[])
{
new id = strval(params);
if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /odeberdarecek [ID]");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!");
else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Jenom RCON může odebrat dárek!");
else if(DAREK[id] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Tento hráč nemá dárek!");
else
{
DAREK[id] = 0;
format(DAREKREMOVE, sizeof(DAREKREMOVE), "Administrátor %s odebral hráči %s dárek č.1 !", Meno(playerid), Meno(id));
SendClientMessageToAll(COLOR_SPECCERVENA, DAREKREMOVE);
format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id));
if(dini_Exists(DAREKREMOVE))
{
dini_Remove(DAREKREMOVE);
}
}
return 1;
}

CMD:darekinfo(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return ShowPlayerDialog(playerid,DIALOG_DAREKINFO,DIALOG_STYLE_MSGBOX,"Dárky","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1","Zavřít","");
else
{
ShowPlayerDialog(playerid,DIALOG_DAREKINFOA,DIALOG_STYLE_MSGBOX,"Dárky - Admini","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1\n\n{00FF00}/setdarecek {FF0000}- Dá hráči dárek č.1(Pouze RCON!)","Zavřít","");
}
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}

public OnRconCommand(cmd[])
{
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
return 1;
}

public OnObjectMoved(objectid)
{
return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}

public OnPlayerUpdate(playerid)
{
return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}

stock Meno(playerid)
{
new pName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, pName, sizeof(pName));
}
return pName;
}

 

 

Mimochodem princip bych měl být takový, že když hráč má Level 1 tak to napíše do chatu všem random zprávu, který budou nastaveny a když má level 2 tak to stejný akorát bude mít trošku lepší výhry :d
Všem předem děkuji za rady.

Edited by Stringer_CZE
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Recommended Posts

  • 0

Takže si přepsal ten string na DAREKSAVE? Mě se zdá že ne protože kdyby ano tak to musí fungovat podle posledních chyb které si uveřejnil (každopádně jestli si si přidělal další errory tak to není nic nového no nikdo to za tebe dělat nebude musíš se to naučit).

Edited by rEf
Link to comment
Share on other sites

  • 0
Takže si přepsal ten string na DAREKSAVE? Mě se zdá že ne protože kdyby ano tak to musí fungovat podle posledních chyb které si uveřejnil (každopádně jestli si si přidělal další errory tak to není nic nového no nikdo to za tebe dělat nebude musíš se to naučit).

 

Prostě to podle tvých rad nejde přejmenoval jsem to na ten DAREKSAVE a furt to prostě háže errory... :/

Link to comment
Share on other sites

  • 0

Víš co dej mi sem celý obsah toho tvého fs já ti ho kompletně opravím a udělám protože tímto způsobem by nám to trvalo dalších 100 let.

Link to comment
Share on other sites

  • 0

Jj večer to sem hodím protože nemám zrovna doma NTB. A sry, že jsem to nenapsal už dřív.

 

EDIT: Hodím to sem asi až ve středu protože se nějak nemůžu dostat k notebooku. :/

Edited by Stringer_CZE
Link to comment
Share on other sites

  • 0

Zde to je: 

 

 

/*Tento Script udělal Stringer_CZE*/

#include <a_samp>
#include <zcmd>
#include <Dini>
#include <sscanf2>
#pragma tabsize 0
#define COLOR_LIME        0x80FF00FF
#define COLOR_TMAVEMODRA  0x0000FFFF
#define COLOR_SVETLEMODRA 0x00FFFFFF
#define COLOR_SPECCERVENA 0xFF0000FF
#define DIALOG_DAREKINFO  1456
#define DIALOG_DAREKINFOA 1457
new DAREK[MAX_PLAYERS];
new DAREKSAVE[50];
new DAREKREMOVE[50];

public OnFilterScriptInit()
{
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

public OnGameModeInit()
{
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	new Meno[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Meno, sizeof(Meno));
    new DAREKSAVE[50+MAX_PLAYER_NAME];
    format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(playerid));
	DAREK[playerid] = dini_Int(DAREKSAVE, "DAREK");
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

CMD:setdarecek(playerid, params[]){
	new id = strval(params),
            lvlid,
	    s[156],
	    c[100];

	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}Nejsi RCON Administrátor.");
	else if(sscanf(params, "ud", id, lvlid)) return SendClientMessage(playerid, -1, "{FF0000}/setdarecek [ID] [LEVEL 1-2]");
	else if(lvlid < 1 || lvlid > 2) return SendClientMessage(playerid, -1, "{FF0000}/setdarecek [ID] [LEVEL 1-2]");
	else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{FF0000}Toto ID neexistuje.");
	else if(IsPlayerNPC(id)) return SendClientMessage(playerid, -1, "{FF0000}Toto je NPC.");
	else if(DAREK[id] != 0) return SendClientMessage(playerid, -1, "{FF0000}Tento hráč již má dárek."); // když se nerovná 0 což znamená že už má nastavený 1 nebo 2

		DAREK[id] = lvlid; // nastaví na DAREK[id] level(číslo 1 nebo 2)
        format(s, sizeof(s), "Admin %s dal hráči %s dárek level %d", Meno(playerid), Meno(id), lvlid);
        SendClientMessageToAll(-1, s);
        format(c, sizeof(c), "DAREK/%s.txt", Meno(id));
        if(!fexist(c)){ // kontroluje jestli neexistuje
               dini_Create(c); // vytvoří do složky DAREK .txt soubor dle hráčova jména
               dini_IntSet(c, "DAREK", lvlid); // zapíše na řádek DAREK o jaký se jedná (číslo 1 nebo 2)
        }
        return true;
}

CMD:darecek(playerid,params[])
	{
    if(DAREK[playerid] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Nevlastníš žádný dárek!");
    new id = strval(params),
            lvlid,
	    s[156],
	    c[100];
	    
	new string[200];
	new name[25];
	GetPlayerName(playerid, name, sizeof(name));
	new rand = RandomEX(0,10);
	if(lvlid == 1){
	switch(rand){
	    case 0:{
		GetPlayerName(playerid, name, sizeof(name));
		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}125,000$.", name);
 		SendClientMessageToAll(COLOR_SPECCERVENA,string);
 		DAREK[playerid] = 0;
			   }
		case 1:{
        GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}500,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 2:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}250,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 3:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}1,000,000.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
        case 4:{
        GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}200,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 5:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}25,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 6:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}150,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 7:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}100,000$.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		case 8:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}má smůlu a nedostal nic.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
	 	case 9:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}50,000$ .", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
			   }
		else if(lvlid == 2){
		new string[200];
		new name[25];
		new rand2 = RandomEx(0,1){
		switch(rand2){
		case 0:
  		GetPlayerName(playerid, name, sizeof(name));
		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}čtyřkolku.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
		case 1:{
		GetPlayerName(playerid, name, sizeof(name));
   		format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}Sabre.", name);
    	SendClientMessageToAll(COLOR_SPECCERVENA,string);
        DAREK[playerid] = 0;
        }
	}
	RandomEx(min, max){
    return random(max - min) + min;
}

CMD:odeberdarecek(playerid,params[])
{
    new id = strval(params);
	if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /odeberdarecek [ID]");
	else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!");
	else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Jenom RCON může odebrat dárek!");
	else if(DAREK[id] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Tento hráč nemá dárek!");
	else
	{
	DAREK[id] = 0;
	format(DAREKREMOVE, sizeof(DAREKREMOVE), "Administrátor %s odebral hráči %s dárek č.1 !", Meno(playerid), Meno(id));
	SendClientMessageToAll(COLOR_SPECCERVENA, DAREKREMOVE);
	format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id));
	if(dini_Exists(DAREKREMOVE))
	{
		dini_Remove(DAREKREMOVE);
	}
	}
	return 1;
}

CMD:darekinfo(playerid,params[])
{
	if(!IsPlayerAdmin(playerid)) return ShowPlayerDialog(playerid,DIALOG_DAREKINFO,DIALOG_STYLE_MSGBOX,"Dárky","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1","Zavřít","");
	else
	{
		ShowPlayerDialog(playerid,DIALOG_DAREKINFOA,DIALOG_STYLE_MSGBOX,"Dárky - Admini","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1\n\n{00FF00}/setdarecek {FF0000}- Dá hráči dárek č.1(Pouze RCON!)","Zavřít","");
	}
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}

stock Meno(playerid)
{
   new pName[MAX_PLAYER_NAME];
   if(IsPlayerConnected(playerid))
   {
         GetPlayerName(playerid, pName, sizeof(pName));
   }
   return pName;
}

stock sscanf(string[], format[], {Float,_}:...)
{
	#if defined isnull
		if (isnull(string))
	#else
		if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
	#endif
		{
			return format[0];
		}
	#pragma tabsize 4
	new
		formatPos = 0,
		stringPos = 0,
		paramPos = 2,
		paramCount = numargs(),
		delim = ' ';
	while (string[stringPos] && string[stringPos] <= ' ')
	{
		stringPos++;
	}
	while (paramPos < paramCount && string[stringPos])
	{
		switch (format[formatPos++])
		{
			case '\0':
			{
				return 0;
			}
			case 'i', 'd':
			{
				new
					neg = 1,
					num = 0,
					ch = string[stringPos];
				if (ch == '-')
				{
					neg = -1;
					ch = string[++stringPos];
				}
				do
				{
					stringPos++;
					if ('0' <= ch <= '9')
					{
						num = (num * 10) + (ch - '0');
					}
					else
					{
						return -1;
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num * neg);
			}
			case 'h', 'x':
			{
				new
					num = 0,
					ch = string[stringPos];
				do
				{
					stringPos++;
					switch (ch)
					{
						case 'x', 'X':
						{
							num = 0;
							continue;
						}
						case '0' .. '9':
						{
							num = (num << 4) | (ch - '0');
						}
						case 'a' .. 'f':
						{
							num = (num << 4) | (ch - ('a' - 10));
						}
						case 'A' .. 'F':
						{
							num = (num << 4) | (ch - ('A' - 10));
						}
						default:
						{
							return -1;
						}
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num);
			}
			case 'c':
			{
				setarg(paramPos, 0, string[stringPos++]);
			}
			case 'f':
			{

				new changestr[16], changepos = 0, strpos = stringPos;
				while(changepos < 16 && string[strpos] && string[strpos] != delim)
				{
					changestr[changepos++] = string[strpos++];
    				}
				changestr[changepos] = '\0';
				setarg(paramPos,0,_:floatstr(changestr));
			}
			case 'p':
			{
				delim = format[formatPos++];
				continue;
			}
			case '\'':
			{
				new
					end = formatPos - 1,
					ch;
				while ((ch = format[++end]) && ch != '\'') {}
				if (!ch)
				{
					return -1;
				}
				format[end] = '\0';
				if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
				{
					if (format[end + 1])
					{
						return -1;
					}
					return 0;
				}
				format[end] = '\'';
				stringPos = ch + (end - formatPos);
				formatPos = end + 1;
			}
			case 'u':
			{
				new
					end = stringPos - 1,
					id = 0,
					bool:num = true,
					ch;
				while ((ch = string[++end]) && ch != delim)
				{
					if (num)
					{
						if ('0' <= ch <= '9')
						{
							id = (id * 10) + (ch - '0');
						}
						else
						{
							num = false;
						}
					}
				}
				if (num && IsPlayerConnected(id))
				{
					setarg(paramPos, 0, id);
				}
				else
				{
					#if !defined foreach
						#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
						#define __SSCANF_FOREACH__
					#endif
					string[end] = '\0';
					num = false;
					new
						name[MAX_PLAYER_NAME];
					id = end - stringPos;
					foreach (Player, playerid)
					{
						GetPlayerName(playerid, name, sizeof (name));
						if (!strcmp(name, string[stringPos], true, id))
						{
							setarg(paramPos, 0, playerid);
							num = true;
							break;
						}
					}
					if (!num)
					{
						setarg(paramPos, 0, INVALID_PLAYER_ID);
					}
					string[end] = ch;
					#if defined __SSCANF_FOREACH__
						#undef foreach
						#undef __SSCANF_FOREACH__
					#endif
				}
				stringPos = end;
			}
			case 's', 'z':
			{
				new
					i = 0,
					ch;
				if (format[formatPos])
				{
					while ((ch = string[stringPos++]) && ch != delim)
					{
						setarg(paramPos, i++, ch);
					}
					if (!i)
					{
						return -1;
					}
				}
				else
				{
					while ((ch = string[stringPos++]))
					{
						setarg(paramPos, i++, ch);
					}
				}
				stringPos--;
				setarg(paramPos, i, '\0');
			}
			default:
			{
				continue;
			}
		}
		while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
		{
			stringPos++;
		}
		while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
		{
			stringPos++;
		}
		paramPos++;
	}
	do
	{
		if ((delim = format[formatPos++]) > ' ')
		{
			if (delim == '\'')
			{
				while ((delim = format[formatPos++]) && delim != '\'') {}
			}
			else if (delim != 'z')
			{
				return delim;
			}
		}
	}
	while (delim > ' ');
	return 0;
}
 

 

 

Link to comment
Share on other sites

  • 0

Hochu ten tvůj tzv. script vůbec mě to nepřijde logické natož aby to k něčemu bylo no udělal sem ti to tak nějak jak si to zamýšlel... /setdarek ID 0 (vezme moznost vzit darek), 1-2 nastaví možnost vzít si ho a /darek klasicky mu dá podle toho co má nastavené... Beztak to je kravina ten nápad ten dárek :d Fakt sry ale už s tím nechci mít nic společného dávat nějaký i minimální čas do hovadiny bez smyslu... Měl by si začít tím čemu rozumíš.

#include <a_samp>
#include <dini>
#include <zcmd>

new Darek[MAX_PLAYERS];

public OnFilterScriptInit()
{
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	Darek[playerid] = 0;

	new _c[15+MAX_PLAYER_NAME];
	format(_c, sizeof(_c), "darek/%s.txt", PlayerName(playerid));
	if(fexist(_c)){
	    Darek[playerid] = dini_Int(_c, "darek");
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	return 0;
}

CMD:setdarek(playerid, params[]){
	new id = strval(params),
 		lvlid,
	    s[128],
	    c[15+MAX_PLAYER_NAME];

	if(!IsPlayerAdmin(playerid)) 				return SendClientMessage(playerid, 0xff0000aa, "Nejsi RCON administrátor!");
	else if(sscanf(params, "ud", id, lvlid)) 	return SendClientMessage(playerid, 0xff0000aa, "/setdarek [ID] [0 odebere, 1-2]");
	else if(lvlid < 0 || lvlid > 2) 			return SendClientMessage(playerid, 0xff0000aa, "/setdarek [ID] [0 odebere, 1-2]");
	else if(!IsPlayerConnected(id)) 			return SendClientMessage(playerid, 0xff0000aa, "Toto ID neexistuje.");
	else if(IsPlayerNPC(id)) 					return SendClientMessage(playerid, 0xff0000aa, "Toto je NPC.");
	else if(Darek[id] != 0) 					return SendClientMessage(playerid, 0xff0000aa, "Tento hráč již má dárek.");

	if(lvlid != 0){
		Darek[id] = lvlid;
	 	format(s, sizeof(s), "Admin %s dal hráči %s dárek level %d", PlayerName(playerid), PlayerName(id), lvlid);
	  	SendClientMessageToAll(-1, s);
	   	format(c, sizeof(c), "darek/%s.txt", PlayerName(id));
		if(!fexist(c)){
	 		dini_Create(c);
	   		dini_IntSet(c, "darek", lvlid);
		} else dini_IntSet(c, "darek", lvlid);
    } else NastavTenKktskyDarekNaNulu(playerid);
 	return true;
}

CMD:darek(playerid, params[]){
	if(Darek[playerid] != 0){
	    if(Darek[playerid] == 1){
			switch(RandomEx(0,5)){
			    case 0: DavajLove(playerid, 10000);
			    case 1: DavajLove(playerid, 20000);
			    case 2: DavajLove(playerid, 30000);
			    case 3: DavajLove(playerid, 40000);
			    case 4: DavajLove(playerid, 50000);
			    case 5: DavajLove(playerid, 60000);
			}
	    }
	    else if(Darek[playerid] == 2){
	        new Float:x,
	            Float:y,
	            Float:z,
				Float:a;
	            
			GetPlayerPos(playerid, x, y, z);
			GetPlayerFacingAngle(playerid, a);
	            
			switch(RandomEx(0,1)){
			    case 0:{
					CreateVehicle(411, x, y, z, a, -1, -1, -1);
					SendClientMessage(playerid, -1, "Nene dostal si infa tvl ze srotaku ctyri gumy ma pekny sterace...");
					NastavTenKktskyDarekNaNulu(playerid);
			    }
			    case 1:{
					CreateVehicle(526, x, y, z, a, -1, -1, -1);
					SendClientMessage(playerid, -1, "Nene dostal si neco tvl ze srotaku asi ctyri gumy ma pekny sterace mozna...");
					NastavTenKktskyDarekNaNulu(playerid);
			    }
			}
		}
    } else SendClientMessage(playerid, 0xff0000aa, "Nevlastníš žádný dárek.");
 	return true;
}

stock DavajLove(playerid, cash){
	new _s[128];
    GivePlayerMoney(playerid, 10000);
    format(_s, sizeof(_s), "Dostal si $%d", cash);
	SendClientMessage(playerid, -1, _s);
	NastavTenKktskyDarekNaNulu(playerid);
	return 1;
}

stock NastavTenKktskyDarekNaNulu(playerid){
	new _c[15+MAX_PLAYER_NAME];
	format(_c, sizeof(_c), "darek/%s.txt", PlayerName(playerid));
	dini_IntSet(_c, "darek", 0);
	Darek[playerid] = 0;
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}

stock PlayerName(playerid){
	new n[MAX_PLAYER_NAME];
	GetPlayerName(playerid, n, sizeof(n));
	return n;
}

stock sscanf(string[], format[], {Float,_}:...)
{
	#if defined isnull
		if (isnull(string))
	#else
		if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
	#endif
		{
			return format[0];
		}
	#pragma tabsize 4
	new
		formatPos = 0,
		stringPos = 0,
		paramPos = 2,
		paramCount = numargs(),
		delim = ' ';
	while (string[stringPos] && string[stringPos] <= ' ')
	{
		stringPos++;
	}
	while (paramPos < paramCount && string[stringPos])
	{
		switch (format[formatPos++])
		{
			case '\0':
			{
				return 0;
			}
			case 'i', 'd':
			{
				new
					neg = 1,
					num = 0,
					ch = string[stringPos];
				if (ch == '-')
				{
					neg = -1;
					ch = string[++stringPos];
				}
				do
				{
					stringPos++;
					if ('0' <= ch <= '9')
					{
						num = (num * 10) + (ch - '0');
					}
					else
					{
						return -1;
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num * neg);
			}
			case 'h', 'x':
			{
				new
					num = 0,
					ch = string[stringPos];
				do
				{
					stringPos++;
					switch (ch)
					{
						case 'x', 'X':
						{
							num = 0;
							continue;
						}
						case '0' .. '9':
						{
							num = (num << 4) | (ch - '0');
						}
						case 'a' .. 'f':
						{
							num = (num << 4) | (ch - ('a' - 10));
						}
						case 'A' .. 'F':
						{
							num = (num << 4) | (ch - ('A' - 10));
						}
						default:
						{
							return -1;
						}
					}
				}
				while ((ch = string[stringPos]) > ' ' && ch != delim);
				setarg(paramPos, 0, num);
			}
			case 'c':
			{
				setarg(paramPos, 0, string[stringPos++]);
			}
			case 'f':
			{

				new changestr[16], changepos = 0, strpos = stringPos;
				while(changepos < 16 && string[strpos] && string[strpos] != delim)
				{
					changestr[changepos++] = string[strpos++];
    				}
				changestr[changepos] = '\0';
				setarg(paramPos,0,_:floatstr(changestr));
			}
			case 'p':
			{
				delim = format[formatPos++];
				continue;
			}
			case '\'':
			{
				new
					end = formatPos - 1,
					ch;
				while ((ch = format[++end]) && ch != '\'') {}
				if (!ch)
				{
					return -1;
				}
				format[end] = '\0';
				if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
				{
					if (format[end + 1])
					{
						return -1;
					}
					return 0;
				}
				format[end] = '\'';
				stringPos = ch + (end - formatPos);
				formatPos = end + 1;
			}
			case 'u':
			{
				new
					end = stringPos - 1,
					id = 0,
					bool:num = true,
					ch;
				while ((ch = string[++end]) && ch != delim)
				{
					if (num)
					{
						if ('0' <= ch <= '9')
						{
							id = (id * 10) + (ch - '0');
						}
						else
						{
							num = false;
						}
					}
				}
				if (num && IsPlayerConnected(id))
				{
					setarg(paramPos, 0, id);
				}
				else
				{
					#if !defined foreach
						#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
						#define __SSCANF_FOREACH__
					#endif
					string[end] = '\0';
					num = false;
					new
						name[MAX_PLAYER_NAME];
					id = end - stringPos;
					foreach (Player, playerid)
					{
						GetPlayerName(playerid, name, sizeof (name));
						if (!strcmp(name, string[stringPos], true, id))
						{
							setarg(paramPos, 0, playerid);
							num = true;
							break;
						}
					}
					if (!num)
					{
						setarg(paramPos, 0, INVALID_PLAYER_ID);
					}
					string[end] = ch;
					#if defined __SSCANF_FOREACH__
						#undef foreach
						#undef __SSCANF_FOREACH__
					#endif
				}
				stringPos = end;
			}
			case 's', 'z':
			{
				new
					i = 0,
					ch;
				if (format[formatPos])
				{
					while ((ch = string[stringPos++]) && ch != delim)
					{
						setarg(paramPos, i++, ch);
					}
					if (!i)
					{
						return -1;
					}
				}
				else
				{
					while ((ch = string[stringPos++]))
					{
						setarg(paramPos, i++, ch);
					}
				}
				stringPos--;
				setarg(paramPos, i, '\0');
			}
			default:
			{
				continue;
			}
		}
		while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
		{
			stringPos++;
		}
		while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
		{
			stringPos++;
		}
		paramPos++;
	}
	do
	{
		if ((delim = format[formatPos++]) > ' ')
		{
			if (delim == '\'')
			{
				while ((delim = format[formatPos++]) && delim != '\'') {}
			}
			else if (delim != 'z')
			{
				return delim;
			}
		}
	}
	while (delim > ' ');
	return 0;
}

RandomEx(min, max){
    return random(max - min) + min;
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...