if(strcmp(cmd, "/close", true) == 0 || strcmp(cmd, "/c", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht eingeloggt !");
return 1;
}
GetPlayerName(playerid, pname, sizeof(pname));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /(c)lose [close chat text]");
return 1;
}
format(string, sizeof(string), "%s Sagt: %s", pname, result);
ProxDetector(3.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
printf("%s", string);
}
return 1;
}
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Und jetzt noch den Code von OnPlayerText (wo er "T" drückt). Sonst können wir es ja nicht vergleichen.
Macht Sinn oder? -
ähh ja gute Frage wie sieht das denn ungefähr aus der Code
-
STRG + F , dann geb ein 'afklist'. benutzt dein Script OCMD oder DCMD?
-
ähh ja gute Frage wie sieht das denn ungefähr aus der Code
Ja der wird wohl so ähnlich aussehen wie der /close Befehl. Suchen kann ich ihn dir nicht, den musst du schon selbst finden.Meine Meinung am Rande: Eigener Code = Eigener Server -> Wer einen Code nur editiert hat den Server nicht gemacht, er hat ihn vermacht. Das ist ein feiner aber ausschlaggebender Unterschied.
-
Okay habe mal durchgeschaut das ist das einzige was dazu passen würde.
if (realchat)
{
if(gPlayerLogged[playerid] == 0)
{
return 0;
}
if(PlayerInfo[playerid][pTot] == 1)
{
return 0;
}
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s sagt: %s", pname, text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return 0;
} -
Hey, Ne Frage wie man einstellt das man überall anstatt z.b. /enter , schreibt einfach die enter taste drückt ?
-
XxFraPPoxX:
Erstens stimmen die Distanzen bei ProxDetector (20 und 3) nicht überein.
Zweitens ist bei "T" noch die Abfrage drinnen ob der Spieler tot ist, sodass nichts gesendet wird wenn er tot ist.@Luiy:
http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange
Mit KEY_SECONDARY_ATTACK.
Dann das was im Befehl steht einfach kopieren und einfügen. -
Was ist hier falsch?
if(!frakint[playerid] == 0)return SendClientMessage(playerid,FEHLER,"Sie sind in keiner Fraktion.");
Error:
warning 213: tag mismatch -
Entweder
if(frakint[playerid] == 0)return SendClientMessage(playerid,FEHLER,"Sie sind in keiner Fraktion.");Oder
if(!frakint[playerid])return SendClientMessage(playerid,FEHLER,"Sie sind in keiner Fraktion.");Beide sind semantisch identisch. Welches du benutzt bleibt dir überlassen, beides das selbe.
-
Aber wenn ich einen bestimmten Wert abfrage wie z.B.
if(!frakint[playerid] == 1) return SendClientMessage(playerid,FEHLER,"Sie sind kein Polizist.");
kommt auch der gleiche Fehler und wenn ich das ! weg mache geht der fehler weg. Entweder ist es einfach zu auffällig oder ich weiß es echt nicht.
-
Das Ausrufezeichen vor einer Abfrage steht für ==0
Hast du ein Ausrufezeichen und ein ==irgendwas dann hast du eine doppelte Abfrage und der Compiler weiß nicht was er machen soll.Nicht 0
variable!=00
variable==0
!variable1
variable==1Nicht 1
variable!=1
!(variable==1)(letztes Beispiel: Wenn eine positive Abfrage negiert wird, dann mit klammern.)
Das letzte Beispiel trifft auf dich zu. -
okay das war dumm
er war helt einfach zu einfach
ich danke dir für die schnelle hilfe -
nabend,
hat jemand von euch ein gutes " SetPlayerAttachedObject " Filterscript.. wo man ingame eben die objecte anpassen kann..
was auch funktioniert auf der neusten Version ?wär top
mfg coreX
-
hat jemand von euch ein gutes " SetPlayerAttachedObject " Filterscript.. wo man ingame eben die objecte anpassen kann..
was auch funktioniert auf der neusten Version ?
http://forum.sa-mp.com/showthread.php?t=416138
Bestes meiner Meinung nach. -
Abend,
ich habe ein Problem mit nem Timer dessen Intervall ich per MySql lade.
Bei OnGameModeInit hat der Timer immer nen Standartintvervall von 123 ms doch beim Lade Public wo ich das Intervall lade, kommt die richtige Zeit raus.
Woran kann das liegen ?SQL[22:14:17] NL: Verbindung zur Datenbank war erfolgreich. [22:14:17] Savetimer auf 123 Millisekunden //Print bei OnGameModeInit [22:14:17] Number of vehicle models: 0 [22:14:17] Serverstuff loaded [22:14:17] Savetimer auf 100000 Milisekunden //Print beim Public wo es geladen wird
Für nähere Infos zum Thema:
Timerinterval per MySql -
Abend,
ich habe ein Problem mit nem Timer dessen Intervall ich per MySql lade.
Bei OnGameModeInit hat der Timer immer nen Standartintvervall von 123 ms doch beim Lade Public wo ich das Intervall lade, kommt die richtige Zeit raus.
Woran kann das liegen ?SQL[22:14:17] NL: Verbindung zur Datenbank war erfolgreich. [22:14:17] Savetimer auf 123 Millisekunden //Print bei OnGameModeInit [22:14:17] Number of vehicle models: 0 [22:14:17] Serverstuff loaded [22:14:17] Savetimer auf 100000 Milisekunden //Print beim Public wo es geladen wird
Für nähere Infos zum Thema:
Timerinterval per MySqlKannst du mal den Code posten wo das ganze laden lässt.
mal abgesehen davon wenn du nicht mehreree indexe benötigst bei einem 2 dimensionalen array dann lass das ganze doch als 1 dimensionales array.
enum Stuff
{
AutomaticUserSavetimer
}new ServerStuff[Stuff];
den wert speicherst du auch als integer ?
-
public OnServerStuffLoading()
{
new rows,fields;
cache_get_data(rows,fields,sqlconnection);
if(rows)
{
ServerStuff[0][AutomaticUserSaveTimer]=cache_get_field_content_int(0,"SaveAllUserTimer",sqlconnection);
print("Serverstuff loaded");
printf("Savetimer auf %d ms",ServerStuff[0][AutomaticUserSaveTimer]);
}
else
{
print("No Serverstuff");
}
return 1;
}Jap es ist ein Integer
edit. Hier ist es halt noch 2 Dimensional
-
public OnServerStuffLoading()
{
new rows,fields;
cache_get_data(rows,fields,sqlconnection);
if(rows)
{
ServerStuff[0][AutomaticUserSaveTimer]=cache_get_field_content_int(0,"SaveAllUserTimer",sqlconnection);
print("Serverstuff loaded");
printf("Savetimer auf %d ms",ServerStuff[0][AutomaticUserSaveTimer]);
}
else
{
print("No Serverstuff");
}
return 1;
}Jap es ist ein Integer
edit. Hier ist es halt noch 2 Dimensional
Am besten erstellst du den Timer in dem Callback, zu dem ist es besser mysql_tquery zu verwenden somit gehst du auch über Threaded Querys.
Ich weiß ja nicht was du schon davor absendest jedoch wartet dein Server nicht darauf bis dein query verarbeitet ist.
if(rows)
{
ServerStuff[AutomaticUserSaveTimer]=cache_get_field_content_int(0,"SaveAllUserTimer",sqlconnection);
print("Serverstuff loaded");
printf("Savetimer auf %d ms",ServerStuff[0][AutomaticUserSaveTimer]);
SetTimer("Name",ServerStuff[AutomaticUserSaveTimer],true);
} -
Okay, werde es dann testen danke.
Somal nebenbei, was ist denn der unterschied zwischen mysql_tquery und mysql_function_query ?Laut wiki: The callback must be a public function. That means it has to be forwarded.
Heißt das jetzt bei tquery muss immer ein public angegeben auch bei Update und Insert ? Oder sehe ich das jetzt falsch