OnPlayerWeaponShot abfragen ob Spieler in einen Team sind wenn ja Schaden mit return verhindern.
danke
Kann close danke an alle
OnPlayerWeaponShot abfragen ob Spieler in einen Team sind wenn ja Schaden mit return verhindern.
danke
Kann close danke an alle
Guten Abend ihr hübschen
Ich wollte al gerne wissen wie es mit denn sscanf nochmal geht das der grund mit angeben wird...
zuzeit habe ich es so
ocmd:ban(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin] >= 2)
{
new pID,string[30];
if(sscanf(params, "u",pID))
{
SendClientMessage(playerid,F_O, "Benutzung: /ban playerid");
return 1;
}
if(SpielerInfo[pID][pAdmin] > SpielerInfo[playerid][pAdmin])
{
SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht bannen, da er ein höheres Adminlevel hat als du!");
return 1;
}
GameTextForPlayer(pID,"~r~ Banned!",3000,2);
SendClientMessageToAll(COLOR_LIGHTRED, string);
//SpielerInfo[pID][pLevel] = -999;
SendClientMessage(pID,COLOR_YELLOW,"Du wurdes soebend gebannt solltes du nix getan haben gehe unter www.big-cl.de beschwerde über Admins");
format(string,sizeof(string),"Du hast %s gebannt!",SpielerName(pID));
SendClientMessage(playerid,COLOR_RED,string);
//Ban(giveplayerid);
}
return 1;
}
leider geht auch die abfrage nicht ob der spieler admin is denn man bannen möchte bzw höher ist
oh das hatte ich jetzt nicht bedacht..
aber ich könnte ihn doch dann hoch slapen lassen ? das hindert es doch auch oder ?
swar verliert er dann leben wegen ihm aber das cheaten art geht dann nicht wenn er geslapt wird..
switch(classid)
{
case 0:
{
gTeam[playerid] = TEAM_ARMY;
GameTextForPlayer(playerid, "~b~Army", 5000, 5);
SetPlayerPos(playerid,220.3261,1822.9734,7.5368);
SetPlayerCameraLookAt(playerid,220.3261,1822.9734,7.5368);
SetPlayerCameraPos(playerid,226.7491,1823.0441,7.4141);
SetPlayerFacingAngle(playerid, 270 );
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //smooth dancing
CreateExplosion(212.9525,1822.9084,6.4141, 11, 10.0);
}
case 1:
{
gTeam[playerid] = TEAM_TERRORIST;
GameTextForPlayer(playerid, "~r~Terrorist", 5000, 5);
SetPlayerPos(playerid,220.3261,1822.9734,7.5368);
SetPlayerCameraLookAt(playerid,220.3261,1822.9734,7.5368);
SetPlayerCameraPos(playerid,226.7491,1823.0441,7.4141);
SetPlayerFacingAngle(playerid, 270 );
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //smooth dancing
CreateExplosion(212.9525,1822.9084,6.4141, 11, 10.0);
}
}
hier werden sie erstellt bzw verteilt muss ich es dann da auch setzten ?
ich habs anders gelöst warum so umständlich wenn es doch auch so geht
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
abfragen ob issuerid und playerid in ein team sind
und playerid dann immer hp auf full setzen wenn issuerid ihn angreift und schon kann
issuerid ihn nicht killen die metode geht wunderbar danke dir aber trozdem Jeffry
danke für eure hilfen ich habe den fehler gefunden es lag einfach das ein , am ende wahr
'%i' ", //fehler wahr '%i', ",
nimm sscanf als code
geht genauso gut.
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];
}
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
end = stringPos - 1,
ch;
while ((ch = string[++end]) && ch != delim) {}
string[end] = '\0';
setarg(paramPos,0,_:floatstr(string[stringPos]));
string[end] = ch;
stringPos = end;
}
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;
}
Guten Abend ich bin grade dabei mein login system fertig zu stellen doch bekomme ich immer wieder ein fehler..
bei dem hier
[23:44:42] [ERROR] CMySQLQuery::Execute[OnQueryFinish] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `name`='Rick'' at line 1
code
stock SaveAccount(playerid)
{
new query[2600], addquery[256];
if(IsPlayerConnected(playerid))
{
SpielerInfo[playerid][pMoney] = GetPlayerMoney(playerid);
if(gPlayerLogged[playerid])
{
format(addquery, sizeof(addquery), "UPDATE `accounts` SET `level`='%i', `adminlevel`='%i', ",
SpielerInfo[playerid][pScore], SpielerInfo[playerid][pAdmin],SpielerInfo[playerid][pMute]);
strcat(query, addquery);
format(addquery, sizeof(addquery), "`bargeld`='%i', `kills`='%i', ",
SpielerInfo[playerid][pMoney], SpielerInfo[playerid][pKills]);
format(addquery, sizeof(addquery), "WHERE `name`='%s'", GetName(playerid));
strcat(query, addquery);
mysql_fquery(query);
}
}
return 1;
}
hoffe einer kann mir helfen voher wahr es bei muted der fehler jetzt is es where
habe ich schon..
Nur wie setzten ich arbeite mit gteam
Habe bei team 1 auf set 1 und bei team 2 auf set 2 es klapte swar aber sie konnten dann sich nicht mehr gegenseitig killen t1 und t2
Ein guten Morgen euch allen
Ich habe ein Army vs Terror script und möchte gerne das man sich nicht im team killen kann will aber auch nicht mit player kick arbeiten also dachte ich an onplayerweaponshot nur wie abfragen und umsetzten...
Sorry wegen gramma bin mit handy on