Peršokti į turinį

[Pamoka] Klubu (dirbi ir esi gaujoj vienu metu)


Ance__Zas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3963 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, daug kas nesugeba susikurti "KLUBU" šitas išmislas atejo iš sargo tad tikrai pamoka pravers riperiams ir tiems katrie nei biški nepasuka galvos :D

kurimas kaip ir paprasto darbo su dyriku tik kad vos vos skiriasi, beto pamoka GRP

pradedam

step 1

Kuriam pickupa:

data aplanke atsidare pickups.txt iterpiame:

po

enum pdata{

klubas,

pickups[0][klubas]=CreatePickupA(1275 ,2, x,y,z);

išsaugom ir uždarom.

step 2

kuriam gauja:

atsidarom Gm ir po callback'u:

public OnPlayerPickUpPickup(playerid, pickupid){

rašom toki scripta:

if(pickupid == pickups[0][klubas])
{
if(playerDB[playerid][frakcija]==1)
{
if(playerDB[playerid][funiformd])
{
SendClientMessage(playerid,Raudona,"Klubas:");
SendClientMessage(playerid,Raudona,"Palikdami frakcija privalote nusivilkti uniforma.");
return 1;
}
SendClientMessage(playerid,Zalia,"Klubas:");
SendClientMessage(playerid,Zalia,"Frakcija palikta.");
playerDB[playerid][frakcija]=0;
playerDB[playerid][funiforma]=-1;
ResetPlayerWeapons(playerid);
if(playerDB[playerid][vedelogin]){SavePlayerData(playerid,false);}
}else if(playerDB[playerid][frakcija]==0){
if(GetPlayerScore(playerid)<3000)
{
SendClientMessage(playerid,Raudona,"Klubas:");
SendClientMessage(playerid,Raudona,"Jūs dar nepatyręs. Minimaliai 3000 patirties taškų.");
return 1;
}
if(!playerDB[playerid][fleanvited][0])
{
SendClientMessage(playerid,Melina,"Klubas:");
SendClientMessage(playerid,Melina,"Direktorius apie jus neinformuotas.");
return 1;
}
SendClientMessage(playerid,Zalia,"Klubas:");
SendClientMessage(playerid,Zalia,"Priimtas i frakcija.");
playerDB[playerid][frakcija]=1;
playerDB[playerid][drabuziai]=GetPlayerSkin(playerid);
if(playerDB[playerid][lytis]==1)
{
SetPlayerSkin(playerid,117);
playerDB[playerid][funiforma]=117;
playerDB[playerid][funiformd]=true;
ApplyAnimation(playerid,"PLAYIDLES","stretch",4.1,0,0,0,0,0);
}else{
SetPlayerSkin(playerid,63);
playerDB[playerid][funiforma]=63;
playerDB[playerid][funiformd]=true;
ApplyAnimation(playerid,"PLAYIDLES","stretch",4.1,0,0,0,0,0);
}
}else{
SendClientMessage(playerid,Zalia,"Klubas:");
SendClientMessage(playerid,Zalia,"Dviejose frakcijose vienu metu būti draudžiama.");
}
return 1;
}

step 3

Atsidarome: gamemodes/data/playerDB.txt ir pačiam viršuj rašome:

#define FLEAD_KLUBAS 1

toliau kursim /priimt /ismest tik klubuj

if(!strcmp(cmdtext, "/fpriimt",true,8))
    {
        if(!cmdtext[8]) return SendClientMessage(playerid,GREEN,"Priimti zaideja(-e) i savo kluba: /fpriimt [vardo dalis]");

		new name[MAX_PLAYER_NAME];
		strmid(name,cmdtext[9],0,MAX_PLAYER_NAME);
		new id = GetPlayeridMid(name);

		if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,RED,"Tokio vardo nera.");

		if(playerDB[id][fleanvited][playerDB[playerid][flead]-1] || playerDB[id][frakcija] == GetJobFromFaction(playerDB[playerid][flead])) return SendClientMessage(playerid,RED,"Jis ( Ji ) jau priimtas.");

		GetPlayerName(id,name,MAX_PLAYER_NAME);

		if(playerDB[playerid][flead] == FLEAD_KLUBAS) SendClientMessage(id,Zalia,"Jūs kviečiamas į kluba. Dėl gaujos priėmimo.");
		else SendClientMessage(id,Zalia,"Jūs kviečiamas į niekeno kluba. Dėl darbo priėmimo.");

		playerDB[id][fleanvited][playerDB[playerid][flead]-1]=true;
		new msg[128];
		format(msg,sizeof(msg),"Pakvietėte {FF0000}%s {00FF00}įstoti į jūsų kluba.",name);
		SendClientMessage(playerid,Zalia,msg);
		return 1;
	}

if(!strcmp(cmdtext, "/fismest",true,8))
    {
        if(!cmdtext[8])
        {
			SendClientMessage(playerid,GREEN,"* Is savo firmos ismesti zaideja: /fismest [vardo dalis]");
			return 1;
		}
		new name[MAX_PLAYER_NAME];
		strmid(name,cmdtext[9],0,sizeof(name));
		new id = GetPlayeridMid(name);

		if(id == INVALID_PLAYER_ID)
		{
			SendClientMessage(playerid,RED,"* Nurodyto zaidejo nera.");
			return 1;
		}

		new darbass = GetJobFromFaction(playerDB[playerid][flead]);

		if(playerDB[id][frakcija]!= darbass)
		{
			SendClientMessage(playerid,RED,"* Zaidejas neidarbintas jusu klube.");
			return 1;
		}

		GetPlayerName(id,name,sizeof(name));

		if(playerDB[playerid][flead] == FLEAD_KLUBAS) SendClientMessage(id,Raudona,"Jūs pašalintas iš klubo.");
		else SendClientMessage(id,Raudona,"Jūs pašalintas iš nieko.");

		playerDB[id][fleanvited][playerDB[playerid][flead]-1]=false;
		new msg[128];
		format(msg,sizeof(msg),"Ismetete %s is savo klubo.",name);
		SendClientMessage(playerid,GREEN,msg);

		if(playerDB[id][funiformd])SetPlayerSkin(id,playerDB[id][drabuziai]);

		playerDB[id][specialybe]=0;
		playerDB[id][funiformd]=false;
	    playerDB[id][funiforma]=-1;
	    if(playerDB[id][vedelogin]){SavePlayerData(id,false);}
		return 1;
	}

//šitai tik viena karta kekviena gauja kuriant to rašyti nereikia:

dabar kuriam saugojima, pirma atsidarom data/playerDB.txt nes užmiršome ten sudėti kintamuosius

po: enum item{

rašome:

bool:fleanvited[60],
bool:funiformd,
frakcija,
flead,

uždarome ir einam į GM

susirandam

public SavePlayerData

Įterpiame:

dini_IntSet(file,"Flead",playerDB[playerid][flead]);
dini_IntSet(file,"Faction",playerDB[playerid][frakcija]);
dini_IntSet(file,"Funiforma",playerDB[playerid][funiforma]);

Funiforma :D gerai skamba :D

nu ir paskutinis:

po: public LoadPlayerData

playerDB[playerid][flead] = dini_Int(file,"Flead");
playerDB[playerid][frakcija] = dini_Int(file,"Faction");
playerDB[playerid][funiforma] = dini_Int(file,"Funiforma");

NU ne kažka bet ant kelio užvedžiau,

Tikuosi padėjau kažkam, jei negaile +R3P

  • Teigiamai 8
  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Wow :o Dėkui, labai :) Kur tokia pamoką radai? :?

taigi pats sukuriau aš ta pamoka :D

-- Papildyta --

/fnariai:

if(!strcmp(cmdtext,"/fnariai",true))
 {
     new msg[128], x, flol;
     new vardas[MAX_PLAYER_NAME];
         if(playerDB[playerid][flead] == 1)( flol = 1); //Jakudza
 for(new i = 0; i    {
   if(playerDB[i][frakcija] == flol && IsPlayerConnected(i))
   {
       x++;
    GetPlayerName(i,vardas,MAX_PLAYER_NAME);
    format(msg,256,"%i. %s  %i xp.",x,vardas,GetPlayerScore(i));
    SendClientMessage(playerid,COLOR,msg);
   }
     }
return 1;
 }

traukiau iš savo GM nes pas save jau esu susikurės šia sistema,

kuriant kelias gaujas o ne viena reikia darašyti po

if(playerDB[playerid][flead] == 1)( flol = 1);

šitokius kodus:

else if(playerDB[playerid][flead] == 2)( flol = 2);

ir t.t.

na o tavo /skirtifrakcija:

if(!strcmp(cmdtext, "/skirtifrakcija", true,15))
	{
	new tname[MAX_PLAYER_NAME];
	strmid(tname,GetArgument(1, cmdtext, 0),0,MAX_PLAYER_NAME);
	if(!strcmp(tname,"0",true)){SendClientMessage(playerid, Zalia, "Skirti direktoriumi: {FF0000}/skirtifrakcija [vardo dalis] [Direktorio id]"); return 1;}
	new tid = GetPlayeridMid(tname);
	if(tid==INVALID_PLAYER_ID)
	{
		SendClientMessage(playerid,Raudona,"Tokio žaidėjo nėra.");
		return 1;
	}
	GetPlayerName(tid,tname,sizeof(tname));
	new tstring[256];
	tstring = GetArgument(2, cmdtext, 0);
	if(!IsNumeric(tstring)){SendClientMessage(playerid, Zalia, "Skirti direktoriumi: {FF0000}/skirtifrakcija [vardo dalis] [Direktorio id]turi būti skaičius"); return 1;}
	new moneys = StringToInt(tstring);
	if(moneys == 0){SendClientMessage(playerid, WHITE, "Nušalinote nuo direktoriaus pareigų"); SendClientMessage(tid, WHITE, "Superadministratorio įsakymu jūs nebe direktorius."); playerDB[tid][plead]=0; SavePlayerData(tid, false); return 1;}
	new mess[256],name[MAX_PLAYER_NAME],post[128];
	GetPlayerName(playerid,name,sizeof(name));
		if(moneys ==1) format(post, 128, "Jakudza");
           else format(post, 128, "Nieko");
	playerDB[tid][flead] = moneys;
	format(mess,sizeof(mess),"Sveikiname, jūs paskirtas naujuoju {FF0000}%s {00FF00}direktoriumi.",post);
	SendClientMessage(tid,Zalia,mess);
	if(playerDB[tid][vedelogin]){SavePlayerData(tid,false);}
	format(mess,sizeof(mess),"Paskyrėte %s naujuoju {FF0000}%s {00FF00}direktorium.",tname,post);
	SendClientMessage(playerid,Zalia,mess);
	return 1;
}

  • Teigiamai 3
Nuoroda į komentarą
Dalintis per kitą puslapį

viska padariau bet ismeta tokius error

data/menu.txt(577) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(602) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(623) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(631) : error 017: undefined symbol "Modinimas"
data/menu.txt(666) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(674) : error 017: undefined symbol "Modinimas"
data/menu.txt(693) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(701) : error 017: undefined symbol "Modinimas"
data/menu.txt(713) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(721) : error 017: undefined symbol "Modinimas"
data/menu.txt(745) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(753) : error 017: undefined symbol "Modinimas"
data/menu.txt(755) : error 017: undefined symbol "Modinimas"
data/menu.txt(780) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(788) : error 017: undefined symbol "Modinimas"
data/menu.txt(790) : error 017: undefined symbol "Modinimas"
data/menu.txt(815) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(823) : error 017: undefined symbol "Modinimas"
data/menu.txt(847) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(855) : error 017: undefined symbol "Modinimas"
data/menu.txt(870) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(878) : error 017: undefined symbol "Modinimas"
data/menu.txt(891) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(899) : error 017: undefined symbol "Modinimas"
data/menu.txt(911) : error 017: undefined symbol "GetPlayerMoneyA"
data/menu.txt(919) : error 017: undefined symbol "Modinimas"

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


26 Errors.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 4 savaičių...

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