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

[Pamoka][GRP] /pirktinama bug'as


Conteristas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4838 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

Taigi daug kas susiduria su bug'u /pirktinama , parašius rašo: jūs turėtumėte būti automobilių turguje. Taigi padarykime taip, kad taip nerašytų ir žaidėjai galėtų pirkti namus. Pradėkime:

Einame: gamemode/data/houseDB.txt

Ir ištriname visas eilutes. Vietoje jū įrašome:

enum hitem
{
setting,
nkaina,
owner_name[MAX_PLAYER_NAME],
krumeliai,
bukle,
dregme,
amzius,
namehash
}
new houseDB[256][hitem];

enum settings
{
interior,
Float:enter_pos[3]
}
new houseSETTINGS[5][settings];

stock PrepareHouseSystem()
{
houseSETTINGS[0][interior]=10;
houseSETTINGS[1][interior]=7;
houseSETTINGS[2][interior]=15;
houseSETTINGS[3][interior]=5;
houseSETTINGS[4][interior]=9;

houseSETTINGS[0][enter_pos][0]=2260.76;
houseSETTINGS[0][enter_pos][1]=-1210.45;
houseSETTINGS[0][enter_pos][2]=1049.02;

houseSETTINGS[1][enter_pos][0]=225.4974;
houseSETTINGS[1][enter_pos][1]=1023.3127;
houseSETTINGS[1][enter_pos][2]=1084.0122;

houseSETTINGS[2][enter_pos][0]=373.2839;
houseSETTINGS[2][enter_pos][1]=1417.5103;
houseSETTINGS[2][enter_pos][2]=1081.3281;

houseSETTINGS[3][enter_pos][0]=230.9863;
houseSETTINGS[3][enter_pos][1]=1114.4048;
houseSETTINGS[3][enter_pos][2]=1080.9922;

houseSETTINGS[4][enter_pos][0]=261.1820;
houseSETTINGS[4][enter_pos][1]=1239.1514;
houseSETTINGS[4][enter_pos][2]=1084.2578;

new file[128]; new text[128];
	print("Kraunami namai");
for(new house=0; house	{
	format(file,sizeof(file),"saves/house/%i",house);
	houseDB[house][nkaina]=100000+random(500000);
	if(!fexist(file))
	{
		format(text,sizeof(text),"Namas parduodamas! \nKaina: %i Lt \nNorint pirkti spausk ALT",houseDB[house][nkaina]);
		strmid(houseDB[house][owner_name],"no",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
                       Update3DTextLabelText(houseDB2[house][housetext],0x39A6C6FF,text);
		continue;
	}
	strmid(houseDB[house][owner_name],dini_Get(file,"owner"),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
	format(text,sizeof(text),"Namo savininkas: %s",houseDB[house][owner_name]);
	Update3DTextLabelText(houseDB2[house][housetext],0x39A6C6FF,text);
	strmid(houseDB[house][owner_name],dini_Get(file,"owner"),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
	houseDB[house][setting]=dini_Int(file,"setting");
	printf("Namas %i priklauso %s (vidaus ID: %i)",house,houseDB[house][owner_name],houseDB[house][setting]);
	houseDB[house][dregme]=dini_Int(file,"dregme");
	houseDB[house][bukle]=dini_Int(file,"bukle");
	houseDB[house][amzius]=dini_Int(file,"amzius");
}

print("Kraunami bizniai");
for(new house=pickups[0][bizniss]; house	{
	format(file,sizeof(file),"saves/bussines/%i",house);
	if(!fexist(file))
	{
		strmid(bussinesDB[house][own_name],"no",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
		continue;
	}
	strmid(bussinesDB[house][own_name],dini_Get(file,"owner_name"),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
	printf("Biznis %i priklauso %s",house,bussinesDB[house][own_name]);
}

}

Čia kodas, su žolės išsaugojimu ir t.t.

Toliau einam gamemode/***.pwn

Po callback'u:

if(GetPlayerVirtualWorld(playerid)>0 && playerDB[playerid][lektuvas]==-1) // Namie
{

Ištriname visas namų komandas, tokias kaip: /gydytis , /atiduot ir t.t. ir vietoje jų įrašome:

if(!strcmp(cmdtext, "/gydytis", true))
	{
	    SendClientMessage(playerid,COLOR," Pasigydete!");
	    SetPlayerHealth(playerid,120);
	    return 1;
	}



	if(!strcmp(cmdtext, "/nparduot", true))
	{
		if(!strcmp(houseDB[GetPlayerVirtualWorld(playerid)][owner_name],"no",true)) return SendClientMessage(playerid,COLOR_RED,"Ðis namas jums net nepriklauso.");
		new msg[70];
	   	new mokestis = houseDB[GetPlayerVirtualWorld(playerid)][nkaina]>>1;
	    format(msg,sizeof(msg),"Pardavtë savo namà uþ %i Lt. Susirinkite daiktus ir iðeikite!",mokestis);
	    SendClientMessage(playerid,COLOR_GREEN,msg);
	    GivePlayerMoneyA(playerid,mokestis);
		strmid(houseDB[GetPlayerVirtualWorld(playerid)][owner_name],"no",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
	    SetPlayerScore(playerid,(GetPlayerScore(playerid)-250)+random(450));
		format(msg,sizeof(msg),"saves/house/%i",GetPlayerVirtualWorld(playerid));
		if(fexist(msg)) dini_Remove(msg);
		format(msg,sizeof(msg),"Namas parduodamas! Spausk ALT\nKaina: %i Lt",houseDB[GetPlayerVirtualWorld(playerid)][nkaina]);
		Update3DTextLabelText(houseDB2[GetPlayerVirtualWorld(playerid)][housetext],WHITE,msg);
	    return 1;
	}
			if(!strcmp(cmdtext, "/natiduot", true, 9))
	{
	    if(!cmdtext[9]) return SendClientMessage(playerid,COLOR_ORANGE,"*Atiduoti namà: /natiduot ");

		if(!strcmp(houseDB[GetPlayerVirtualWorld(playerid)][owner_name],"no",true)) return SendClientMessage(playerid,COLOR_RED,"Ðis namas jums net nepriklauso.");

		new hname[MAX_PLAYER_NAME],id;
		strmid(hname,cmdtext[10],0,MAX_PLAYER_NAME);
		id=GetPlayeridMid(hname);

		if(id==INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Tokio vardo nëra.");
		GetPlayerName(id,hname,sizeof(hname));

  			new msg[75];
	   	format(msg,sizeof(msg),"Atidavetë savo namà %s. Susirinkite daiktus ir iðeikite!",hname);
	    SendClientMessage(playerid,COLOR_GREEN,msg);

	    strmid(houseDB[GetPlayerVirtualWorld(playerid)][owner_name],hname,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);

	    strmid(houseDB[GetPlayerVirtualWorld(playerid)][owner_name],hname,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
	    new file[128];
		format(file,sizeof(file),"saves/house/%i",GetPlayerVirtualWorld(playerid));
		if(!fexist(file)) dini_Create(file);
		dini_Set(file,"owner",hname);

		format(msg,sizeof(msg),"Namo savininkas: %s",houseDB[GetPlayerVirtualWorld(playerid)][owner_name]);
		Update3DTextLabelText(houseDB2[GetPlayerVirtualWorld(playerid)][housetext],WHITE,msg);

		GetPlayerName(playerid,hname,sizeof(hname));
		format(msg,sizeof(msg),"%s jums atidavë savo namà!",hname);
	    SendClientMessage(id,COLOR_GREEN,msg);
	    return 1;
	}
	if(!strcmp(cmdtext, "/svecias", true,7))
	{
	    if(cmdtext[7]==0)
	    {
		    SendClientMessage(playerid,COLOR,"* Pakviesti ji ( ja ): /svecias [dalis_vardo]");
		    return 1;
		}

		new remoteid = GetPlayeridMid(cmdtext[8]);

		if(remoteid == INVALID_PLAYER_ID || remoteid == playerid)
		{
		    SendClientMessage(playerid,COLOR,"* Vardas neteisingas.");
		    return 1;
		}

			if(playerDB[remoteid][pakviestas][GetPlayerVirtualWorld(playerid)])
		{
		    SendClientMessage(playerid,COLOR,"* Jis ( Ji ) jau pakviestas");
		    return 1;
		}

		playerDB[remoteid][pakviestas][GetPlayerVirtualWorld(playerid)]=true;

  			new msg[128], localname[MAX_PLAYER_NAME];
  			GetPlayerName(playerid,localname,sizeof(localname));
	   	format(msg,sizeof(msg),"%s pakviete jus apsilankyti savo namuose.",localname);
	    SendClientMessage(remoteid,COLOR,msg);
  			GetPlayerName(remoteid,localname,sizeof(localname));
	   	format(msg,sizeof(msg),"Pakvietete %s apsilankyti savo namuose.",localname);
	    SendClientMessage(playerid,COLOR,msg);
	    return 1;
	}

 		if(!strcmp(cmdtext, "/nekviest", true,7))
	{
	    if(cmdtext[7]==0)
	    {
		    SendClientMessage(playerid,COLOR,"* Nekviesti jo ( jos ): /nekviest [dalis_vardo]");
		    return 1;
		}

		new remoteid = GetPlayeridMid(cmdtext[8]);

		if(remoteid == INVALID_PLAYER_ID || remoteid == playerid)
		{
		    SendClientMessage(playerid,COLOR,"* Vardas neteisingas.");
		    return 1;
		}

		if(!playerDB[remoteid][pakviestas][GetPlayerVirtualWorld(playerid)])
		{
		    SendClientMessage(playerid,COLOR,"* Jis ( Ji ) nera pakviestas");
		    return 1;
		}

		playerDB[remoteid][pakviestas][GetPlayerVirtualWorld(playerid)]=false;

  			new msg[128],localname[MAX_PLAYER_NAME];
  			GetPlayerName(playerid,localname,sizeof(localname));
	   	format(msg,sizeof(msg),"%s nebekviecia jusu apsilankyti savo namuose.",localname);
	    SendClientMessage(remoteid,COLOR,msg);
  			GetPlayerName(remoteid,localname,sizeof(localname));
	   	format(msg,sizeof(msg),"Atsaukete %s pakvietima.",localname);
	    SendClientMessage(playerid,COLOR,msg);
	    return 1;
	}
if(!strcmp(cmdtext,"/sodinti",true,8))
				{
	 			    new tstring[256];
					tstring = GetArgument(1, cmdtext, 0);
					if(!IsNumeric(tstring)){SendClientMessage(playerid, BLUE, "* Ka??? Veskite skaicius! (/sodinti [kiek])");  return 1;}
					new moneys = StringToInt(tstring);
					if(moneys == 0){SendClientMessage(playerid, BLUE, "* Kaip jus zadate pasodinti nuli??? :DDD");  return 1;}
					if(playerDB[playerid][seklos] < moneys){SendClientMessage(playerid, RED, "* Deja, bet tiek jus neturite...");  return 1;}
					if(houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] > 0){SendClientMessage(playerid, RED, "* Negalite sodinti daugiau krumeliu! pirma pasalinkite senuosius! /israuti");  return 1;}
					if(moneys > 10){SendClientMessage(playerid, RED, "* Viename name galite auginti ne daugiau kaip 10 krumeliu vienu metu!");  return 1;}
					houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] = moneys;
					playerDB[playerid][seklos] -= moneys;
					houseDB[GetPlayerVirtualWorld(playerid)][dregme] = 100;
					houseDB[GetPlayerVirtualWorld(playerid)][bukle] = 100;
					houseDB[GetPlayerVirtualWorld(playerid)][amzius] = 0;
					new msg[128];
					format(msg, 128, "* Pasodinote %i krumeliu Kanapiu (zoles)", moneys);
					SendClientMessage(playerid, GREEN, msg);
					return 1;
				}

if(strcmp(cmdtext, "/laistyti", true)==0)
{
    if(houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] == 0){SendClientMessage(playerid, RED, "* Nera ka laistyti! :(");  return 1;}
	houseDB[GetPlayerVirtualWorld(playerid)][dregme] += 20;
    new msg[128];
    format(msg, 128, "* Palaistete kanapes! Dregme: %i proc.", houseDB[GetPlayerVirtualWorld(playerid)][dregme]);
    SendClientMessage(playerid, COLOR_WHITE, msg);
    return 1;
}

if(strcmp(cmdtext, "/israuti", true)==0)
{
    if(houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] == 0){SendClientMessage(playerid, RED, "* Nera ka rauti! :(");  return 1;}
	houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] = 0;
    SendClientMessage(playerid, COLOR_WHITE, "* Isrovete kanapes!!! ]:O");
    return 1;
}

if(strcmp(cmdtext, "/derlius", true)==0)
{
    if(houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] == 0){SendClientMessage(playerid, RED, "* Deja, jus neauginate kanapiu.");  return 1;}
    if(houseDB[GetPlayerVirtualWorld(playerid)][amzius] < 168){SendClientMessage(playerid, COLOR_YELLOW, "* Dar per anksti imti derliu!");  return 1;}
	new derlius, msg[128];
	derlius = floatround((50 * houseDB[GetPlayerVirtualWorld(playerid)][bukle] * houseDB[GetPlayerVirtualWorld(playerid)][krumeliai]) / 100, floatround_floor);
    format(msg, 128, "* Nuemete derliu! Is %i krumeliu gavote: %i gramu zoles! Sekmes vartojant! :D", houseDB[GetPlayerVirtualWorld(playerid)][krumeliai], derlius);
    SendClientMessage(playerid, COLOR_WHITE, msg);
    playerDB[playerid][zole] += derlius;
	houseDB[GetPlayerVirtualWorld(playerid)][krumeliai] = 0;
    SavePlayerData(playerid, false);
    return 1;
}
}

Čia yra ir žolės komandos.

Toliau po callback'u:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

Rašome:

    if( newkeys == KEY_WALK ) // Patikrinam, ar zmogus nuspaude. ALT.
  {
      {
for(new house=0; house		{
	if(!IsPlayerInRangeOfPoint(playerid,1,houseDB2[house][hx],houseDB2[house][hy],houseDB2[house][hz])) continue;
			if(!strcmp("no",houseDB[house][owner_name],true))
			{
			if(GetPlayerMoneyA(playerid) < houseDB[house][nkaina]) return SendClientMessage(playerid,COLOR_RED,"Jûs neturite tiek pinigø, kad nusipirktumëte namà.");
			if(GetPlayerScore(playerid) < 5000) return SendClientMessage(playerid,COLOR_RED,"Jûsø lygis per maþas, kad pirktumëte namà. Jums reikia maþiausiai 5000 Xp.");
		   GivePlayerMoneyA(playerid,-houseDB[house][nkaina]);
		   new names[MAX_PLAYER_NAME];
		   GetPlayerName(playerid,names,MAX_PLAYER_NAME);
		   strmid(houseDB[house][owner_name],names,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
		   houseDB[house][setting]=random(5);
              new houseid = playerDB[playerid][rid][3];
		   new file[128];
		   format(file,sizeof(file),"saves/house/%i",houseid);
		   if(!fexist(file)) dini_Create(file);
		    dini_Set(file,"owner",names);
		   dini_IntSet(file,"setting",houseDB[houseid][setting]);

		   new dtext[38];
		   format(dtext,sizeof(dtext),"Namo savininkas: %s",houseDB[house][owner_name]);
		   Update3DTextLabelText(houseDB2[house][housetext],0x39A6C6FF,dtext);
		   SendClientMessage(playerid,COLOR_GREEN,"Nusipirkote namà!");
		   return 1;
		}
		else return SendClientMessage(playerid,COLOR_RED,"Namas neparduodamas!");
 }
          return 1; // Baigiame.
     }
  }

Štai ir viskas. Jūs žinoma vietoj ALT kad pirktų galite pasikeisti į kitą mygtuką, keisti reikia čia:

if( newkeys == KEY_WALK )

Jeigu bus bugų ar panašiai, rašykite šioje temoje.

Kam padėjau, +rep :)

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 4 savaičių...
  • Parašė po 2 savaičių...
  • Parašė po 1 mėnesio...
Counteristas Prasau padek,dariau ismete erorus,pas mane yra /////namie

Paskui ////Namu komandos

///Baigiame

krc kazka padariau atstaciau dbr jau,

Tai nenoriu dar karta tos pacios nesamones taigi Prasau padek man

Mano skype:welniukazzz1

arba pm parasyk

-- Papildyta --

Duosiu +rep ir Visus FLT

Tu palik visur tik // du brukšnius.Iškur ištraukėt tuos brūkšnius po trys ar keturis dėt ;DD Palikit po du brūkšnius arba išvis ištrinkit ;D

Nuoroda į komentarą
Dalintis per kitą puslapį

Svečias

Ar čia tas houseDB2 turi būti ar turi būti houseDB nes man ten meta klaida?

Update3DTextLabelText(houseDB2[GetPlayerVirtualWorld(playerid)][housetext],WHITE,msg);

:help: :help:

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

štai tokie error'ai jam tikriausiai (bent man tokiūs meta)

data/houseDB.txt(51) : error 017: undefined symbol "maxhouses"
data/houseDB.txt(59) : error 017: undefined symbol "houseDB2"
data/houseDB.txt(59) : warning 215: expression has no effect
data/houseDB.txt(59) : error 001: expected token: ";", but found "]"
data/houseDB.txt(59) : error 029: invalid expression, assumed zero
data/houseDB.txt(59) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.

EDIT: dabar tik supratau kad čia ne man pamoką

gal kasnors žino kaip iš pickupų padaryt ka aitu su /pirktinamą ar ALT klavišu?

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4838 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...