hi, kann mir jemand zeigen wie ich givegun befehl mache ?
givegun
- XenooN
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(giveweapon,10,cmdtext);
dcmd_givegun(playerid,params[])
{
new pID,weapon,ammo;
if(sscanf(params,"udd",pID,weapon,ammo)){
return SendClientMessage(playerid,rot,"Benutze: /givegun[SpielerID][WaffenID][Mudition]");
}
if(!IsPlayerConnected(pID)){
return SendClientMessage(playerid,rot,"Ungültige Spieler ID");
}
new string[128],string2[128],aname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME];
GivePlayerWeapon(pID,weapon,ammo);
GetPlayerName(playerid,aname,sizeof(aname));
GetPlayerName(pID,name,sizeof(name));
format(string,sizeof(string),"Du hast %s eine Waffe mit der ID:%d und mit %d Schuss gegeben!",name,weapon,ammo);
format(string2,sizeof(string2),"%s hat dir eine Waffe mit der ID:%d und mit %d Schuss gegeben",aname,weapon,ammo);
SendClientMessage(playerid,hellblau,string);
SendClientMessage(pID,hellblau,string2);
return 1;
}
return 1;
}Oben bei den defines:
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1ganz untem im Gamemode
//==================================================SCANF CODE ====================================================
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
//================================================= SCANF CODE END ======================================================== -
Bitte spam nicht so das Forum voll,
frag lieber Wikipedia oder versuch es mal mit der Suchfunktion.Gruß
Asa -
überlass das mal den Admins
-
Ich mein es dir nur gut, so brauchst du nicht so oft nach Sachen fragen.
-
Was Asa sagt stimmt du darfst nicht wegen jeder kleinigkeit nachfrage, benutze GOOGLE und sie SuFu (Suchfunktion) im Forum wenn du dann nicht findest kannst du nachfragen!
-
das war 2 mal ;)))
haltet euch da bitte raus
lasst das die admins machen
kiddylike -
Zitat von Andi2504
das war 2 mal ))
haltet euch da bitte raus
lasst das die admins machen
kiddylike
Bin ich anderer Meinung:
Nummer 1 - scripten lernen
Nummer 2 - loh
Nummer 3 - maps einfügen
Nummer 4 - fertiges Script
Nummer 5 - Wbb 3
Nummer 6 - selfmade accountsystem
Nummer 7 - ServerAll diese sinnlosen Themen die du erstellt hast, hätte man vermeiden können, wenn du dich etwas informiert hättest (die Suchfunktion benutzt).
Tut mir leid aber ich finde das solche Leute wie du nicht in eine Community passen.
Wenn man mal die Wahrheit spricht, kann die Person es nicht verkraften und muss sich schnell was zusammenreimen. -
breadfish.de
Hat das Thema geschlossen.