GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: instant - 2012. December 01. - 18:13:43

Cím: Mute
Írta: instant - 2012. December 01. - 18:13:43
Üdv.
Most este unalmamban megcsináltam egy kisebb Mute parancsot. Némításnál nem enged beszélni.
Készítési idõ: 4-5 perc
Parancsok :
/mute
/unmute
Kód:
 
#include <a_samp>
#include zcmd
#include sscanf2
#define  COLOR_GREEN        0x33FF33AA
#define  COLOR_RED           0xFF0000AA
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid,\"Muted\",0);
return 1;
}
CMD:mute(playerid,params[])
{
new str[128],indok,id;
if(sscanf(params,\"us\",id,indok)) return SendClientMessage(playerid,COLOR_RED,\"Használat : /mute [iD] [indok]\");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,\"HIBA:Nincs ilyen  játékos!\");
if(id == playerid)  return SendClientMessage(playerid,COLOR_RED,\"Hiba:Magadat nem tudod lenémítani!\");
if(GetPVarInt(id,\"Muted\") == 1) return SendClientMessage(playerid,COLOR_RED,\"Hiba: A Játékos már némítva van!\");
{
SetPVarInt(id,\"Muted\",1);
format(str,sizeof(str),\"%s játékos lenémította %s játékost! Indok : %s\",pName(playerid),pName(id),indok);
SendClientMessageToAll(COLOR_GREEN,str);
}
return 1;
}
CMD:unmute(playerid,params[])
{
new str[128],id;
if(sscanf(params,\"u\",id)) return SendClientMessage(playerid,COLOR_RED,\"Használat : /unmute [iD]\");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,\"HIBA:Nincs ilyen  játékos!\");
if(id == playerid)  return SendClientMessage(playerid,COLOR_RED,\"Hiba:Magadat nem tudod felnémítani!\");
if(GetPVarInt(id,\"Muted\") == 0) return SendClientMessage(playerid,COLOR_RED,\"Hiba: A Játékos nincs még lenémítva!!\");
{
SetPVarInt(id,\"Muted\",0);
format(str,sizeof(str),\"%s játékos engedélyezte a beszédet %s játékosnak! \",pName(playerid),pName(id));
SendClientMessageToAll(COLOR_GREEN,str);
}
return 1;
}
stock pName(playerid)
{
new name[24];
GetPlayerName(playerid,name,24);
return name;
}
public OnPlayerText(playerid, text[])
{
if(GetPVarInt(playerid,\"Muted\") == 1)
{
    SendClientMessage(playerid,COLOR_RED,\"Lenémítva nem tudsz beszélni öcsi!\");
return 0;
}
return 1;
}

 
Frissített :
Újdonság : Percre meg lehet adni hogy mikor oldja fel a némítást a játékosról
Kód:
 
#include <a_samp>
#include zcmd
#include sscanf2
#define  COLOR_GREEN        0x33FF33AA
#define  COLOR_RED           0xFF0000AA
new mut;
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid,\"Muted\",0);
return 1;
}
CMD:mute(playerid,params[])
{
new str[128],indok,id,perc;
if(sscanf(params,\"usd\",id,indok,perc)) return SendClientMessage(playerid,COLOR_RED,\"Használat : /mute [iD][indok] [Perc] \");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,\"HIBA:Nincs ilyen  játékos!\");
if(id == playerid)  return SendClientMessage(playerid,COLOR_RED,\"Hiba:Magadat nem tudod lenémítani!\");
if(GetPVarInt(id,\"Muted\") == 1) return SendClientMessage(playerid,COLOR_RED,\"Hiba: A Játékos már némítva van!\");
{
    perc *= 60000;
    mut = SetTimerEx(\"MutedTime\",perc,false,\"d\",id);
SetPVarInt(id,\"Muted\",1);
format(str,sizeof(str),\"%s játékos lenémította %s játékost! Indok : %s Perc : %d\",pName(playerid),pName(id),indok,perc);
SendClientMessageToAll(COLOR_GREEN,str);
}
return 1;
}
CMD:unmute(playerid,params[])
{
new str[128],id;
if(sscanf(params,\"u\",id)) return SendClientMessage(playerid,COLOR_RED,\"Használat : /unmute [iD]\");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,\"HIBA:Nincs ilyen  játékos!\");
if(id == playerid)  return SendClientMessage(playerid,COLOR_RED,\"Hiba:Magadat nem tudod felnémítani!\");
if(GetPVarInt(id,\"Muted\") == 0) return SendClientMessage(playerid,COLOR_RED,\"Hiba: A Játékos nincs még lenémítva!!\");
{
SetPVarInt(id,\"Muted\",0);
format(str,sizeof(str),\"%s játékos engedélyezte a beszédet %s játékosnak! \",pName(playerid),pName(id));
SendClientMessageToAll(COLOR_GREEN,str);
KillTimer(mut);
}
return 1;
}
stock pName(playerid)
{
new name[24];
GetPlayerName(playerid,name,24);
return name;
}
public OnPlayerText(playerid, text[])
{
if(GetPVarInt(playerid,\"Muted\") == 1)
{
    SendClientMessage(playerid,COLOR_RED,\"Lenémítva nem tudsz beszélni öcsi!\");
return 0;
}
return 1;
}
forward MutedTime(playerid);
public MutedTime(playerid)
{
SetPVarInt(playerid,\"Muted\",0);
SendClientMessage(playerid,COLOR_GREEN,\"Fel lett oldva a némításod legközelebb okosan!\");
return 1;
}
public OnPlayerCommandReceived( playerid, cmdtext[] )
{
if(GetPVarInt(playerid,\"Muted\") == 1)
{
    SendClientMessage(playerid,COLOR_RED,\"Lenémítva nem tudsz parancsot használni!\");
            return 0;
}
return 1;
}

 
Tesztelve mûködik.
Cím: Mute
Írta: ZyZu. - 2012. December 01. - 18:17:46
tetszik :D a következõ verzióba csináld meg úgy, hogy idõre :D  ;)
Cím: Mute
Írta: instant - 2012. December 01. - 18:30:46
jó ötlet ty

Dupla hozzászólás automatikusan összefûzve. ( 2012. December 01. - 18:44:45 )

Frissített változat kiadva.
Cím: Mute
Írta: DrAkE - 2012. December 01. - 20:26:48
Szerintem GetTickCounttal egyszerûbben is meglehet csinálni az idõzített verzióját. Illetve ha timert csinálsz, akkor több tömbösnek kell lenni.
Cím: Mute
Írta: instant - 2012. December 01. - 22:23:52
lehetséges , de én azt nem értem annak a mûködését.
Cím: Mute
Írta: vargabalint98 - 2012. December 02. - 00:00:21
Grat!De kicsit furcsa hogy a lenémít ellentéte a felnémit :D
Cím: Mute
Írta: KDDomi - 2012. December 02. - 08:09:38
Pont erre volt szükségem! Ment a +!
Cím: Mute
Írta: Cappsy - 2012. December 02. - 10:42:14
:)
Vicces stunt szerveresek beletehetik ezt is :D
 
PlayAudioStreamForPlayer(playerid, \"http://mksz.sunwell.hu/kussojjal.wav\");
Cím: Mute
Írta: instant - 2012. December 02. - 13:47:23
Idézetet írta: cappsy date=1354441334\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30464\" data-ipsquote-contentclass=\"forums_Topic
:)
Vicces stunt szerveresek beletehetik ezt is :D
 
PlayAudioStreamForPlayer(playerid, \"http://mksz.sunwell.hu/kussojjal.wav\");

 

lehetséges :DD
Cím: Mute
Írta: instant - 2012. December 04. - 17:43:26
kibõvítve friss verzió 1 picivel hogy némítva nem tudnak parancsot használni.
Cím: Mute
Írta: Zsolesszka - 2012. December 04. - 18:40:43
A sscanf a \'d\' format jelölésre nem fog az \"id\" változóra INVALID_PLAYER_ID értéket adni ha nincs csatlakozva a játékos, csak az \'u\', \'q\' illetve az \'r\' jelölésre.
Cím: Mute
Írta: Kovacs_Bela - 2012. December 04. - 21:46:22
szép lett grat.
Cím: Mute
Írta: instant - 2012. December 04. - 21:53:38
köszi Robot robi :DD
 
Idézetet írta: ɐʞzssǝlosz date=1354642843\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30464\" data-ipsquote-contentclass=\"forums_Topic
A sscanf a \'d\' format jelölésre nem fog az \"id\" változóra INVALID_PLAYER_ID értéket adni ha nincs csatlakozva a játékos, csak az \'u\', \'q\' illetve az \'r\' jelölésre.
 
edited., köszi a tanácsot.
Cím: Mute
Írta: Kovacs_Bela - 2012. December 05. - 06:59:13
Idézetet írta: ZzzzzZ date=1354654418\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30464\" data-ipsquote-contentclass=\"forums_Topic
köszi Robot robi :DD
 

A sscanf a \'d\' format jelölésre nem fog az \"id\" változóra INVALID_PLAYER_ID értéket adni ha nincs csatlakozva a játékos, csak az \'u\', \'q\' illetve az \'r\' jelölésre.
 
edited., köszi a tanácsot.
 
[/quote]
nm zézézézé zézézézé xd
amugy a q jelölés mit is jelent sscafban?
Cím: Mute
Írta: Flash - 2012. December 05. - 10:14:45
Idézetet írta: danix99 date=1354687153\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30464\" data-ipsquote-contentclass=\"forums_Topic


köszi Robot robi :DD
 

A sscanf a \'d\' format jelölésre nem fog az \"id\" változóra INVALID_PLAYER_ID értéket adni ha nincs csatlakozva a játékos, csak az \'u\', \'q\' illetve az \'r\' jelölésre.
 
edited., köszi a tanácsot.
 
[/quote]
nm zézézézé zézézézé xd
amugy a q jelölés mit is jelent sscafban?
 
[/quote]
q olyan nem létezik csak:
 
   c - A character.
d, i - An integer.
h, x - A hex number (e.g. a colour).
f - A float.
s - A string.
z - An optional string.
pX - An additional delimiter where X is another character.
\'\' - Encloses a litteral string to locate.
u - User, takes a name, part of a name or an id and returns the id if they\'re connected.
[/quote]
Cím: Mute
Írta: Zsolesszka - 2012. December 05. - 17:28:49
Specifier(s)         Name            Example values
i, d         Integer            1, 42, -10
c         Character         a, o, *
l         Logical            true, false
b         Binary            01001, 0b1100
h, x         Hex            1A, 0x23
o         Octal            045 12
n         Number            42, 0b010, 0xAC, 045
f         Float            0.7, -99.5
g         IEEE Float         0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E
u         User name/id (bots and players)   Y_Less, 0
q         Bot name/id         ShopBot, 27
r         Player name/id         Y_Less, 42
[/quote]
Cím: Mute
Írta: Flash - 2012. December 05. - 21:22:45
Akkor az NPC/Bot név/id.
Cím: Mute
Írta: [RC]Farkas - 2012. December 23. - 12:07:56
Nekem is megy de ha mutezok akor a Perc nel nem anyit ir amenyit én irok hanem pl irok 1 percet és ot az üzenetbe ki ír 60000 percet de ez ugy telik le mind az 1 perc csak ne irjon ki 60000 hanem irja ki az 1 percet
Ebben tudna nekem segiteni valaki
Cím: Mute
Írta: Striker - 2013. Január 09. - 22:18:56
Szerintem jólett én épp hasznát vettem köszi + :D