Am besten mit einem Textdraw-Editor wie dem hier : http://forum.sa-mp.com/showthread.php?t=376758 oder einen anderen.
[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
-
-
danke, wirklich guter Editor!
-
Wie kann man pickups per "Enter" aktivierbar machen ?
Wie ist das zu verstehen? Das du zum Beispiel in ein Interior geportet wird.
Dazu benötigst du das Callback OnPlayerKeyStateChangehttp://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange
Wenn der Spieler jetzt enter drückt musst du die Positionen abgleichen, welche du ein einem Array hast
static const Float:PickupsCps[][6] = {
{0.0,0.0,0.0,16.0,15.0,522.0}},
{16.0,15.0,522.0,0.0,0.0,0.0},
}public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_SECONDARY_ATTACK )
{
for(new i; i != sizeof(PickupsCps); ++i)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,PickupsCps[0],PickupsCps[1],PickupsCps[2])return SetPlayerPos(playerid,PickupsCps[3],PickupsCps[4],PickupsCps[5]);
}
}
return 1;
}
Die Tasten findest du hier
http://wiki.sa-mp.com/wiki/KeysMal ne Frage,
Wenn ich ein plugin schreibe, und z.B. einen String an das Plugin übergebe und dort verändere,
wie kann ich dann den String vom Plugin wieder an den Gamemode zurück geben?Indem du den String als Funktionsparameter zurück gibst dazu musst du amx_GetAddr + amx_SetString nutzen.
was ist gemeint :
native GetString(string[]);Hätte hier jemand eine kleine Erklärung dazu?
Mit parallel ist gemeint das die Daten gleichzeitig verarbeitet werden sowas wird auch threaded genannt.
Nun zum Unterschied zwischen mysql_tquery und mysql_pquery laut dem wiki Eintrag soll mysql_pquery multi-threaded sein.
Es ist etwas verwirrent in den älteren Versionen war es so das mysql_tquery für threaded-queries genutzen wurde und mysql_function_query für
nicht threaded queries.Wenn du auf die Github seute schaust wirst du schon die R39 Version finden
https://github.com/pBlueG/SA-MP-MySQL/releases -
IPrototypeI:
Das mit dem Native weiß ich ja, ich wöllte nur wissen wie ich in c++ dann damit weiter arbeite da ich nicht so wirklich was gefunden habe dazu.
Und wie ich string dann wieder am gm weitergebe. könntest du mir da ein kleines beispiel schreiben?
-
Hallo,
ich habe derzeit ein Problem mit einem PlayerTextDraw.
Ich erstelle ein PlayerTextDraw mit einem Roten Hintergrund (BoxColor),
dass klappt soweit, mit PlayerTextDrawBoxColor möchte ich die Farbe zu grün ändern,
dass Problem hier ist nun, es wird nicht grün, nur wenn ich das TextDraw ausblende (hide) und wieder einblende (show).Voran kann das liegen?
-
Zeig mal bitte den Code her.
-
-
Er könnte es auch ohne einen Timer machen.
Farbe ändern -> Hidden -> Anzeigen
-
@[NGD]Manne:
Dafür braucht man doch wirklich kein Code
Aber hier:Code
Alles anzeigen// OnPlayerConnect CrackBox[2] = CreatePlayerTextDraw(playerid, 230.000000, 185.000000, "~n~~n~~n~~n~~n~"); // Schaltfläche 1 PlayerTextDrawBackgroundColor(playerid, CrackBox[2], 0xC75959FE); PlayerTextDrawFont(playerid, CrackBox[2], 1); PlayerTextDrawLetterSize(playerid, CrackBox[2], 0.500000, 1.000000); PlayerTextDrawColor(playerid, CrackBox[2], -1); PlayerTextDrawSetOutline(playerid, CrackBox[2], 0); PlayerTextDrawSetProportional(playerid, CrackBox[2], 1); PlayerTextDrawSetShadow(playerid, CrackBox[2], 0); PlayerTextDrawUseBox(playerid, CrackBox[2], 1); PlayerTextDrawBoxColor(playerid, CrackBox[2], 0x5EBC67FF); PlayerTextDrawTextSize(playerid, CrackBox[2], 290.000000, 125.000000); PlayerTextDrawSetSelectable(playerid, CrackBox[2], true); // In einem Befehl: PlayerTextDrawBoxColor(playerid, CrackBox[2], 0xC75959FE);Zum Timer,
war es nicht normal so, dass man es nicht hiden musste?
Mit SetString sollte es ja auch problemlos funktionieren. (Probier ich gleich mal aus).//Edit: Ich hide und Show es einfach wieder, man merkt es wirklich nicht.
Danke. -
Du musst, sobald du Änderungen am Textdraw vornimmst ihn 'reloaden'.
Du brauchst keinen Timer und ich verstehe auch nicht, was dein Problem damit ist. :pHier haste noch nen Makro:
#define UpdateTD(%0,%1) PlayerTextDrawHide(%0,%1),PlayerTextDrawShow(%0,%1)
//benutzung
UpdateTD(playerid,PlayerText:text);L.G.
-
Ich danke dir, habe ich schon im Script, mir ging es nur darum, dass
ich dachte, dass Pawn das selber macht, so hatte ich es in Erinnerung (denk ich zumindest :D) -
IPrototypeI:
Das mit dem Native weiß ich ja, ich wöllte nur wissen wie ich in c++ dann damit weiter arbeite da ich nicht so wirklich was gefunden habe dazu.
Und wie ich string dann wieder am gm weitergebe. könntest du mir da ein kleines beispiel schreiben?
Kannst ja mal das ganze Testen sollte normal so funktionieren
char *SaveString; //globale Variable
//native SetString(string[]);
static cell AMX_NATIVE_CALL SetString( AMX* amx, cell* params )
{
amx_StrParam(amx, params[1], SaveString);
return 1;
}
//native GetString(string[], len = sizeof(string));
static cell AMX_NATIVE_CALL GetString( AMX* amx, cell* params )
{
cell *dest = NULL;
amx_GetAddr(amx, params[1], &dest);
amx_SetString ( dest, SaveString, 0, 0, params[2]);
return 1;
}//edit mal so nebensächlich du kannst auch mal bestehende Plugins auseinander nehmen und versuchen diese zu verstehen
-
IPrototypeI:
Dann danke ich dir schonmal für die hilfe kennt man ja nich anders
Ich werde es dann mal ausprobieren.Naja mit den Plugins, ich wusste nicht so wirklich nach was ich suchen soll..
/e
Nochmal ne frage, gibt es eigendlich ne dokumentation darüber, welche funktionen man mit dem Plugin machen kann?
also für samp. -
Naja mit den Plugins, ich wusste nicht so wirklich nach was ich suchen soll..
och kom schon
Hier sind 303 Plugins releast mit Source, man brauchst sich nur die Funktionsparameter der Funktionen anschauen und überlegen ob hier etwas zurück gegeben
oder was gesetzt wird, danach kannst im Source nach der Funktion suchen.Bei manchen Projekten kannst du dir den Source auch auf Github anschauen.
http://forum.sa-mp.com/forumdisplay.php?f=18
Es gibt paar Tutorials dazu nur frage ich mich wie du das genau meinst mit dne Funktionen, meist du das nutzen von Samp Funktionen, dazu gibt es ja
Samp GDK
https://github.com/Zeex/sampgdkhttp://forum.sa-mp.com/showthread.php?t=295798
http://forum.sa-mp.com/showthread.php?t=253436Wenn du jetzt neue Funktionen implementieren möchtest, wie zum Beispiel bei diesem Plugin benötigst du Kenntnisse im reversen von Adressen.
http://forum.sa-mp.com/showthread.php?t=513499//edit wenn das dir nicht weiter geholfen hat , beschreib doch einfach mal was du genau machen möchtest
-
Hey,
habe hier nen Code:
new dir:dHandle = dir_open("./scriptfiles/Accounts/");
new item[40], type;while(dir_list(dHandle, item, type))
{
if(type == FM_FILE)
{
printf("%s / Adminlevel = %d",item,dInt(item,"Admin"));
if(dInt(item,"Geld") >= 0)printf("%s hat Geld!",item);
}
}
dir_close(dHandle);
Jedoch steht immer, dass ich Adminlevel 0 habe und es kommt auch nicht die Nachricht, dass ich Geld habe..
Ich habe das ganze unter OnGameModeInit gemacht, um mit der Funktion erstmal klar zukommen, jedoch klappts nicht
Wie gesagt, er zeigt an, dass ich nichts besitze, obwohl ichs besitze..
Woran liegt das? -
Gibt es einen reconnect command, damit man SAMP nicht neustarten muss ?
-
Gibt es einen reconnect command, damit man SAMP nicht neustarten muss ?
http://forum.sa-mp.com/showthread.php?t=253451RCON IP Ban => Player Timeout => RCON IP Unban
-
Ist es möglich, den Text eines List-Dialoges, jede auszulesen?
Das heißt:
//ID | TEXT
0 | Text01
1 | Text02
2 | Text03
3 | Text04Kann man den Text einer Zeile irgendwie auslesen?
-
Wenn du den Inhalt vom Dialog in einem String abspeicherst.
-
Wenn du den Inhalt vom Dialog in einem String abspeicherst.
Geht das nicht irgendwie anders?
Sonst muss ich mehr als 20 Strings dafür benutzen..
