Und zwar habe ich unter OnPlayerDeath folgendes:
kills[killerid] = +1;
kills[playerid] = 0;
Aber er meckert über +1
Wie soll ichs sonst machen, dass meine Variable kills um 1 erhöht wird, sobald ein Spieler getötet wird?
Und zwar habe ich unter OnPlayerDeath folgendes:
kills[killerid] = +1;
kills[playerid] = 0;
Aber er meckert über +1
Wie soll ichs sonst machen, dass meine Variable kills um 1 erhöht wird, sobald ein Spieler getötet wird?
1.Wie frage ich ab, welche Waffe der Spieler gerade im Arm hat?
2. Wie kann ich verhindern, dass der Spieler, wenn er schon ne M4 hat, gleichzeitig auch eine MP5, Shotgun etc. haben kann?
Multi-Theft-Auto San Andreas
edit: ok war ein bisschen wenig Informativ. Also MTA SA ist ein weiterer Multiplayer Client, mit integriertem Map Editor. Die damit erstellten Map Dateien musst du mit einem Konverter (google hilft beim finden (MTA SAMP Map Converter) in die Scriptsprache PAWN umwandeln
Deswegen ja ähnliche Frage. Hab das grad gesehen und dachte mir, das des hier vllt passen könnte^^
nene darum gehts mir nich. Ich will verhindern, dass der Spieler mehr als EINE Große Waffe hat. Sprich wenn er ne Shotgun hat, soll er keine M4 haben dürfen.
Ich habe die Funktion schon verstanden. Aber womit bekomm ich raus, ob der Spieler diese Waffe, auf die ich setze überhaupt hat?
GetPlayerWeapon ist so wie ich des las da, um zu fragen welche er ausgerüstet hat.
Ich hab ma ne ähnliche Frage. Wie finde ich denn heraus, welche Waffe der Spieler besitzt, aber nicht ausgewählt hat? Sprich man hat die Faust angescrollt, aber auch ne Shotgun dabei?
Jau sry bin noch im halbschlaf UND von der Arbeit abgelenkt^^ hab ich wohl überlesen. Naja passiert.
Aber mal aus neugier, Wie bannt man den Stamm? xD
edit: ups auch dass konnte ich aus dem Post entnehmen. Frage erledigt^^
Kannte ich ja noch gar nich :o
Und auf anderen Servern geht es? Vllt ist es auch sein Ping, so dass ihr euch nur zulaggt?
Beim Router neustart wird die OnlineIP jedoch neu gesetzt Also hilft IP Ban herzlich wenig.
Gothic 1 und 2 + Addon sind 2 Singleplayer RPGs, welche sehr gut auch nur mit Tastatur (manche spielens NUR so xD)zu steuern sind. Es hat für das Releasedatum (2001 und 2003) sogar eine recht hübche Grafik. (Für heute eher weniger, aber glaub mir. Zur Athmosphäre bestens.) Ansonsten wenns MMO sein soll versuchs mal mit Metin. Afaik Pfeiltasten/WASD laufen und Leertaste wien bekloppter raufhämmern xD
Liegt unmöglich an den Coords. Man siehe Post 1 in diesem Thema, also meinen Beitrag:
Der /skin cmd funzt genauso wie /veh. Er packt ne 0 rein. (bei /veh: ungültige ModelID, bei /skin werd ich CJ.
Stimmt xD Ich bob...
naja.... er spuckt nur aus:
dcmd_veh0 462 0 0..... Und zwar als eine Zeile wieso auch immer....
Bezweifle ich. Ich hab auch nicht vor mein ganzes Script zu posten.
#include <a_samp>
//#include <sscanf2>
#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 1
new pName[MAX_PLAYER_NAME], string[56] ;
#pragma unused pName
#define rot 0xFF0000FF
#define gelb 0xFFFF00FF
new tot;
new Float:x, Float:y, Float:z,Float:r;
Da sitzen die ganzen Definitionen. sscanf ist ausgeklammert ich weiß. Hat schon seine Richtigkeit
Denn unten im Script hab ich:
// SSCANF
stock sscanf(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':
{
setarg(paramPos, 0, _:floatstr(string[stringPos]));
}
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;
}
// Ende SSCANF
Hab die Zeilen iwo raus kopiert (wo es aber auch ging :/) und ich schätze es hängt vllt da drinnen?
Wie bereits gesagt wurde, macht diese Warnung nichts, sondern weißt nur darauf hin, dass die Variable nicht genutzt wird. Du kannst sie aber mit
#pragma unused (die Variable ohne Klammer)
deaktivieren. Dann hast du die Warnung beim Compilen nicht mehr.
SetPlayerSkillLevel(playerid, Waffenid , Skilllevel);
So dürfte es afaik sein.
Hör mal zu. ICH kann es normal. Und dein command kann im Prinzib auch nicht mehr als meiner, außer dass er die ID überprüft. Das printf hat mir eher geholfen also halt den Ball flach. Wenn du genau gelesen hättest, müsstest du es interpretieren können dass es am Printf liegt Und die Abfragen SIND auch nicht nötig. Hatte es doch eig schon x mal ohne nur aus irgentnem Grund gehn die neu geschriebenen nicht und die alten Scripts habi nimme.
Also wie gesagt, laut Printf command setzt er zwischen Parameter und Command ne 0.
Also. Afaik kann man bei Head eine Kopfzeile wie bei Word machen. Ich mein mich erinnern zu können dort mal meinen Header gesetzt zu haben.
Naja und <br> muss man ebenfalls nicht schließen. Es reicht zum Zeile brechen. Es bricht ja nur eine Zeile also was sollte weiter passieren? xD
Ansonsten find ichs Nice.
Edit: Head heißt ja auch Kopf...naja und mein Vorposter hats ja auch schon erwähnt.
Wieso kompliziert? Gibt ja auch Reallife und RPG Gamemodes die In Venturas spielen.
Ich find die Schule Nice gemacht. Auf die Idee sowas mit Pfeilen auszulegen kam ich noch gar nicht. Weiter so: 9/10