Jo - also werde das Ganze dann heute Vormittag fertigstellen.
Mit freundlichen Grüßen
Saitek | Timo
Jo - also werde das Ganze dann heute Vormittag fertigstellen.
Mit freundlichen Grüßen
Saitek | Timo
Den Fehler hatte ich auch mal.
Würde es am Script liegen, müsstest du das ja irgendwo eingescripted haben.
Installier mal den Clienten neu und probiers erneut aus.
Ansonsten liegts eventuell wirklich am Server / Plugins / Filterscripts.
Mit freundlichen Grüßen
Saitek | Timo
Dann bin ich ja mal gespannt
Mit freundlichen Grüßen
Saitek | Timo
PS: Poste bitte, wenns funktioniert hat
Jo ok.
Was du derweil schon machen kannst:
Füge folgende Zeilen ans Scriptende ein. (! Nicht in einem Callback !)
/*----------------------------------------------------------------------------*-
Function:
sscanf
Params:
string[] - String to extract parameters from.
format[] - Parameter types to get.
{Float,_}:... - Data return variables.
Return:
0 - Successful, not 0 - fail.
Notes:
A fail is either insufficient variables to store the data or insufficient
data for the format string - excess data is disgarded.
A string in the middle of the input data is extracted as a single word, a
string at the end of the data collects all remaining text.
The format codes are:
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.
Now has IsNumeric integrated into the code.
Added additional delimiters in the form of all whitespace and an
optioanlly specified one in the format string.
-*----------------------------------------------------------------------------*/
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;
}
Das ist der Code den wir benötigen, um ocmd ein Parameter zu setzen.
Mit freundlichen Grüßen
Saitek | Timo
Hast du irgendwelche Kontaktmöglichkeiten?
Skype oder so?
Wenn ja, schick mir den Namen mal bitte per PM, damit ich dich adden kann.
Wenn nicht, schick mir trotzdem ne PM, und sag, dass du kein Skype hast.
Es wäre aber von Vorteil, wenn ich dir gleich nebenbei erklären kann, was ich genau mit dem Befehl mache.
Damit man noch was draus lernt.
Mit freundlichen Grüßen
Saitek | Timo
Ich empfehle dir,
sscanf zu nutzen, da dies sehr einfach ist.
Ich werde mich heute mal die Arbeit machen,
deine Befehle ins Format OCMD umzuschreiben.
Mit freundlichen Grüßen
Saitek | Timo
Möchte nur kurz darauf hinweisen,
dass du dich im Scripting-Bereich befindest.
Dein Problem gehört eigentlich in die Client- und Serverhilfe,
da es um die Inbetriebnahme eines Servers geht.
Nicht das etwas sanktioniert wird.
Nun zum eigentlichen Thema:
Sind alle Files drinne (Scriptfiles, Includes, Plugins), die du benötigst?
Ansonsten kann ich auch mal via. TeamViewer schauen,
was das Problem darstellt.
Das Scripting-Programm heißt "Pawno" und befindet sich zusammen mit dem Windows-Server
in dem Paket, welches du dir > Hier < herunterladen kannst.
Mit freundlichen Grüßen
Saitek | Timo
Ich gebe dir auch nur 3/10.
Ich dachte, dass soll ein Krankenhaus darstellen.
Hinten siehts aus wie im Hochsicherheitstrakt.
Mit freundlichen Grüßen
Saitek | Timo
Ich helfe wo ich nur kann
Viel Spaß damit.
Mit freundlichen Grüßen
Saitek | Timo
Jetzt bin ich ja mal gespannt, obs was bringt/gebracht hat.
Mit freundlichen Grüßen
Saitek | Timo
Find ich nicht.
Wenn de das n paarmal im Script machst,
hast du auf Grund der Timertätigkeit nen ungewollten Lagg drinne.
Deswegen ging mein vorletztes Projekt auch down.
Mit freundlichen Grüßen
[GP]Saitek | Timo
Lad dir mal n leeren Server runter,
entpacke ihn aufn Desktop und lade da alles notwendige rein.
Danach probierstes erneut aus, und zwar kompilierst du das ganze mit dem neuen Compiler.
Mit freundlichen Grüßen
[GP]Saitek | Timo
Du sagst, egal welches Script du nutzt - es geht garnichts?
Pawno in irgendeiner Weise beschädigt?
Hast du den Server aufm PC oder bei einem Hoster?
Mit freundlichen Grüßen
[GP]Saitek | Timo
Hau dir OCMD rein und machs so:
ocmd:ag1(playerid,params[])
{
SendClientMessage(playerid,BLAU,"Hier ist deine 1 Aufgabe !");
SendClientMessage(playerid,BLAU,"Aufgabe 1 : Fahre zum BSN");
return 1;
}
Geht viel schöner
Mit freundlichen Grüßen
[GP]Saitek | Timo
Danke euch beiden
Stimmt - Wenn er spawnt und noch das Include
Ich vergess das OCMD laufend, da es bei mir Standart ist, damit zu scripten.
Mit freundlichen Grüßen
[GP]Saitek | Timo
//Ganz hoch ins Script
new dmTrue[MAX_PLAYERS];
//Unter OnPlayerConnect
OnPlayerConnect(playerid)
{
dmTrue[playerid] = 0;
}
//Irgendwo hin, hauptsache in keinen Callback
ocmd:dm(playerid,params[])
{
GivePlayerWeapon(playerid,24,1000);
GivePlayerWeapon(playerid,34,1000);
GivePlayerWeapon(playerid,25,1000);
SetPlayerPos(playerid, 1546.5265,-1673.6227,5.8906);
dmTrue[playerid] = 1;
return 1;
}
ocmd:exit(playerid,params[])
{
if(dmTrue[playerid] == 1)
{
SpawnPlayer(playerid);
dmTrue[playerid] = 0;
return 1;
}
else
{
SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Arena!");
}
return 1;
}
Bitteschön
Mit freundlichen Grüßen
[GP]Saitek | Timo
Wie stellst du dir das vor?
ich stehe ganz normal in SA, gebe /dm ein und erhalte 3 Waffen?
Was du meinst ist bestimmt in einem Interior, richtig?
Zunächst ersteinmal der /dm-Befehl:
ocmd:dm(playerid,params[])
{
GivePlayerWeapon(playerid,WaffenID,Anzahl der Munition);
GivePlayerWeapon(playerid,WaffenID,Anzahl der Munition);
GivePlayerWeapon(playerid,WaffenID,Anzahl der Munition);
return 1;
}
Von was sind die Koordinaten?
Sollte ich nicht richtig liegen erbitte ich genauere Informationen.
Mit freundlichen Grüßen
[GP]Saitek | Timo
Vor 3 - 4 Wochen vielleicht.
Mit freundlichen Grüßen
[GP]Saitek | Timo
Du könntest aber auch einfach den Support anschreiben und sie bitten das sie den Externen Zugriff von dem und dem Webspace auf deine Datenbank zulassen sollen, anstatt extra einen Webspace zu Bestellen.
Das habe ich gemacht - da hieß es: Sie müssen einen SA:MP4You-Webspace benützen, um auf die Datenbank zugreifen zu können.
Also der Support macht da auch nix.
Mit freundlichen Grüßen
[GP]Saitek | Timo