Author Topic: Preimenovanje samo jednog igraca... ?  (Read 3288 times)

0 Members and 1 Guest are viewing this topic.

Offline
*
Preimenovanje samo jednog igraca... ?
« on: April 18, 2014, 10:05:18 PM »
Evo neko ako se bavi skriptanjem moze mi pomoci:

Vako znaci napravio sam scriptu koja preimenuje sve igrace na serveru u zeljeno ime:

Code: [Select]
stevo_all_custom_name()
{
for(;;)
{
if (getcvar("stevo_all_custom_name")!="")

{
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
player = players[i];

players[i] setClientCvar("name",getcvar("stevo_all_custom_name"));
}
}
setcvar("stevo_all_custom_name","");
wait 0.5;
}
}

npr: /rcon stevo_all_custom_name lalalalala
i preimenuje cjeli server u lalalalala

e, sad mi je potrebno da preimenujem samo jednog igraca u zeljeno ime a ne sve.
jel ima neko ideju kako bi mogao poceti ?

probao sam da izdvajam po client broju al nevredi jel ce mi trebat 64 comandi..

Offline
**
Re: Preimenovanje samo jednog igraca... ?
« Reply #1 on: April 20, 2014, 01:38:56 PM »
Pozdrav,

Znaci koliko sam shvatio hoces preko rcon naredbe utjecati na cvar (name) nekoga igraca. Najlakse ti je logicki napraviti da dobivas njihov id preko funkcije "getEntityNumber()" koja je u samom igri jednaka naredbi /rcon status.
Evo ti primjer koda, vjerojatno ces ga trebati malo promjeniti, ali po logici bi trebao raditi.

custom_name()
{
   level endon("boot");
   setcvar("g_changename", "");
   new_name = "^1Zeljeno ^2Ime ^3Igraca";
   while(1)
   {
      if(getcvar("g_changename") != "")
      {
         changePlayerNum = getcvarint("g_changename");
         players = getentarray("player", "classname");
         for(i = 0; i < players.size; i++)
         {
            thisPlayerNum = players getEntityNumber();
            if(thisPlayerNum == changePlayerNum ) 
            {
               iprintln(players.name + "^7 was renamed by the admin");
               players setClientCvar("name",new_name));
            }
         }
         setcvar("g_changename", "");
      }
      wait 0.05;
   }
}



LP
« Last Edit: April 20, 2014, 01:42:53 PM by fox1406 »

Offline
*
Re: Preimenovanje samo jednog igraca... ?
« Reply #2 on: April 23, 2014, 07:31:18 PM »
aha da.. vidim sad. evo kak sam napravio to:

Code: [Select]
name_noob()
{
level endon("boot");
level endon("round_ended");

setcvar("name_noob", "");
while(1)
{
if(getcvar("name_noob") != "")
{
if (getcvar("name_noob") == "all")
setcvar("name_noob", "-1");

movePlayerNum = getcvarint("name_noob");
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
player = players[i];
thisPlayerNum = player getEntityNumber();           // To je to .
if(thisPlayerNum == movePlayerNum || movePlayerNum == -1)

{

players[i] setClientCvar("name","^^11I am a NOOB !");
}
}
setcvar("name_noob", "");
}
wait 0.05;
}
}

e sad kao sto vidis ima mali problem.. ja sam tom igracu dao ime :  setClientCvar("name","^^11I am a NOOB !");
a trebao sam da mu ja stavim ime.. npr: Unknown solider ... nemogu svaki put ulazit u FTP i mjenjat skriptu..

trebalo bi /rcon name_noob (ID) (ime)

imas ideju ?

Offline
**
Re: Preimenovanje samo jednog igraca... ?
« Reply #3 on: April 30, 2014, 07:37:12 PM »
Probaj napraviti novi cvar, te nakon toga varijablu koja ce kupiti sadrzaj cvara, i nakon toga u petlji pozovi tu varijablu.

Dakle nesta ovako:
Prije petlje:
setcvar("new_name", "");
name_var = getcvar("new_name");

U petlji:
players setClientCvar("name", name_var);

Znaci u igri ces morati upisati ime igraca pod new_name, i zatim upisati name_noob [broj slota].
Nije testirano, ali po logici bi trebalo raditi.
LP