[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
@Kontrax: Ja, genau. Korrekt.
-
musste jetzt hier mit %i
format(query,sizeof(query),"DELETE FROM cars WHERE id='%i'",cInfo[i][db_id]);
arbeiten, damit es funktioniert.Wann benutzt man dann %d ?
-
Wann benutzt man dann %d ?
%d und %i sind absolut identisch, du kannst sie austauschen wie du willst, das macht keinen Unterschied. -
Weiß einer wie im GF die Wanted Sterne unter der Geldanzeige heißen? Hab für Wanted 3 verschiedene Namen

-
Weiß einer wie im GF die Wanted Sterne unter der Geldanzeige heißen?
Eh...das nennt man Wanted Level: SetPlayerWantedLevel -
Eh...das nennt man Wanted Level: SetPlayerWantedLevelDadurch sind jedoch nur maximal 6 Wantedsterne möglich, falls du(FileZilla) jedoch mehr anzeigen lassen möchtest solltest du ein textdraw nutzen. Mit der entsprechenden font diese kannst du hier nachschauen
-
Hat einer eine Lösung kriege dieses nicht hin.
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup])
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][htext])
{
Delete3DTextLabel(hInfo[id][htext]);
}
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
//hInfo[id][htext]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
//hInfo[id][htext]=Create3DTextLabel(string, COLOR_BLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
return 1;
}
Die Ausgeklammerten sind die warning tags.
Es gibt bei mir auch einen Bug er updatet es nicht. Die texte und die Pickups sind noch da wurden nicht Gelöscht.CodeD:\SAMP Server\gamemodes\vroleplay.pwn(1819) : warning 213: tag mismatch D:\SAMP Server\gamemodes\vroleplay.pwn(1825) : warning 213: tag mismatchLg,
Skoam -
Schreibe die updateHaus-Funktion so:
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
hInfo[id][h_pickup] = -1;
}
if(hInfo[id][htext] != -1)
{
Delete3DTextLabel(hInfo[id][htext]);
hInfo[id][htext] = Text3D:-1;
}
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
hInfo[id][htext]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
hInfo[id][htext]=Create3DTextLabel(string, COLOR_BLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
return 1;
}Dann füge im enum, dort wo du "htext" deklariert hast "Text3D:" vor das "htext" hinzu, dass es so aussieht:
Text3D:htext,Und füge bei OnGameModeInit, ganz als erstes, das hier ein:
for(new i=0; i<sizeof(hInfo); i++)
{
hInfo[i][h_pickup] = -1;
hInfo[i][htext] = Text3D:-1;
}Warum tritt das Problem auf? Es gibt auch eine ID 0, das wird bei dem Code den du hattest nicht berücksichtigt.
-
Jeffry: Habe es gemacht und mit Text3D wusste ich auch habe ich auch drinne mit deinem Code habe ich jetzt 3Warnings.
-
if (dialogid==DIALOG_FLEIHENBMX)
{
if(response)
{
if(radmou[playerid]!=0)return(SendClientMessage(playerid,ROT,"Du hast bereits ein Fahrzeug geliehen! Du kannst es mit '/abgeben' abgeben!");
if(radbmx[playerid]!=0)return(SendClientMessage(playerid,ROT,"Du hast bereits ein Fahrzeug geliehen! Du kannst es mit '/abgeben' abgeben!");
SendClientMessage(playerid,GRUEN,"Viel Spaß mit deinem BMX!");
SetTimerEx("Radbmxtimer",600000,false,"i",playerid);
GivePlayerMoney(playerid,-48);
radbmx[playerid]=CreateVehicle(481,479.0388,-1501.8889,20.0479,263.1277,0,0,-1);
}
else
{
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
}
}Hi, weiß jemand was hier falsch ist? bekomme viele Errors wie diese hier:
C:\Users\Andi\Desktop\EastWestReallife\gamemodes\EastWest.pwn(1327) : error 001: expected token: ")", but found ";"
C:\Users\Andi\Desktop\EastWestReallife\gamemodes\EastWest.pwn(1328) : error 001: expected token: ";", but found "if" -
if (dialogid==DIALOG_FLEIHENBMX)
{
if(response)
{
if(radmou[playerid]!=0)return SendClientMessage(playerid,ROT,"Du hast bereits ein Fahrzeug geliehen! Du kannst es mit '/abgeben' abgeben!");
if(radbmx[playerid]!=0)return SendClientMessage(playerid,ROT,"Du hast bereits ein Fahrzeug geliehen! Du kannst es mit '/abgeben' abgeben!");
SendClientMessage(playerid,GRUEN,"Viel Spaß mit deinem BMX!");
SetTimerEx("Radbmxtimer",600000,false,"i",playerid);
GivePlayerMoney(playerid,-48);
radbmx[playerid]=CreateVehicle(481,479.0388,-1501.8889,20.0479,263.1277,0,0,-1);
}
else
{
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
}
}die Klammer ( nach dem return entfernen
-
lol war zu doof das zu sehen xD
Noch eine Frage, funktioniert das so, dass man 2 if Abfragen so wie hier in den Dialog macht?
if (dialogid==DIALOG_ABGEBEN)
{
if(response)
{
if(radmou[playerid]!=0)
{
KillTimer(Radmoutimer(playerid));
SendClientMessage(playerid,GOLD,"Du hast dein Fahrzeug abgegeben, jetzt kannst du wieder ein neues mieten!");
}
else
{
SendClientMessage(playerid,ROT,"Du hast kein Fahrzeug welches du abgeben kannst!");
}
if(radbmx[playerid]!=0)
{
KillTimer(Radbmxtimer(playerid));
SendClientMessage(playerid,GOLD,"Du hast dein Fahrzeug abgegeben, jetzt kannst du wieder ein neues mieten!");
}
else
{
SendClientMessage(playerid,ROT,"Du hast kein Fahrzeug welches du abgeben kannst!");
}
}
}Und wie könnte ich das machen dass abgefragt wird ob radmou oder radbmx ungleich 0 ist, und dann wenn radbmx ungleich 0 ist dass destroyt wird, wenn nicht das andre
-
@Skoam: Komisch.
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
hInfo[id][h_pickup] = -1;
}
if(hInfo[id][htext] != Text:-1)
{
Delete3DTextLabel(hInfo[id][htext]);
hInfo[id][htext] = Text3D:-1;
}
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
hInfo[id][htext]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10.0, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
hInfo[id][htext]=Create3DTextLabel(string, COLOR_BLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10.0, 0, 1);
}
return 1;
}
Einen Fehler habe ich gefunden, den hab ich auch selbst rein gemacht (bei der if-Abfrage den Tag vergessen).
Möglicherweise liegen die anderen beiden daran, dass du 10 anstatt 10.0 geschrieben hast. -
Wieso speichert er die Spieler bei einem GMX nicht ?
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
SetPlayerSkin(i, SpielerInfo[i][pSkin]);
SavePlayer(i);
}
return 1;
}Mit freundlichen Grüßen
-
Und wie könnte ich das machen dass abgefragt wird ob radmou oder radbmx ungleich 0 ist, und dann wenn radbmx ungleich 0 ist dass destroyt wird, wenn nicht das andre
Das kannst du so machen
if (dialogid==DIALOG_ABGEBEN)
{
if(response)
{
if(radmou[playerid]!=0)
{
KillTimer(Radmoutimer(playerid));
SendClientMessage(playerid,GOLD,"Du hast dein Fahrzeug abgegeben, jetzt kannst du wieder ein neues mieten!");
}
else
{
if(radbmx[playerid]!=0)
{
KillTimer(Radbmxtimer(playerid));
SendClientMessage(playerid,GOLD,"Du hast dein Fahrzeug abgegeben, jetzt kannst du wieder ein neues mieten!");
}
else
{
SendClientMessage(playerid,ROT,"Du hast kein Fahrzeug welches du abgeben kannst!");
}
}
}
return 1;
}oder die kurz variante
if (dialogid==DIALOG_ABGEBEN)
{
if((radmou[playerid] + radbmx[playerid]) == 0)return SendClientMessage(playerid,ROT,"Du hast kein Fahrzeug welches du abgeben kannst!");
radbmx[playerid] && KillTimer(Radbmxtimer(playerid)) || KillTimer(Radmoutimer(playerid));
return SendClientMessage(playerid,GOLD,"Du hast dein Fahrzeug abgegeben, jetzt kannst du wieder ein neues mieten!");
} -
2 kleine Fragen hätte ich noch, was bedeutet das + ?
Und wie funktioniert dass hier? radbmx[playerid] && KillTimer(Radbmxtimer(playerid)) || KillTimer(Radmoutimer(playerid));
Würde ja bedeuten radbmx UND Killtimer von Radbmx ODER Killtimer RadmouDann würde man ja das radmou gar nicht abfragen
-
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_function_query(mysqlconnect, query, false, "", "");
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}Wie wird so ein return des Wertes in einem MySQL Plugin R7 gemacht, da mysql_fetch_int nicht mehr existiert seit der R7.
-
2 kleine Fragen hätte ich noch, was bedeutet das + ?
Und wie funktioniert dass hier? radbmx[playerid] && KillTimer(Radbmxtimer(playerid)) || KillTimer(Radmoutimer(playerid));
Würde ja bedeuten radbmx UND Killtimer von Radbmx ODER Killtimer RadmouDann würde man ja das radmou gar nicht abfragen
Das + bedeutet das du die zwei werte addierst sollte radmou[playerid] und radbmx[playerid] zusammen 0 ergibt kann man sich sicher sein das keiner der beiden variablen einen wert zugewiesen bekommen hat.
radbmx[playerid] && KillTimer(Radbmxtimer(playerid)) || KillTimer(Radmoutimer(playerid));
Man kann Abfragen vereinfachen durch logische Operatoren, es ist zwar ungewöhnlich kann man jedoch machen.
Würde vom Syntax so aussehen:(Bedingung) && Wird ausgeführt, wenn die Bedingung Wahr ist
Wird ausgeführt, wenn die Bedingung nicht war ist.Es ist quasi die Kurzform davon:
if(radbmx[playerid] )
{
KillTimer(Radbmxtimer(playerid));
}
else
{
KillTimer(Radmoutimer(playerid));
}|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@CHAOS346
Dies ist nicht mehr möglich.
Tutorials :
Normal:
MySQL R38 - Simples Anmeldung´s System
ORM:
http://gta-sa-mp.de/forum/3-sa…ials/1424-das-orm-system/Dokumentation:
http://wiki.sa-mp.com/wiki/MySQL/R33 -
Okay, aber was ich noch nicht verstehe ist,
wieso ist radbmx[playerid] die Bedingung? da steht ja nur die VehicleID drin -
