Beitrag von Baduv ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: rausgefunden ().
Einer eine Ahnung, warum das nicht klappt?
#include "..\source\libraries\includes.pwn"
Struktur unter Gamemodes:
source -> libraries -> darin die includes.pwn
Einer eine Ahnung, warum das nicht klappt?
#include "\source\libraries\includes.pwn"
Struktur unter Gamemodes:
source -> libraries -> darin die includes.pwn
Wo genau ist der Ordner? Im includes Ordner?
Das erste \ ist unnötig, und du kannst einfach normale / verwenden.
Also so:
#include "source/libraries/includes.pwn"
Nein, im gamemodes Ordner.
Dann so:
#include "../gamemodes/source/libraries/includes.pwn"
Du musst die Datei aber zu .inc umbenennen, da man keine .pwn includen kann.
Dann so:
#include "../gamemodes/source/libraries/includes.pwn"
Du musst die Datei aber zu .inc umbenennen, da man keine .pwn includen kann.
Klappt trotzdem nicht. Btw, man kann .pwn verwenden, hatten wir damals bei Arcadia-Life auch.
Klappt trotzdem nicht. Btw, man kann .pwn verwenden, hatten wir damals bei Arcadia-Life auch.
Also ich habs bei mir so:
#include "../gamemodes/sources/includes"
Und das funktioniert.
Ich denke mal man kann nur .inc verwenden, weiß nicht wie du .pwn verwendest hast.
Hab es jetzt. Jetzt aber mal zu einer anderen Frage. Ich lagere wirklich alle Möglichkeiten aus dem Hauptgamemode aus, um diese auf einzelne Dateien zu verteilen, da mir dieser Style besser gefällt.
#include "../gamemodes/source/libraries/includes.pwn"//Alle Includes, die der Server verwendet
#include "../gamemodes/source/libraries/colors.pwn"//Alle SA:MP Color sowie HTML Color Codes
#include "../gamemodes/source/libraries/dialogs.pwn"//Alle Dialoge, die der Server verwendet
//Functions - (Funktionen)
#include "../gamemodes/source/functions/mysql.pwn"//Aufbau der MySQL Verbindung &' MySQL Verbindungsdaten
#include "../gamemodes/source/functions/settings.pwn" //Einstellungen, mit denen der Server hochgefahren wird
#include "../gamemodes/source/functions/setup.pwn" //Funktion, um den Server einzurichten
Sagen wir, ich möchte jetzt in der mysql.pwn die Gamemode Funktion OnGameModeInit ansprechen. Damals hatte ich es so geregelt, dass ich in der mysql.pwn einen forward erstelle, beispielweise MySQL_OnGameModeInIt(); und diese Funktion in den Hauptgamemode unter OnGameModeInit einbinde. Das gefällt mir aber nicht so.
Ist es möglich, die Funktion in der mysql.pwn so zu schreiben, dass ich keine Eintragung im Hauptgamemode vornehmen muss, damit diese Funktion beispielweise aufgerufen wird?
@Kaliber
@Jeffry
Ja, das ist möglich. Du musst die Funktion dafür hooken, ich faule Sau benutze dafür immer ein Tool:
https://forum.sa-mp.com/showthread.php?t=340149
Viel Erfolg.
LG
Hey, danke! Kannst du mir die Dateien mal hochladen, muss mir sonst dort einen Account erstellen.
Klar, siehe unten. ![]()
Datei: https://www.file-upload.net/do…MP_ALS_HOOKS0.3b.rar.html
Virustotal vom Link: https://www.virustotal.com/de/…2e64/analysis/1542558028/
Verstehe das noch nicht so ganz. Dann muss ich dennoch in den Hauptgamemode unter OnGameModeInit Code schreiben, oder?
Zumindest ist das mein Output.
//For more info on ALS Hooking check
//http://forum.sa-mp.com/showthread.php?t=85907
//--------------OnGameModeInit Hook-------------------
public OnGameModeInit()
{
//your OnGameModeInit pre code here
//function hook checks
if (funcidx("mysql_OnGameModeInit") != -1)
{
return CallLocalFunction("mysql_OnGameModeInit", "");
}
//your OnGameModeInit post code here
return 1;
}
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#define OnGameModeInit mysql_OnGameModeInit
forward mysql_OnGameModeInit();
Verstehe das noch nicht so ganz. Dann muss ich dennoch in den Hauptgamemode unter OnGameModeInit Code schreiben, oder?
Zumindest ist das mein Output.
//For more info on ALS Hooking check//http://forum.sa-mp.com/showthread.php?t=85907//--------------OnGameModeInit Hook-------------------public OnGameModeInit(){//your OnGameModeInit pre code here//function hook checksif (funcidx("mysql_OnGameModeInit") != -1){return CallLocalFunction("mysql_OnGameModeInit", "");}//your OnGameModeInit post code herereturn 1;}#if defined _ALS_OnGameModeInit#undef OnGameModeInit#else#define _ALS_OnGameModeInit#endif#define OnGameModeInit mysql_OnGameModeInitforward mysql_OnGameModeInit();
Nimm lieber y_hooks.
https://github.com/pawn-lang/YSI
Hi ich frage mich gerade ob es möglich wäre ein Dialog als Liste zu machen der jeden spieler mit einer bestimmten anforderung anzeigt
z.B. alle spieler in einem radius von 12 units um den ausführenden spieler herum in einer Liste, bestimmt geht das irgendwie mit einer format funktion und einer spieler schleife bin mir aber nicht sicher wie
bestimmt geht das irgendwie mit einer format funktion und einer spieler schleife bin mir aber nicht sicher wie
Ja richtig, mit diesen Funktionen macht man das ![]()
new string[20 * MAX_PLAYER_NAME]; //Maximal 20 Spieler, die angezeigt werden können
new name[MAX_PLAYER_NAME];
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!GetPlayerName(playerid,name,MAX_PLAYER_NAME) || IsPlayerNPC(i) || !IsPlayerInRangeOfPoint(i,12.0,x,y,z) || i==playerid) continue;
format(string,sizeof(string),"%s%s\n",string,name);
}
if(!string[0]) return SendClientMessage(playerid,-1,"Aktuell ist kein Spieler in deiner Nähe!");
ShowPlayerDialog(playerid,1337,DIALOG_STYLE_LIST,"Spieler in deiner Nähe",string,"Auswählen","Abbrechen");
Alles anzeigen
Wie könnte man es so ausbauen, das man dann zb mit dem Handeln könnte oder so ?
Bei OnDialogResponse den inputtext abfragen, und der inputtext ist dann der ausgewählte Spielername.
Dann könntest du diese Funktion verwenden um die playerid vom Spieler herauszufinden:
GetPlayerFromName(playername[])
{
foreach(new i : Player)
{
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
if(strcmp(playername2, playername, true, strlen(playername)) == 0) return i;
}
return INVALID_PLAYER_ID;
}
Danke hätte nicht gedacht dass es so einfach ist, hab mir schon gedacht vielleicht "%s\n aber nein so einfach kann es nicht sein" ![]()
Hey stehe etwas auf dem Schlauch ![]()
![]()
enum InteriorEnum
{
Float:enterX,
Float:enterY,
Float:enterZ,
Float:exitX,
Float:exitY,
Float:exitZ,
InteriorID,
InteriorVirtualWorld,
InteriorLabel[40]
}
new IntInt[MAX_INTERIORS][InteriorEnum]=
{
{1481.0892,-1771.5193,18.7958,390.7682,173.7354,1008.3828,3,0,"Arbeitsamt LS"},//Hier das Komma
{-2766.0854,375.5237,6.3347,390.7682,173.7354,1008.3828,3,1,"Arbeitsamt SF"},//Hier das Komma
//DM - Fraktionen
{2495.4299,-1690.7727,14.7656,2496.049804,-1695.238159,1014.742187,3,2,"Grove Street"},//Grove Street
{2494.0928,-1463.9749,24.0249,318.564971,1118.209960,1083.882812,5,3,"Ballas Base"},//Ballas
{2507.8247,-2020.4296,14.2101,2350.339843,-1181.649902,1027.976562,5,4,"Vagos Base"},//Vagos
{-2447.1069,522.6022,30.3193,2454.717041,-1700.871582,1013.515197,5,5,"xyz Base"},//xyz
{-1664.4521,1363.5939,9.8047,291.282989,310.031982,999.148437,2,6,"S.F Rifa Base"},//S.F Rifa
{-2719.5955,-318.8723,7.8438,964.106994,-53.205497,1001.124572,3,7,"Triaden Base"},//Triaden
{2597.4290,1900.2571,11.0312,-2640.762939,1406.682006,906.460937,3,8,"Yakuza Mafia"},//Yakuza
{2570.4993,2289.0300,11.0700,-2640.762939,1406.682006,906.460937,3,9,"Russen Mafia"},//Russen
{2173.8250,1403.3318,11.0625,-2640.762939,1406.682006,906.460937,3,10,"LCM"},//LCM
{1922.6592,742.3882,10.8203,2543.462646,-1308.379882,1026.728393,2,11,"Hitman Base"},//Hitman Base
//Staats - Fraktionen
{1525.2130,-1677.9341,5.8906,246.783996,63.900199,1003.64062,6,12,"LSPD"},//LSPD
{1172.4370,-1323.3219,15.4029,2319.714843,-14.838361,26.749565,0,13,"Sannis LS"},//Sannis LS
{919.0253,-1252.2047,16.2109,322.197998,302.497985,999.148437,5,14,"Oamt LS"},//Oamt LS
{1123.1027,-2037.0997,69.8937,1710.433715,-1669.379272,20.225049,18,15,"Regierung LS"},//Regierung LS
{-2655.0125,639.6108,14.4545,2319.714843,-14.838361,26.749565,0,16,"Sannis SF"},//Sannis SF
{-1606.2449,672.7736,-5.2422,246.375991,109.245994,1003.218750,10,17,"FBI"},//FBI
{-1946.2510,518.0675,35.1719,322.197998,302.497985,999.148437,5,18,"Oamt SF"},//Oamt SF
{-2649.6860,376.0897,6.1563,1710.433715,-1669.379272,20.225049,18,19,"Regierung SF"},//Regierung SF
{2268.0261,2448.7905,3.5313,288.745971,169.350997,1007.171875,3,20,"LVPD"},//LVPD
{2262.3103,2036.0692,10.8203,322.197998,302.497985,999.148437,5,21,"Oamt LV"},//Oamt LV
{2482.4448,1326.1035,10.8203,2319.714843,-14.838361,26.749565,0,22,"Sanni LV"},//Sanni LV
{2017.5769,1912.9623,12.3278,1710.433715,-1669.379272,20.225049,18,23,"Regierung LV"},//Regierung LV
{2516.8901,2447.5735,11.0313,246.783996,63.900199,1003.64062,6,24,"Swat Base"}//Swat Base
};
Alles anzeigen
Ich möchte natürlich das manche "Interiors" nur für "bestimmte" Fraktionen betrettbar sind.
Ist es falsch die Fraktionseingänge/Ausgänge mit in diese "Enum IntInt" zu schreiben, damit ich die Abfrage erstellen werden kann ? oder,
müssen diese mit in das Fraktionsenum ?
Später soll ja auch noch ein "Haus & Biz System" erstellt werden, welche ebenfalls "Interiors" besitzen sollen, ebenfalls "Unter Vorraussetzungen" nur betrettbar, für einzelne Personen.
Oder wo ist mein Denkfehler ?