Kann man Abfragen ob ein Spieler vor einer Wand/Haus steht ? Ich bin der Meinung, schonmal was davon gefunden zuhaben, aber aktuell find ich nichts mehr.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Kann man Abfragen ob ein Spieler vor einer Wand/Haus steht ? Ich bin der Meinung, schonmal was davon gefunden zuhaben, aber aktuell find ich nichts mehr.
Quasi vor Objekten die du nicht selber erstellt hast?
-
Ja, genau das.
-
Ja, das kannst du. Schau dir folgendes Video an und du kannst sehen das abgefragt wird ob man vor einer Wand etc steht.
Das alles ist möglich mit ColAndreas, ein Plugin entwickelt von [uL]Pottus, [uL]Slice und [uL]Chris. Einfach mal nach ColAndreas suchen und dann solltest du fündig werden.-Mobil
Externer Inhalt youtu.beInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Gibts einen Art Standard Wert für Text3D Variablen?
sobald man zB schreibt:new Text3D:value=0;
kriegt man nen Tag-mismatch
-
new Text3D:myLabel = Text3D:0;
Allerdings ist das standardmäßig sowieso 0, daher ändert die Angabe so erst mal nichts.
-
Top, Danke,
das war mir natürlich klar. Hatte bloß das Problem, dass ich etwas schöner schreiben kann, wenn ichs initialisieren kann. -
Gibt es unabhängig von dem Plugin noch eine Möglichkeit, rauszufinden ob man vor einer Wand steht ?
-
Ist es eigentlich egal wie lang eine Query ist? Zum mindest war das nach meiner Erfahrung in HeidiSQL scheiß egal, keine Ahnung ob da ne Regelung in pawn ist.
Hab nämlich vor eine etwas längere query zu machenUpdate blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = % blla bla id = %
Von dieser Länge ca.
-
Ich denke nicht, dass es eine Limitierung in der Länge gibt. Höchstens könnte die Zeile für PAWN zu lang werden, weshalb du den String in Teile formatieren müsstest (dann strcat und blabla, wie man es kennt)
-
Wie sollte ich das am besten anstellen? Hab noch nie mehrere strings in einer Zeile benutzt.
z.B.
new query1[256];
new query2[256];und dann später
mysql_pquery(handle, query1 query2);?
-
Du kombinierst mehrere Strings in einen. Folglich muss der String wo alle anderen kombiniert werden mindestens so groß sein wie alle anderen zusammen.
Also,
stringtotal[1024];
string1,[256],string2[256],string3[256],string4[256];
format(stringtotal,1024,%s%s%s%s,string1,string2,string3,string4);
mysql_pquery(handle,stringtotal); -
Ja, entweder via [wiki]format[/wiki] oder halt auch via [wiki]strcat[/wiki]
Codenew query[256]; format(query,sizeof(query),"SELECT * FROM `database` "); strcat(query, "WHERE `key` = 'value';"); mysql_query(query);
Gibt immer mehrere Wege zum Ziel. In dem Fall wäre aber wohl [wiki]format[/wiki] die klügere Variante.
-
Naja hat auch erstmal so geklappt (ohne Kombination, Platz hat ausgereicht), aber danke für die Tipps, werde ich mir für die Zukunft merken!
Edit: Neue Frage, wie mache ich sozusagen eine "playerid" für jeden Spieler der online ist?
-
Was meinst du damit?
-
Edit: Neue Frage, wie mache ich sozusagen eine "playerid" für jeden Spieler der online ist?
Jeder spieler bekommt automatisch eine ID( Identität) zugewiesen wenn er online kommt. (TAB)
-
-
for(new Everyone = 0; Everyone < MAX_PLAYERS; Everyone++)
{
SetPlayerSkin (Everyone, 0);
}
Richtig.
Hier hast du ein Beispiel das das ganze besser für dich verdeutlicht, so setzt du jedem Spieler den Skin 0. -
Habe daraus ein entmute system gemacht, alle 60 sekunden wird 1 Minute "Mute-Zeit" von dem Konto des Gemutetem gelöscht.
Allerdings, ob es funktioniert weiß ich nicht.Code
Alles anzeigenpublic OnGameModeInit() { SetTimer("unmute", 60000, false); return 1; } forward unmute(playerid); public unmute(playerid) { new query[256]; for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[playerid][pMute] > 0) { mysql_format(handle, query, sizeof(query), "UPDATE accounts SET mute = mute -1"); mysql_pquery(handle, query); SetTimer("unmute", 60000, false); return 1; } else { SetTimer("unmute", 60000, false); return 1; } return 1; } return 1; }
-
public OnGameModeInit()
{
SetTimer("unmute", 60000, true);
return 1;
}forward unmute();
public unmute()
{
new query[256];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][pMute] > 0)
{
mysql_format(handle, query, sizeof(query), "UPDATE accounts SET mute = mute -1 WHERE username = '%s'", DeineUsernameVariable[i]);
mysql_pquery(handle, query);
}
}
return 1;
}
Aber wozu willst du es in alle 60sec in deine Datenbank speichern?
Um es Ingame zu verwenden, brauchst du es bloß beim Disconnect abspeichern, während er eingeloggt ist, reicht die VariableOhne MySQL:
public OnGameModeInit()
{
SetTimer("unmute", 60000, true);
return 1;
}forward unmute();
public unmute()
{
new query[256];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][pMute] > 0)
{
PlayerInfo[i][pMute] --;
}
}
return 1;
}Sorry, bei mir werden die Tabs nicht mitkopiert
-