Das ist auch die Falsche reigen folge schau dir den Syntax an im sampwiki
Beiträge von IPrototypeI
-
-
Also wie schon genug gesagt solltest du den Header kleiner machen und weniger Bilder verwenden , da weniger auch mehr sein kann
das gilt auch für dein wallpaper, diese anreihung von dunklen Bildern sieht einfach im warsten sinne des wortes scheiße aus . -
doch bei windows schon dann hast die include
/*
SA-MP MySQL plugin R5
Copyright (c) 2008-2010, G-sTyLeZzZ
*/#if defined mysql_included
#endinput
#endif
#define mysql_included//Common error codes (http://dev.mysql.com/doc/refman/5.0/en/error-messages-(client|server).html)
#define ER_DBACCESS_DENIED_ERROR 1044
#define ER_ACCESS_DENIED_ERROR 1045
#define ER_UNKNOWN_TABLE 1109
#define ER_SYNTAX_ERROR 1149
#define CR_SERVER_GONE_ERROR 2006
#define CR_SERVER_LOST 2013
#define CR_COMMAND_OUT_OF_SYNC 2014
#define CR_SERVER_LOST_EXTENDED 2055//Native functions
#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
#define mysql_next_row() mysql_retrieve_row()
#define mysql_get_field(%1,%2) mysql_fetch_field_row(%2,%1)native mysql_affected_rows(connectionHandle = 1);
native mysql_close(connectionHandle = 1);
native mysql_connect(const host[],const user[],const database[],const password[]);
native mysql_debug(enable = 1);
native mysql_errno(connectionHandle = 1);
native mysql_fetch_int(connectionHandle = 1);
native mysql_fetch_field(number,dest[],connectionHandle = 1);
native mysql_fetch_field_row(string[],const fieldname[],connectionHandle = 1);
native mysql_fetch_float(&Float:result,connectionHandle = 1);
native mysql_fetch_row_format(string[],const delimiter[] = "|",connectionHandle = 1);
native mysql_field_count(connectionHandle = 1);
native mysql_free_result(connectionHandle = 1);
native mysql_get_charset(destination[],connectionHandle = 1);
native mysql_insert_id(connectionHandle = 1);
native mysql_num_rows(connectionHandle = 1);
native mysql_num_fields(connectionHandle = 1);
native mysql_ping(connectionHandle = 1);
native mysql_query(query[],resultid = (-1),extraid = (-1),connectionHandle = 1);
native mysql_query_callback(index,query[],callback[],extraid = (-1),connectionHandle = 1);
native mysql_real_escape_string(const source[],destination[],connectionHandle = 1);
native mysql_reconnect(connectionHandle = 1);
native mysql_reload(connectionHandle = 1);
native mysql_retrieve_row(connectionHandle = 1);
native mysql_set_charset(charset[],connectionHandle = 1);
native mysql_stat(const destination[],connectionHandle = 1);
native mysql_store_result(connectionHandle = 1);
native mysql_warning_count(connectionHandle = 1);//forward declarations
forward OnQueryFinish(query[], resultid, extraid, connectionHandle);
forward OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle); -
Da hast doch die fehler
[01:35:16] Server Plugins
[01:35:16] --------------
[01:35:16] Loading plugin: streamer
[01:35:16] Failed.
[01:35:16] Loading plugin: MapAndreas
[01:35:16] Failed.daraus resultiert das dein gamemode fehlerhaft geladen wird und das nix mehr gescheit angezeigt wird
mit debugen meine ich das du dir die crashdetect.dll /.so runter lädst und uns danach die Zeilen postest
welcher Fehler daraus resultiert.//edit jedoch sollte dann beim gamemod Unknow stehen wenn du den namen aus dem script fest legst
-
Dann entferne doch die betreffenden Zeilen in der include
public CheckIPFromList(playerid)
{
new playerip[15], read[32], TwoNumbersLength = 0, count = 0;
GetPlayerIp(playerid,playerip,sizeof(playerip));
for(new c=0; c<strlen(playerip); c++)
{
if(playerip[code=c] == '.')
{
count++;
}
if(count == 2)
{
TwoNumbersLength = c-1;
break;
}
}
new File:BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg", io_read);
if(BLACKLISTFILE)
{
while(fread(BLACKLISTFILE,read))
{
for(new x=0; x<strlen(read); x++)
{
if(read[x] == '\n')
{
read[x] = '\0';
}
}
if(!strcmp(read,playerip,false,TwoNumbersLength) || !strcmp(read,playerip,false))
{
fclose(BLACKLISTFILE);
return 1;
}
}
}
fclose(BLACKLISTFILE);
/*new playerip[16], read[32], ipstr[4][8], ip[2], ipstr2[4][8], ip2[2];GetPlayerIp(playerid,playerip,sizeof(playerip));
split(playerip,ipstr2,'.');
ip2[0] = strval(ipstr2[0]);
ip2[1] = strval(ipstr2[1]);new File:BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg", io_read);
if(BLACKLISTFILE)
{
while(fread(BLACKLISTFILE,read))
{
split(read,ipstr,'.');
ip[0] = strval(ipstr[0]);
ip[1] = strval(ipstr[1]);if(ip[0] == ip2[0] && ip[1] == ip2[1])
{
fclose(BLACKLISTFILE);
return 1;
}
}
}
fclose(BLACKLISTFILE);*/
return 0;
}und die abfrage , jedoch mal was anderes benutzt du diese Function oder lässt du die ip in die .cfg eintragen weil dann solltest du das im script umschreiben
-
steht ihrgend was brauchbaren in der Server.log / oder vllt mal Debugen
-
ahja schon mal genau hin geschaut beziehungsweise gelesen ein auschnitt
Zitat
Downloads:-
Windows: (requires .NET Framework)
-
Linux: (x86 (32-bit) version is cross compatible)
- R7: Ubuntu, x86 (compiled on Ubuntu)
- R6: CentOS, Debian 5, x86 (compiled on CentOS), x86 (compiled on Debian5)
- R5: CentOS, Debian 5, x86
- libmysqlclient.so.15 - Getting this error.. 'libmysqlclient.so.15: cannot open shared [..]' ? - Read this
-
Scripting:
- R7: a_mysql.inc, Sample Script (shows how to use the cache_*() functions)
- R5, R6: a_mysql.inc, Sample PAWN script
- Archive: PHP class, Modified sample script (by nemesis) (only >= R5 compatible)
-
Source: (Cross-Compatible)
- R7: Source code
- R6: Source code
- R5: Source code
-
Windows: (requires .NET Framework)
-
du kannst dir dabei ein forschleife sparen mit
SendClientMessageToAllund wie schon über mir beschrieben brauchst du eine for schleife
for (new i=0; i<160; i++) {SendClientMessageToAll(0," ");}
return 1; -
Also könntest du nochmal genau erläutern was du willst.
Willst du den Server über deine ip laufen lassen das andere auch drauf spielen können ? ( Dann musst du die Ports frischalten)
oder willst du das die Mysqldatenbank über deinen Server läuft
Dazu benötigst du entweder Xampp oder Wamp für ein Homenetzwerk, für Xampp
schau einfach mal in maddins mysql tutorial rein dort ist das auch ein bissle beschrieben zum installieren das meiste findest du dort direkt auf
den Seiten) -
Da solltest du erstmal die position abfragen wo der spieler steht , danach die waffen welche er hat und diese erstellen lassen auf dem Boden mit
CreateObject oder CreateDynamicObject jedoch wäre es gut wenn du den Objecten eine id zuweißt und eine variabel beispiel waffe1[playerid] etc..Grundsätlich benötigst du diese Funktionen :
GetPlayerPos,
GetPlayerWeaponData,
und
CreateObject oder CreateDynamicObjectum das ganze zu erstellen
bei dem command
solltest du mit
GetObjectPos oder wieder für den streamer GetDynamicObjectPos
benutzen und die objekte durch loopen
mit einer schleife und wenn der spieler in der nähe dieses objekts ist dann gibst du ihm die waffe und zerstörst
das objekt -
Ich habe gelesen der Syntax von "C" ähnelt Pawno mehr?
Ja habe ich und leider komme ich mit Videos nicht klar.Semtliche Commands ist vllt. etwas viel. Aber Script lehrer gibt es.
Ich bezweifle aber leider das irgendjemand dies kostenlos machen würde
wenn du das zu 100 Prozent können willst dann würde ich auch hier rein schauen
http://www.compuphase.com/pawn/pawn.htm
da PAWN nicht nur für Samp
Leider bin ich nicht der beste in Englisch
trozdem dankeAlso in meinem Link da geht es grundsätzlich um PAWN, dass hat fast nix mehr wirklich mit Samp zu tun außer der umgang mit AMX ( Abstracte Maschinen)
, was man je nach dem auch sehr gut einbinden kann dazu brauchst nur ins englische forum schauem umgang mit emit aber egal.Schau dir hier die Tutorials an und die beginner Tuts im wiki und sonst heißt es ja learning by doing um was neues zu erlernen
braucht man Zeit , dass geht nicht von Heut auf Morgen , wenn man keine Vorkenntnisse hat. -
wenn du das zu 100 Prozent können willst dann würde ich auch hier rein schauen
http://www.compuphase.com/pawn/pawn.htm
da PAWN nicht nur für Samp
-
Das ganze was du suchst wurde schon alles hier mal releast.
einfach nur suchen oder im Englischen Forum nach schauen da ist sowas gang und gebe.
-
Da hast du natürlich voll und ganz recht,
aber dennoch ist die Zeile nicht nötig da so MAX_PLAYERS Funktioniert und man die 500 lassen kann.
Da Normal die Server so wieso nicht gerade Ressourcen usw nehmen. (Wenn man gut Scriptet)Dir ist schon bewusst das alles Ressourcen frisst manches mehr manches weniger je nachdem wie man scriptet und solche Sachen zum beispiel beachtet.
und nur zur Info nochmal , auch wenn du die schnellsten Dinge benutzt ( Streamer , Login/Registersystem, Commandprozessor, etc....)
wenn du alles unnötig groß nimmst wird dein Script mehr Ressourcenfressen beispiel die Schleifen auf 500 lassen oder strings im übermaße zu nehmen.
Sowas spiegelt sich auch immer wieder in der Amx größe. Du kannst das ja an einem GF sehen wenn du MAX_PLAYERS neu definierst das schohnt so auch die Ressourcen
sieht man ja an der Amx größe -
Ich gebe dir 10 / 10 Punkten, dein System ist ein wirklich gutes
und schönes System / Script. Aber sehe auch das du einfach unnötiges machstwas soll das bitte bedeuten?
#undef MAX_PLAYERS
und direkt darunter
#define MAX_PLAYERS 50Nach meiner Sicht sind die zwei Zeilen unnötig.
Das sind keine unnötige Zeilen du kennst doch bestimmt eine for schleife welche man durch alle Spieler gehen lässt
dazu hast du zwei möglichkeiten entweder du gehst die Slots durch standart von samp 500 oder mit GetMaxPlayers();
daher bietet sich diese function sehr an , wenn man die schleife schneller machen will da 500 Einträge langsamer zu bewältigen sind als 50.
MAX_PLAYERS ist auch schneller als GetMaxPlayers(); jedoch nur wenn der Server voll ist sonst bietet sich eher GetMaxPlayers(); an.
am schnellsten währe es mit der foreach include für solche loops. -
um einen indivudellen tank zu haben brauchst du ein array in dem du die indivudellen tankfüllungen einträgst für jedes Fahrzeug
und dazu die entsprechende Funktion Beispiel:stock GetTankMax(vehmodel)
{
if(vehmodel >= 400 && vehmodel <= 611)
{
return TankMax[(vehmodel-400)];
}
return 100;
}solltest du in einem Fahrzeug, welches die id 400 - 611 besitzt wird der tank returnt also welchen du im array hast
wenn nicht ist dieser 100.
wie wird das erstellt array mit ein bezogen dazu ist der Codeschnipsel dareturn TankMax[(vehmodel-400)];
Die funktioniert so bist du im Auto mit der Id 400 also in einem Landstalkerwird 400 - 400 = 0 also wird der erste Dateneintrag genommen
da arrays immer bei 0 anfangensiehe zum beispiel
new TankMax[] = {
50,
60,
70,
etc...
90,
10
};und davon wird nun der erste wert genommen also TankMax[0] der Wert 0 dieser ist in dem falle 50
-
es gibt ein extra format für die datenbank besser gesagt für die Spalte diese nennt sich Timestap das sollte das richtige format sein
-
Wenn du nochmal dein Problem schilderst in ganzen deutschen Sätzen die zusammen einen Sinn ergeben kann man dir bestimmt helfen.
Ich hab deinen Text 3 mal durch gelesen und verstehe immer noch nicht was du willst
-
-