Frage ich damit ab ob es größer ist als das was zwischen den Zahlen ist ?
if(Spieler[playerid][Anrufszeit] > 0|1000)
Frage ich damit ab ob es größer ist als das was zwischen den Zahlen ist ?
if(Spieler[playerid][Anrufszeit] > 0|1000)
Hallo,
ich hatte bisher ein Script auf dini basierend gebastelt und sammel nun meine ersten Erfahrungen mit MySQL. Wie muss ich die Syntax umgestalten um einen Eintrag in der Datenbank zu ändern, wie z.B. den Userlevel? Ich habe bisher das:
ocmd:setlevel(playerid,params[]){ new pid,level,sname[MAX_PLAYER_NAME]; pInfo[playerid][pLevel] = mysql_GetInt("spieler", "Level", "Name", pInfo[playerid][pName]); if(pInfo[playerid][pLevel] > 2) { if(sscanf(params,"ii",pid,level)) return SendClientMessage(playerid,COLOR_RED,"[Fehler]: Benutze /setlevel [ID][Level]"); { GetPlayerName(pid,sname,sizeof(sname)); mysql_SetInt("spieler", "Level", pInfo[playerid][pLevel], "Name", pInfo[playerid][pName]); } } return 1;}
Nun, wie wahrscheinlich ist es, dass die bindip eingetragen ist? Wenn man jetzt mal so von gesponsorten/gemieteten Servern ausgeht, oder ggf von Server auf dem eigenen vServer. Ist die standardmäßig eingetragen oder nur, wenn man selbst "Lust darauf hat"?
Da BlackAce der Waschlappen schon weg ist, muss mir irgendnen anderer Script-Guru mal kurz behilflich sein:
Gibt es eine Funktion von PAWN um die SERVER IP + Port auszugeben, auf der das besagte Filter-Script gerade läuft?
/ Edit: Achja und gegebenfalls vielleicht noch den Servernamen?
Um den Hostname zu bekommen:
new hname[64];
GetServerVarAsString("hostname",hname,sizeof hname);
printf("Hostname: %s",hname);
Das mit der IP ist schon kniffliger, es geht glaube ich nur, wenn in der server.cfg beim "bind" eine IP angegeben ist:
static sIP[16];
GetServerVarAsString("bind",sIP,sizeof sIP);
printf("IP: %s",sIP);
Wie gesagt, funktioniert nur, wenn in der server.cfg unter "bind" die zu bindende IP angegeben ist, andernfalls geht das ganze glaube ich nicht.
Edit: Nein soweit ich weiß, geht das ganze anders nicht, als die Lösung mit bind, und nein, die ist standardmäßig nicht angegeben.
LG
Hab auch grad festgestellt, die IP krieg ich auf anderem Wege heraus, Servername reicht also und der sollte ja normalerweise in der Config vorhanden sein, denke ich, oder?
Hab auch grad festgestellt, die IP krieg ich auf anderem Wege heraus, Servername reicht also und der sollte ja normalerweise in der Config vorhanden sein, denke ich, oder?
Naja wenn du einen anderen Weg gefunden hast, die Server-IP zu bekommen, könntest du uns diesen ja mal zeigen
Ja der hostname wird ja, falls er im Script zur Laufzeit verändert wird mit dem "SendRconCommand" auch in der Server.CFG angepasst, also geht das schon so mit dem Hostname.
LG
Edit: Anscheinend spinnt die Zitieren Funktion ein bissl
Naja wenn du einen anderen Weg gefunden hast, die Server-IP zu bekommen, könntest du uns diesen ja mal zeigen
Hole ich mir mittels PHP während des HTTP Requests ;p Der Port muss, soweit ich mich entsinne ja auch zwangsläufig in der Cfg stehen, richtig?
Hole ich mir mittels PHP während des HTTP Requests ;p Der Port muss, soweit ich mich entsinne ja auch zwangsläufig in der Cfg stehen, richtig?
Ja der Port steht auch in der Server.cfg unter "port".
LG
weiss einer ob die Funktion auch für Rcon geht sonst könnzlten Fitersctopts sehr gefährlich werden
Wenn man nichz einen sehr einfachen Code kennt
weiss einer ob die Funktion auch für Rcon geht sonst könnzlten Fitersctopts sehr gefährlich werden
Wenn man nichz einen sehr einfachen Code kennt
Bitte was, ich versteht nicht ganz was du meinst ?
weiss einer ob die Funktion auch für Rcon geht sonst könnzlten Fitersctopts sehr gefährlich werden
Wenn man nichz einen sehr einfachen Code kennt
Falls du RCON abschalten meinst, gib RCON 0 in die Server.cfg ein?
Falls du RCON abschalten meinst, gib RCON 0 in die Server.cfg ein?
Falls du RCON abschalten meinst, gib RCON 0 in die Server.cfg ein?
Ne ob man so auch das Rcon Passwort auslesen kann
Nochmal fix gefragt: Maximale länge einer String-Variable?
Nochmal fix gefragt: Maximale länge einer String-Variable?
Falls du new str[];meinst, glaub 2000
Nochmal fix gefragt: Maximale länge einer String-Variable?
new string[4075];
Höher gehts nicht
Ah alles klar, danke. Jetzt hab ich nur noch eine klitzekleine Frage *rumnerv*
Wie kann ich noch gleich mit strcmp Parameter bei der Eingabe abfragen? Es war irgendwie mit strtok oder so, glaub ich. (Bevor das vorgeschlagen wird, nein ich möchte nicht auf scanff zurückgreifen, mein FilterScript soll und muss include-unabhängig laufen :p)
Du musst den Text splitten:
if(strcmp(cmdtext,"/kick",true,5)==0) // die 5 bedeutet, dass nur die ersten 5 Zeichen überprüft werden
[
new string[5];
strmid(string,cmdtext,6,strlen(cmdtext)); // Speichern des Parameters in "string"
new id=strval(string); // String wird zu einem Integer
Kick(id); // Kick ihn
}
//edit: Strtok funktioniert folgendermaßen:
new cmdtext[128]="/veh 411 0 0"; // Das ist unser cmdtext
new cmd[128];
new idx; // Die zwei Variablen brauchen wir für strtok
cmd = strtok(cmdtext, idx); // Das erste Wort wird in "cmd" gespeichert
if(strcmp(cmd,"/veh",true)==0)
{
new model[32];
model=strtok(cmdtext,idx); // Zweiter Parameter wird in "model" gespeichert
new color[2][32];
color[0]=strtok(cmdtext,idx); // Dritter Parameter wird in "color[0]" gespeichert
color[1]=strtok(cmdtext,idx); // Vierter Parameter wird in "color[1]" gespeichert
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateVehicle(strval(model),x,y,z,0,strval(color[0]),strval(color[1]));
return 1;
}
Hier strtok:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Ah alles klar, danke. Jetzt hab ich nur noch eine klitzekleine Frage *rumnerv*
Wie kann ich noch gleich mit strcmp Parameter bei der Eingabe abfragen? Es war irgendwie mit strtok oder so, glaub ich. (Bevor das vorgeschlagen wird, nein ich möchte nicht auf scanff zurückgreifen, mein FilterScript soll und muss include-unabhängig laufen :p)
du willst also Commands ohne a_samp Includes benutzen?
Viel glück
Zum Problem: schreib dir ein eigenes Splitt Verfahren hier im Forum gibts genug Beispiele
Wie kann ich noch gleich mit strcmp Parameter bei der Eingabe abfragen? Es war irgendwie mit strtok oder so, glaub ich. (Bevor das vorgeschlagen wird, nein ich möchte nicht auf scanff zurückgreifen, mein FilterScript soll und muss include-unabhängig laufen :p)
Ich habe eine Sscanf Funktion geschrieben gehabt, mit der kannst du das machen und auch ohne Include und die ist sogar schneller als die von Y_LESS
Hier: http://forum.sa-mp.de/san-andr…eschnipsel-45#post1448534
mfg.
new string[4075];
Höher gehts nicht
Doch da geht mehr es ist abhängig davon wie viel Memory zur verfügung steht normal macht er lokal definierten variabeln bei 4096 Zellen dicht / 16KB. Dann bekommt man auch die nette Fehlermeldung erstmal vom kompiler sollte man dies nicht beachten so kommt es zum
crash vom server mit der Meldung
Run time error 3: "Stack/heap collision (insufficient stack size)"
Man kann jedoch auch den Memory via #pragma dynamic oder auch #emit erhöhen.
Dieser Wert bezieht sich auf einen anderen (stack/heap)Memory Block als global definierte variabeln. Diese werden
in der .amx gespeichert.
Zu dem kannst du ja gerne mal nach limit suchen in der Pawn_Language_Guide.pdf
http://www.compuphase.com/pawn/Pawn_Language_Guide.pdf