Guten Morgen,
ich bin dabei ein gangfight system zu schreiben aber sie werden nicht erstellt
Hir mein code:
#include <a_samp>
#include <mysql>
#include <ocmd>
#include <color>
#include <mysql>
#include <ocmd>
#include <color>
#define Function%0(%1) forward%0(%1); public%0(%1)
#define MySQLHost "localhost"
#define MySQLUser "root"
#define MySQLPass ""
#define MySQLData "samp_db"
#define MySQLUser "root"
#define MySQLPass ""
#define MySQLData "samp_db"
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#define GangZonen 400
enum gebiet {
gOwner,
Float:gMinX,
Float:gMinY,
Float:gMaxX,
Float:gMaxY,
// Float:flPOSX,
// Float:flPOSY,
Float:flPOSZ,
gOn,
gStand1,
gStand2,
gAngreifer,
Gebiet
};
new GangfightGebiete[GangZonen][gebiet];
gOwner,
Float:gMinX,
Float:gMinY,
Float:gMaxX,
Float:gMaxY,
// Float:flPOSX,
// Float:flPOSY,
Float:flPOSZ,
gOn,
gStand1,
gStand2,
gAngreifer,
Gebiet
};
new GangfightGebiete[GangZonen][gebiet];
new pLeader[MAX_PLAYERS];
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
Connect_To_Database();
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
LoadGangFightZonen();
SetTimer("UpdateGangFightZones",10000,1);
return 1;
}
{
// Don't use these lines if it's a filterscript
Connect_To_Database();
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
LoadGangFightZonen();
SetTimer("UpdateGangFightZones",10000,1);
return 1;
}
public OnGameModeExit()
{
return 1;
}
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
{
return 1;
}
public OnPlayerSpawn(playerid)
{
for(new i; i<sizeof(GangfightGebiete); i++)//Damit alle gebiete durchlaufen werden
{
new color;
if(GangfightGebiete[i][gOwner] == 5){color=0x000000B2;}
if(GangfightGebiete[i][gOwner] == 6){color=0xFFFFFFB2;}
GangZoneShowForPlayer(playerid, GangfightGebiete[i][Gebiet], color);
}
return 1;
}
{
for(new i; i<sizeof(GangfightGebiete); i++)//Damit alle gebiete durchlaufen werden
{
new color;
if(GangfightGebiete[i][gOwner] == 5){color=0x000000B2;}
if(GangfightGebiete[i][gOwner] == 6){color=0xFFFFFFB2;}
GangZoneShowForPlayer(playerid, GangfightGebiete[i][Gebiet], color);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
for(new i; i<sizeof(GangfightGebiete); i++)
{
GangZoneHideForPlayer(playerid,GangfightGebiete[i][Gebiet]);//Für wenn das Gebiet versteckt werden soll.... und welches Gebiet
}
return 1;
}
{
for(new i; i<sizeof(GangfightGebiete); i++)
{
GangZoneHideForPlayer(playerid,GangfightGebiete[i][Gebiet]);//Für wenn das Gebiet versteckt werden soll.... und welches Gebiet
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
{
return 1;
}
forward UpdateZones();
public UpdateZones()
{
for(new player; player < MAX_PLAYERS; player++)//Damit alle Spieler durchlaufen werden
{
for(new i; i<sizeof(GangfightGebiete); i++)//Damit alle Gebiete durchlaufen werden
{
GangZoneHideForPlayer(player,GangfightGebiete[i][Gebiet]);//Damit werden alle Gebiete für alle User versteckt
new color;//Erstellt eine neue Variable
if(GangfightGebiete[i][gOwner] == 5){color=0x000000B2;}//Fragt ab welcher Frak das Gebiet gehört
if(GangfightGebiete[i][gOwner] == 6){color=0xFFFFFFB2;}
GangZoneShowForPlayer(player, GangfightGebiete[i][Gebiet], color); //Zeigt die Zone f ür die Spieler wieder mit der neuen/alten Farbe
if(GangfightGebiete[i][gOn] == 1)//Fragt ab ob Gangfight in einem Gebiet läuft
{
if(GangfightGebiete[i][gAngreifer] == 5){color=0x000000B2;}//Fragt ab welche Frak das Gebiet angreift und setzt die Farbe
if(GangfightGebiete[i][gAngreifer] == 6){color=0xFFFFFFB2;}
GangZoneFlashForPlayer(player,GangfightGebiete[i][Gebiet],color);//"Flasht die Zone" in der Angreifer Farbe und Owner Farbe
}
}
}
}
public UpdateZones()
{
for(new player; player < MAX_PLAYERS; player++)//Damit alle Spieler durchlaufen werden
{
for(new i; i<sizeof(GangfightGebiete); i++)//Damit alle Gebiete durchlaufen werden
{
GangZoneHideForPlayer(player,GangfightGebiete[i][Gebiet]);//Damit werden alle Gebiete für alle User versteckt
new color;//Erstellt eine neue Variable
if(GangfightGebiete[i][gOwner] == 5){color=0x000000B2;}//Fragt ab welcher Frak das Gebiet gehört
if(GangfightGebiete[i][gOwner] == 6){color=0xFFFFFFB2;}
GangZoneShowForPlayer(player, GangfightGebiete[i][Gebiet], color); //Zeigt die Zone f ür die Spieler wieder mit der neuen/alten Farbe
if(GangfightGebiete[i][gOn] == 1)//Fragt ab ob Gangfight in einem Gebiet läuft
{
if(GangfightGebiete[i][gAngreifer] == 5){color=0x000000B2;}//Fragt ab welche Frak das Gebiet angreift und setzt die Farbe
if(GangfightGebiete[i][gAngreifer] == 6){color=0xFFFFFFB2;}
GangZoneFlashForPlayer(player,GangfightGebiete[i][Gebiet],color);//"Flasht die Zone" in der Angreifer Farbe und Owner Farbe
}
}
}
}
stock IsPlayerInGebiet(playerid)//Funktion bennen mit den jeweiligen Variablen oder auch Parameter genannt.
{
for(new i;i<sizeof(GangfightGebiete);i++)//Damit wieder nach allen Zonen geschaut wird.
{
new Float:GetX,Float:GetY,Float:GetZ;//Neue Float Variablen erstellen, damit wir dort die Positionen des Spielers speichern können
GetPlayerPos(playerid,GetX,GetY,GetZ);//Die Position des Spielers in den oben genannten Variablen speichern.
if(GangfightGebiete[i][gMinX] < GetX && GangfightGebiete[i][gMaxX] > GetX && GangfightGebiete[i][gMinY] < GetY && GangfightGebiete[i][gMaxY] > GetY)//Hier wird abgefragt ob die Spielerkooridnanten in dem Bereich der Gangzone sind.
{
return i;//Hier wird die Gebietsid returned
}
return -1;//Wenn der nirgendwo drin ist wird halt -1 returned damit wir einen unterschied haben
}
return -1;//Siehe oben
}
ocmd:team1(playerid,params[]) {
pLeader[playerid] = 6;
return 1;
}
ocmd:team(playerid,params[]) {
pLeader[playerid] = 5;
return 1;
}
ocmd:gw(playerid,params[])
{
#pragma unused params
if(pLeader[playerid] == 5||pLeader[playerid] == 6)//Hier wird abefragt welche Fraktion einen Gangfight starten darf
{
if(IsPlayerInGebiet(playerid) > -1)//Ob der Spieler in einem Gebiet ist.
{
new zone = IsPlayerInGebiet(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
if(GangfightGebiete[zone][gOn] == 1) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Das Gebiet wird schon Umkämpft!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
if(GangfightGebiete[zone][gOwner] == pLeader[playerid]) return SendClientMessage(playerid,COLOR_LIGHTBLUE," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
GangfightGebiete[zone][gAngreifer] = pLeader[playerid];//Hier wird der Angreifer gesetzt.
GangfightGebiete[zone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
SetTimerEx("GangFight",3600000,0,"i",zone); //Dies startet einen Timer der eine Stunde läuft , damit beenden wir den Gangifght. Die Zoneid wird mit übergeben
for(new i; i<MAX_PLAYERS; i++)//Damit jeder Spieler abgefragt wird
{
if(pLeader[playerid] == GangfightGebiete[zone][gOwner] /*|| PlayerInfo[i][pMember] == GangfightGebiete[zone][gOwner]*/)//Ob spieler oder Leader in dieser Fraktion ist
{
SendClientMessage(playerid,COLOR_RED,"Eines ihrer Gebiete wird angegriffen.");//Sendet eine Mitteilung
}
if(pLeader[playerid] == GangfightGebiete[zone][gAngreifer] /*||PlayerInfo[i][pMember] == GangfightGebiete[zone][gAngreifer]*/)//siehe oben
{
SendClientMessage(playerid,COLOR_RED,"Dein Leader hat ein Gangwar gestartet!");
}
}
}
}
return 1;
}
Function LoadGangFightZonen()
{
new id=0;
mysql_query( "SELECT * FROM `GangFightGebiete`");
mysql_store_result();
while(mysql_retrieve_row())//lauf durch alle zeilen durch
{
new tmpa[128];
mysql_fetch_field_row(tmpa, "Owner");
GangfightGebiete[id][gOwner] = strval(tmpa);
mysql_fetch_field_row(tmpa, "gMinX");
GangfightGebiete[id][gMinX] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMiniY");
GangfightGebiete[id][gMinY] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMaxX");
GangfightGebiete[id][gMaxX] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMaxY");
GangfightGebiete[id][gMaxY] = floatstr(tmpa);
GangfightGebiete[id][Gebiet] = GangZoneCreate(GangfightGebiete[id][gMinX],GangfightGebiete[id][gMinY],GangfightGebiete[id][gMaxX],GangfightGebiete[id][gMaxY]); // Hier wird eine Zone erstellt die in der Variable Gebiet gespeichert wird !
id++;
}
mysql_free_result();
return printf("* Es wurden %i Gangfight Gebiete geladen & erstellt. *", id);
}
{
for(new i;i<sizeof(GangfightGebiete);i++)//Damit wieder nach allen Zonen geschaut wird.
{
new Float:GetX,Float:GetY,Float:GetZ;//Neue Float Variablen erstellen, damit wir dort die Positionen des Spielers speichern können
GetPlayerPos(playerid,GetX,GetY,GetZ);//Die Position des Spielers in den oben genannten Variablen speichern.
if(GangfightGebiete[i][gMinX] < GetX && GangfightGebiete[i][gMaxX] > GetX && GangfightGebiete[i][gMinY] < GetY && GangfightGebiete[i][gMaxY] > GetY)//Hier wird abgefragt ob die Spielerkooridnanten in dem Bereich der Gangzone sind.
{
return i;//Hier wird die Gebietsid returned
}
return -1;//Wenn der nirgendwo drin ist wird halt -1 returned damit wir einen unterschied haben
}
return -1;//Siehe oben
}
ocmd:team1(playerid,params[]) {
pLeader[playerid] = 6;
return 1;
}
ocmd:team(playerid,params[]) {
pLeader[playerid] = 5;
return 1;
}
ocmd:gw(playerid,params[])
{
#pragma unused params
if(pLeader[playerid] == 5||pLeader[playerid] == 6)//Hier wird abefragt welche Fraktion einen Gangfight starten darf
{
if(IsPlayerInGebiet(playerid) > -1)//Ob der Spieler in einem Gebiet ist.
{
new zone = IsPlayerInGebiet(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
if(GangfightGebiete[zone][gOn] == 1) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Das Gebiet wird schon Umkämpft!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
if(GangfightGebiete[zone][gOwner] == pLeader[playerid]) return SendClientMessage(playerid,COLOR_LIGHTBLUE," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
GangfightGebiete[zone][gAngreifer] = pLeader[playerid];//Hier wird der Angreifer gesetzt.
GangfightGebiete[zone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
SetTimerEx("GangFight",3600000,0,"i",zone); //Dies startet einen Timer der eine Stunde läuft , damit beenden wir den Gangifght. Die Zoneid wird mit übergeben
for(new i; i<MAX_PLAYERS; i++)//Damit jeder Spieler abgefragt wird
{
if(pLeader[playerid] == GangfightGebiete[zone][gOwner] /*|| PlayerInfo[i][pMember] == GangfightGebiete[zone][gOwner]*/)//Ob spieler oder Leader in dieser Fraktion ist
{
SendClientMessage(playerid,COLOR_RED,"Eines ihrer Gebiete wird angegriffen.");//Sendet eine Mitteilung
}
if(pLeader[playerid] == GangfightGebiete[zone][gAngreifer] /*||PlayerInfo[i][pMember] == GangfightGebiete[zone][gAngreifer]*/)//siehe oben
{
SendClientMessage(playerid,COLOR_RED,"Dein Leader hat ein Gangwar gestartet!");
}
}
}
}
return 1;
}
Function LoadGangFightZonen()
{
new id=0;
mysql_query( "SELECT * FROM `GangFightGebiete`");
mysql_store_result();
while(mysql_retrieve_row())//lauf durch alle zeilen durch
{
new tmpa[128];
mysql_fetch_field_row(tmpa, "Owner");
GangfightGebiete[id][gOwner] = strval(tmpa);
mysql_fetch_field_row(tmpa, "gMinX");
GangfightGebiete[id][gMinX] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMiniY");
GangfightGebiete[id][gMinY] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMaxX");
GangfightGebiete[id][gMaxX] = floatstr(tmpa);
mysql_fetch_field_row(tmpa, "gMaxY");
GangfightGebiete[id][gMaxY] = floatstr(tmpa);
GangfightGebiete[id][Gebiet] = GangZoneCreate(GangfightGebiete[id][gMinX],GangfightGebiete[id][gMinY],GangfightGebiete[id][gMaxX],GangfightGebiete[id][gMaxY]); // Hier wird eine Zone erstellt die in der Variable Gebiet gespeichert wird !
id++;
}
mysql_free_result();
return printf("* Es wurden %i Gangfight Gebiete geladen & erstellt. *", id);
}
stock Connect_To_Database()
{
mysql_connect(MySQLHost, MySQLUser, MySQLData,MySQLPass);
if(mysql_ping() == 1)
{
print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
return true;
}
else
{
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
mysql_connect(MySQLHost, MySQLUser, MySQLData,MySQLPass);
if(mysql_ping() == 1)
{
print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
return true;
}
else
{
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Der Server wird nun beendet!");
SendRconCommand("exit");
return true;
}
}
}
{
mysql_connect(MySQLHost, MySQLUser, MySQLData,MySQLPass);
if(mysql_ping() == 1)
{
print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
return true;
}
else
{
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
mysql_connect(MySQLHost, MySQLUser, MySQLData,MySQLPass);
if(mysql_ping() == 1)
{
print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
return true;
}
else
{
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Der Server wird nun beendet!");
SendRconCommand("exit");
return true;
}
}
}
Ich bedanke mich bei jeden der mir helfen kann