gebe mal die zwei letzten daten per printf/print und das query einmal gesammt und einmal einzeln darüber aus.
Beiträge von IPrototypeI
-
-
Dann schau nochmal genauer hin
WHERE `Besitzer` = '' AND `VehicleSlot` = '')
`HP` = '919.442932',`Nummernschild` = 'SA-FJ-BW',
Siehst du nun was dies mit dem Inhalt zu tun hat
dies bedeutet wenn nix in dem Anführungszeichen steht ist dort kein wert vorhanden und bedeutet er nix an dem jeweiligen punkt updaten
also das Query weiß nicht was es Updaten soll.Ergebnis => Die Daten verändern sich nicht
-
heir bitte
new bool:unwanted[MAX_VEHICLES];ocmd:autorspawn(playerid,params[])
{
new string[128], i;
if(!IstSpielerAdmin(playerid,2))return SendClientMessage(playerid,ROT,"[System]Du bist nicht berechtigt diesen Befehl zu benutzen !");
for(; i <MAX_PLAYERS; i++)if(IsPlayerInAnyVehicle(i))unwanted[GetPlayerVehicleID(i)]=true;
for(i =0; i < MAX_VEHICLES; i++)if(!unwanted[i]) SetVehicleToRespawn(i);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "AdminSystem: Alle unbesetzten Autos wurden zurückgespawnt von %s.", sendername);
BroadCast(COLOR_RED,string);
return 1;
} -
Lieber Logan siehst du nix an deinem queryWHERE `Besitzer` = '' AND `VehicleSlot` = '')
wo Besitzer " " und VehicleSlot " " ist also es ist kein wert vorhanden
-
SOwas ist extrem einfach so fern die streams nicht verschlüsselt sind so wie bei Energy
else if (!strcmp(cmdtext,"/music1")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://www.antenne.de/webradio/antenne.m3u");
return 1;
}
else if (!strcmp(cmdtext,"/music2")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://webradio1.hitradion1.de:8000");
return 1;
}
else if (!strcmp(cmdtext,"/music3")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w72a");
return 1;
}
else if (!strcmp(cmdtext,"/music4")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w77a");
return 1;
}
else if (!strcmp(cmdtext,"/music5")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w75a");
return 1;
}
else if (!strcmp(cmdtext,"/music6")){
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w76a");
return 1;
}gehen alle jedoch musst auch den Ton an haben
-
enum gatesystem
{
g_ID,
g_model,
Float: g_closeX,
Float: g_closeY,
Float: g_closeZ,
Float: g_closeAX,
Float: g_closeAY,
Float: g_closeAZ,
Float: g_openX,
Float: g_openY,
Float: g_openZ,
Float: g_openAX,
Float: g_openAY,
Float: g_openAZ,
bool: g_state,
g_fraction1,
g_fraction2,
g_fraction3,
}
new GateInfo[MAX_GATE][gatesystem] = {
{0,16773, 1457.79, -1683.00, 6.85, 0.00, 0.00, 360.00,1457.79, -1683.00, 6.85, 0.00, 0.00, 360.00,false,-255,-255,0},
{1,16773, 1514.26, -1656.94, 6.85, 0.00, 0.00, 360.00,1514.26, -1656.94, 6.85, 0.00, 0.00, 360.00,false,-255,-255,0}
};So würde dies dann aussehen als array den command kannst du bestimmt selbst schreiben
-
Ich hab ja oben geschrieben es diente nur als Beispiel das andere musst du schon selbst umändern
if(PlayerInfo[playerid][pAdmin] < 21)
-
Dann solltest du das auch bei den jeweiligen if abfragen hinzufügen
Beispiel:
if(PlayerInfo[playerid][pAdmin] >= 21 || IsPlayerAdmin(playerid)) -
Wird vllt ihrgend was angezeigt in der MySQL log was möglicherweiß ausschluss darüber geben könnte was genau passiert.
-
exe Wie bei der Communityrunde von BE
Ich finde es sehr schade, das es auf manchen Servern
wirklich keinerlei Userfreundlichkeit gibt.
Man kommt dort an und wird getötet etc.
xD dann geh auf keine DM. Server oder Team DM Server -
sowas ist extrem leicht das kannst auch in ein array schmeißen
und bei OnPlayerCommandText musst du halt nach dem jeweiligen wort suchen.
mit Strfind und wenn es gefunden wurde return 0; zurück geben da somit kein Text des Spielers erscheint.
Um das ganze per File zu machen ganz einfach das ganze auslesen und in einer array speichern oder öffen und alles auslesen
sollte das dabei sein so bekomt dan der spieler ein warn etc. jedoch ist es besser das ganze temporär zu speichern.http://wiki.sa-mp.com/wiki/Strfind
new BadWords[] ={
"Wixxer",
"Hurensohn"
};
public OnPlayerText(playerid, text[])
{
new i;
for(; i < sizeof(BadWords); ++i){
if(strfind(text, BadWords[i], true) != -1){
SendClientMessage(playerid,-1,"Du hast ein böses wort gesagt");
return 0;
}
}
return 1;
}als kleines Beispiel
-
Abend, wenn ein Cop einen Spieler mit der SD trifft, wird der getroffene getazert, aber die Crack Animation wird nicht ausgeführt, weiß vielleicht jemand woran das liegt? Komme nicht weiter
Würde mich über hilfe freuen
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
{
if(weaponid == 23)
{
if(Spieler[issuerid][Team] == 1)
{
SetTimerEx("Tazer", 30000, 0, "i", playerid);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 0, 0, 0, 0, 0);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 0, 0, 0, 0, 0);
TogglePlayerControllable(playerid, 0);
}
}
PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
return 1;
}
die eine animation kannst du entfernen und benutze
ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 0, 0, 0, 0, 0);ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 1, 0, 0, 0, 0);
beim 5 Parameter eine 1
da auch im wiki steht
Set to 1 for looping otherwise set to 0 for playing animation sequence only once.Daher musst du diesen wert auf 1 setzen für eine schleife das ist dein fehler
-
Das einfachste ist eine array zu erstellen mit den ganzen daten der Tore die du per enum als index angibst
dann beim Befehl mit einem Loop durch das Array gehen , wenn er dann in der nähe eines Tores ist
brichst du die schleife ab und lässt das jeweilige Tor mit MoveObject / MoveDynamicObject(streamer) herunter fahren und setzt danach ein
wert auf 1/0 oder ein Boolean auf true /false iwe man will -
Dann zeig mal dein Code du musst nur die ganzen Waffen und ihre Munition erstmal temporär in variabeln speichern sprich arrays
und danach per einem Filesyste /Mysql speichern und wieder laden wo ist da das problem.http://wiki.sa-mp.com/wiki/GetPlayerWeaponData
new weapons[13][2];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
}Synatx:
GetPlayerWeaponData(playerid, slot, &weapons, &ammo);also er gibt pro Slot die Waffenid und die Munition zurück und es hat 13 Waffenslots
http://wiki.sa-mp.com/wiki/WeaponsDanach die Waffen wieder mit GivePlayerWeapon geben
-
Hallo,
das Tutorial ist schon ziemlich alt & die Version mit der das gezeigt wird auch.
Benutze lieber gleich die R7 die bringt einige Vorteile mit sich.MfG
Man sollte die neuste Version davon downloaden die wo von zeex gefixxt wurde da die anderen versionen einen Memory leak haben -
Wir wäre es wenn du mal die Z -Achse veränderst
MoveObject(impuls, 211.10000610352, -1350.1999511719, 52.700000762939, 3.0, 0.0, 0.0, 359.00);
MoveObject(impuls, 211.10000610352, -1350.1999511719, 52.700000762939, 3.0, 0.0, 0.0, 359.00);
-
Okay gut.
Wäre es möglich, dass du mir die Funktionsweise von sscanf nochmal genauer erläuterst, denn woanders werde ich nicht fündig.
jo kein Problem mit sscanf hast du die möglichkeit strings zu splitten was auch effizenter ist als strcat und schneller.sscanf(string zu splitten,"die parameter ",Variabeln an dennen was übergeben werden soll);
nun gut was das splitten angeht welches du hier benötigst benutzt man das p
p<|>dddd
| ist der delimiter wo es gesplittet werden soll man kan es auch durch kommas ersetzen was man will.
dddd das sind die folgenden parameter hier 4 mal d das bedeutet es wird in 4 integer gespeichert.
Daher sollte der string auch dementsprechend aussehen
1|2|3|4nun gut was du auch machen kannst ist das einem enum gleich zu übergeben.
enum beispiel
{
var,
string[20],
Float:ffloat,
};
new EnumInfo[MAX_PLAYERS][beispiel];sscanf(string,p<|>e<ds[20]f>",EnumInfo);
das war jetzt nur oberflächlich erklärt und kurz gehalten mehr infos findest du
hier -
Um mehrer Sachen auszuladen benutze eine while schleife und der SQL-Command dazu wäre
"SELECT * FROM `...`"und in er while schleife benutzt du dann
mysql_fetch_row();die while schleife bricht automatisch ab wenn es keine datensätze mehr gibt
while(while(mysql_fetch_row(Query,"|")){}
und nun den ausgelesenen string mit sscanf splitten
new i,Query[200];
mysql_query("SELECT * FROM `...`");
while(while(mysql_fetch_row(Query,"|")){sscanf(Query,"p<|>s[40]d",strHouseStadt[i],houseRef[i]);
i++;}
mysql_free_result();das solltest du dennoch deinen Werten anpassen und deinem skript
-
Bei den Häusern etc alles Ohne Probleme nur bei Spielern ist es so
//e
Nach mehreren Versuchen es auch mit dern Funktionen von Maddin zu machen, tritt das Problem auch auf
Es muss nicht an MySQL immer liegen es kann auch davon kommen das sich ihrgend wo in deinem Skript werte verschieben.
Die grundsätzliche werte Verschiebung ist mir nur bekannt durch hohe ressourcenauslastung.
Jedoch ist sowas auch anderweitig möglich ich hatte selbst mal solch ein Fehler in einem Gangfightsystem nur das sich dabei die Zonen ID verschoben hatte
nun gut ich hab es darauf hin gelöscht und damals neu geschrieben. Aber du kannst auch dein skript im debugmodes laufen lassen da man meist auch interessante Fehler mit dem crashdetectplugin findet.
Sonst kann ich dir nur mal raten immer mal wieder die werte auszugeben mit printf zum beispiel . Weil genaue Aussagen kann man dazu nicht machen.@ Jony Nun gut ich bin mir nicht genau sicher ob dies einen Error geben würde bei php stelle ich auch beiseite jedoch
kann man das Einfache Anführungszeichen bei Zahlen auch verwenden ist jedoch nicht nötig man verwendet es nur bei Strings das MySQL
das ganze nicht als Spalte interpretiert -
Nun gut man hätte ein paar Sachen auch anders machen können in der Include.
Jedoch stellt sich die Frage hier oder besser gesagt bei jeder hier in den Raum ob alle diese Werk wirklich einen potenziellen Nutzen haben.
Nun gut ich selbst geziehe mich darauf, das diese Include nicht wirklich für mich oder auch andere die ein wenig mehr Ahnung vom
Skripten haben diesen potenzieller Nutzen erfüllt. Dennoch lassen sich bestimmt Leute finden die dies zu schätzen wissen und solch eine Include nutzen.
Daher sage ich zu dem Thema das man hier nicht rein posten sollte nur um sein Selbstwertgefühlt zu inkrementieren in dem man versucht dieses Werk
schlecht zu machen.