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

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

Pamoka kurta ne mano!

Sveiki. ;) Taigi parodysiu kaip reikia susikurti VIP sistemą savo serveryje. Taigi pradėkime.

Einame į gamemodes/data/playerDB.txt failą ir prie visų bool prirašome:

bool:vip,

Išsaugojame, atsidarome savo gamemodą per "pawno" ir susirandame šį callback'ą

public Clear(playerid)

Po juo susiraskite šį kodą:

playerDB[playerid][admin]=false;

Ir po juo dėkite:

playerDB[playerid][vip]=false;

Taigi, reikia padaryti kad rodytų prisijungusius VIP'us.

Dabar susirandame komandą /admin ir po ją rašome:

if(!strcmp(cmdtext, "/vip", true,4))
   {
  if(!cmdtext[4])
  {
	 new zin[256] = "VIP Online:";
	  new name[MAX_PLAYER_NAME];
	    for(new i = 0; i <MAX_PLAYERS; i++){
	    if(IsPlayerConnected(i) && playerDB[i][vip]){
		   GetPlayerName(i,name,MAX_PLAYER_NAME);
		   format(zin,256,"%s %s,",zin,name);
	    }
	 }
	  SendClientMessage(playerid,COLOR_GREEN,zin);
	 return 1;
  }
 new zin[128],name[MAX_PLAYER_NAME];
  GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  format(zin,sizeof(zin),"%s VIPams: %s",name,cmdtext[7]);
  for(new i = 0; i <MAX_PLAYERS; i++)
  {
	 if(IsPlayerConnected(i) && playerDB[i][vip])
	 {
	    SendClientMessage(i,COLOR_GREEN,zin);
	 }
  }
  SendClientMessage(playerid,COLOR_GREEN,zin);
  return 1;
  }

Dabar padarysime komandą /v kad VIP'as galėtų rašyti visiems matant.

Po komanda /vip rašome:

 if(playerDB[playerid][vip])
{
    if(!strcmp(cmdtext, "/v ", true,3)){
	  if(cmdtext[2]==0){SendClientMessage(playerid,GREEN, "* Naudojimas: /v [tekstas]"); return 1;}
	  new zin[256];
	  format(zin,sizeof(zin),"VIP: %s",cmdtext[3]);
	  SendClientMessageToAll(GREEN,zin);
	  return 1;
  }
  }

Dabar padarysime dar tris komandas, tai yra, /vginklai, /vkick, /vtaisyti.

/vginklai:

if(strcmp(cmdtext, "/vginklai", true)==0)
  {
	    GivePlayerWeapon(playerid,24,300); //Desert Eagle pistoletas
	 GivePlayerWeapon(playerid,25,300); //Shotgun ilgo vamzdžio pompa
	 GivePlayerWeapon(playerid,34,200); //Sniper Rifle
	 GivePlayerWeapon(playerid,30,300); //AK-47 Automatas
	 GivePlayerWeapon(playerid,43,100000); //Foto aparatas
	 GivePlayerWeapon(playerid,1,1); //Kastetai
	 GivePlayerWeapon(playerid,46,100000); //Parašiutas
	 SendClientMessage(playerid,COLOR,"* Jus gavote VIP ginklus !");
	 return 1;
  }

/vkick:

if(!strcmp(cmdtext, "/vkick", true,5))
{
new vardas[MAX_PLAYER_NAME],prz[128];
strmid(vardas,GetArgument(1, cmdtext,0),0,MAX_PLAYER_NAME);
if(!strcmp(vardas, "0", true) ){SendClientMessage(playerid, BLUE, "* Ismesti zaideja: /vkick [dalis vardo] [priezastis]"); return 1;}
new id = GetPlayeridMid(vardas);
if (id == INVALID_PLAYER_ID){ SendClientMessage(playerid, RED, "* Tokio zaidejo nera"); return 1;}
if (playerDB[id][vip]){ SendClientMessage(playerid, RED, "* VIP ismesti negalima!."); return 1;}
strmid(prz,GetArgument(2, cmdtext,true),0,128);
if(!strcmp(prz, "0", true) ){SendClientMessage(playerid, RED, "* Pamirsote nurodyti priezasti."); return 1;}
new msg[128],vipname[MAX_PLAYER_NAME];
GetPlayerName(id,vardas,sizeof(vardas));
GetPlayerName(playerid,vipname,sizeof(vipname));
format(msg,sizeof(msg),"[kick] %s",prz);
SendClientMessage(id,BLUE,msg);
Kick(id);
format(msg,sizeof(msg),"[kick] %s ismete %s is serverio (%s).",vipname,vardas,prz);
SendClientMessageToAll(BLUE,msg);
return 1;
}
}

/vtaisyti:

 if(!strcmp(cmdtext, "/vtaisyti", true))
  {
   if(!playerDB[playerid][vip]){SendClientMessage(playerid,RED,"* Si komanda tik VIPams!"); return 1;}
    if(!IsPlayerInAnyVehicle(playerid))
  {
	    SendClientMessage(playerid,RED,"* Tu esi ne transporto priemoneje");
	    return 1;
  }
  if(GetPlayerMoneyA(playerid)<1000) //Jūsų norima mašinos taisymo suma.[TIKRINS AR ŽAIDĖJAS TURI TIEK PINIGŲ]
   {
	  SendClientMessage(playerid,RED,"* Taisymo kaina 1000 lt!");
	  return 1;
  }
  GivePlayerMoneyA(playerid,-1000); //Čia taip pat pakeiskit savo sumą..[ČIA JĄ PAIMS IŠ ŽAIDĖJO]
    SendClientMessage(playerid,GREEN,"* Sutaisei transporto priemone!");
    if(IsPlayerInAnyVehicle(playerid)) RepairVehicle(GetPlayerVehicleID(playerid));
    return 1;
   }

Dabar padarysime, kad VIP'as gautų pasisveikinimą kaip ir Administratorius.

Po:

if(dini_Int(file,"Admin") == 1) playerDB[playerid][admin]=true;

Rašome:

if(dini_Int(file,"Vip") == 1) playerDB[playerid][vip]=true;

Po šiomis eilutėmis turėtumėte pamatyti ir tokią eilutę:

if(playerDB[playerid][admin])

Prirašome [vip]. Viskas turi atrodyti va taip

if(playerDB[playerid][admin] || playerDB[playerid][vip])

Dabar paskutinė dalis, tai tikrinimas ar žaidėjas yra VIP ir nustatoma jam žalia spalva.

Susirandame šias eilutes:

if(playerDB[playerid][specialybe]==1)
{
SetPlayerColor(playerid, 0x004E5BFF);
}
if(playerDB[playerid][specialybe]==2)
{
SetPlayerColor(playerid, COLOR_RED);

Ir virš jų parašome:

if(playerDB[playerid][vip])
{
SetPlayerColor(playerid, 0x40FF40FF);
}

Jeii norite kad VIP'as būtų kitokios spalvos, 0x40FF40FF pakeiskite į savo kodą.

Sėkmės naudojant. :)

Padėjau? +R3P

  • Teigiamai 1
  • Neigiamai 1
08c7f7d7b69e510dfdc9418ede6a4de5315.png

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