[SAVET] Broj Telefona

Započeo ShadowNET, Februar 14, 2016, 13:08:48 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

O kakvom savjetu se radi:Pravim system mobilnih telefona i sad napravio sam da kada igrac u marketu kupi mobilni dobije dobije i broj telefona (random 6 sefara) koje odma spremam u enum.
Detaljan opis savjeta:E kod komande /call zelim da se igrac poziva po broju telefona.Kako to da uradim?
Komentar:Ako pozivam preko ID onda samo napravim varijablu i GetPlayerName i ostale provere i onda zovem.Ali kako da pronalazi igraca po broju telefona...
Poslednja Izmena: Februar 14, 2016, 13:09:52 POSLE PODNE od ShadowNET

[pawn]new string[128],sendername[MAX_PLAYER_NAME],phonenumb,giveplayerid;
      GetPlayerName(playerid, sendername,sizeof(sendername));
      if(sscanf(params,"d",phonenumb))
      {
         SCM(playerid, COLOR_GRAD2, "Koriscenje: /call [BrojTelefona]");
         SCM(playerid, COLOR_GRAD2, "SAVJET: /calllist (za listu vaznih brojeva)");
         return 1;
      }[/pawn]


[pawn]foreach(Player, i)
      {
         if(IsPlayerConnected(i))
         {
            if(PlayerInfo[pPnumber] == phonenumb && phonenumb != 0)
            {
               giveplayerid = i;
               Mobile[playerid] = giveplayerid;
               if(giveplayerid != INVALID_PLAYER_ID)
               {
                  if(PhoneOnline[giveplayerid] > 0)
                  {
                     SCM(playerid, COLOR_GREY, "Pozvani korisnik trenutno nije dostupan ili je iskljucio telefon.");
                     return 1;
                  }
                  if(Mobile[giveplayerid] == 255)
                  {
                     format(string, sizeof(string), "Vas mobilni telefon zvoni, kucajte (/pickup) da bi se javili CallerID: %s", sendername);
                     SCM(giveplayerid, COLOR_LIGHTBLUE, string);
                     GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                     RingTone[giveplayerid] = 10;
                     format(string, sizeof(string), "* %s'ov telefon zvoni.", sendername);
                     SCM(playerid, COLOR_WHITE, "SAVJET: Koristite T da bi pricali preko telefona, kucajte /hangup da bi prekinuli.");
                     ProxDetector(30.0, i, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
                     CellTime[playerid] = 1;
                     return 1;
                  }
               }
            }
         }
      }
      SCM(playerid, TEAM_CYAN_COLOR, "Birate nepostojeci broj, pozovite sluzbu...");
   }
   return 1;[/pawn]


Eto ti pa prilagodi svom modu.

Nemogu bas da se snadjem u ovom tvom kudu.
Moze li mi neko dati primer kako se radi...

Ovko sam ja nesto uradio do sada...
ALi ne znam dalje
[pawn]CMD:call(playerid, params[])
{   //Provere pozivaoca
   if(!IsPlayerConnected(playerid)) return SCM(playerid, Error, "Prvo se konektuj na server");
   if(PlayerInfo[playerid][pLogin] == 0) return SCM(playerid, Error, "PRvo se uloguj na server");
   if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, Error, "Nemas Mobilni telefon.Idi u market i kupi...");
   if(PlayerInfo[playerid][pKredit] < 1) return SCM(playerid , Error, "Nemas dovoljno kredita da obavis poziv");
   //Varijable
   new pozivalac[MAX_PLAYER_NAME], primalac[MAX_PLAYER_NAME], idprimaoca, brojprimaoca, brojpozivaoca, poruka[100];
   //Proveravam pravilnost komande
   if(sscanf(params, "d", brojprimaoca)) return SCM(playerid, Siva, "[Greska] Koristite: {DD6F00}/call [Broj Telefona]");
   //Definisem varijable
   GetPlayerName(playerid, pozivalac, sizeof(pozivalac));
   GetPlayerName(idprimaoca, primalac, sizeof(primalac));
   if(brojprimaoca == PlayerInfo[idprimaoca][pBrojTelefona])[/pawn]
Poslednja Izmena: Februar 14, 2016, 13:56:42 POSLE PODNE od ShadowNET

Kako se ne možeš snaci ako si "skripter"
Kod je jednostavan, i ne vjerujem da ima ikakav bolji primjer od navedenog, i ako ima opet je to sve isto.

Netrazim ceo kod niti nista posebno samo pojasnjenje kako da pomocu broja telefona pronalazim id igraca...

Foreach ide kroz sve online igrace na serveru, dakle ovdje imas provjeru

[pawn]if(PlayerInfo[pPnumber] == phonenumb && phonenumb != 0)[/pawn]

Ako je igracev broj jednak vrijednosti koju si ukucao onda se poziva taj broj i sanjim mozes da pricas.

Sada u dole navedenom primjeru iz GetPlayerName funkcije uzima ID od korisnika ciji si broj ukucao.

Sada ispod koristi ovo:

[pawn]new string[28], giveplayerid, giveplayer[MAX_PLAYER_NAME];
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Igracev id kojeg ste pozvali je %s",giveplayerid);
SCM(playerid, COLOR_ORANGE,string);[/pawn]

Dakle uz pomoc toga možeš da saznaš koji je igracev ID

Probaj skontati nešto i sam, procitaj uputstvo na wikipediji u vezi GetPlayerName
https://wiki.sa-mp.com/wiki/GetPlayerName
Poslednja Izmena: Februar 14, 2016, 14:39:13 POSLE PODNE od K ROSE