Hog ist der neue Besitzer des Scriptes. Er ist nun dafür Verantwortlich , was mit dem Gamemode geschieht.
Beiträge von Leon_Dachser
-
-
Gute Abend!
Ich möchte hier mein altes Deatmatch Script verschenken, da ich aus zeitlichen Gründen leider sehr inaktiv in der SA:MP Szene geworden bin und dementsprechend auch keinen Server mehr betreibe. Ich stelle hier mein altes TDM Script einer Person zur Verfügung, welche Intresse und Spaß daran hat diesen GAMEMODE zu betreiben und ggf. zu verfeinern.Zum GAMEMODE:
Es handelt sich hierbei um ein Teamdeathmatchscript (~ 9.500 Zeilen) bei dem bereits die Grundlagen entwickelt worden sind, wie z.B. Tutorial, Shopsystem, Gangfightsystem, Hilfsübersichten, FUN Arenen oder das Admimsystem. Das Speichersystem ist auf dini ausgerichtet und das Script wurde versucht einigermaßen übersichtlich und mit Kommentaren gestaltet zu werden. Es wurde eine Spielwelt in Blueberry errichtet, um das Spielgeschehen auf einen kleineren, befüllteren Raum zu beschränken, in der sich die Army mit den Terroristen bekämpft. Die Army hat ihr Hauptquartier auf dem Fleischberggelände und die Terroristen haben ein gemapptes HQ in der Ballerei von Blueberry errichtet bekommen. Das Gangfightsystem besteht hier aus verschiedenen Gebieten, Imteriors, die von den Fraktionen erobert werden können. Eine Einnahme kann unter bestimmten Faktoren eingenommen werden, so dass der Einnehmende als Einnahmeleiter gesetzt wird und eine bestimmte Zeit überleben muss. Dieses System wurde komplett dynamisch aufgebaut, ebenfalls wie ein Autohaus, welches vom Punktesystem umfasst wird. Ich könnte noch einiges mehr auflisten, jedoch hab ich keine Lust weiter zu schreibe, da ich gerade vom Tablet aus schreibe (erklärt auch die Schreibfehler). Die Person, die Interesse hat bekommt natürlich das Script einmal erklärt und eine ausführliche Einweisung auf den GAMEMODE. Ich möchte es nur aus dem Grund einer Person aushändigen, in der Hoffnung, dass ich bald mal als User auf dem Server spielen kann ohne mich über die Serverleitung aufregen oder kümmern zu müssen. ERRORS oder Bugs existieren soweit nicht.Vielleicht findet sich ja jemand
MfG -
Wollte gerade sagen, A/D ist doch fast immer mit C-Bug...
-
Guten Abend,
ich bin auf der Suche nach einem Team Deathmatch Server auf denen die Lagcompensation aktiv ist, der CJ-Laufstyle aktiv ist und Waffen wie Combatshotgun, Sawn-Off verboten sind. Ebenso sollte CBug verboten sein und keine Cheater dort rumlaufen...Kennt jemand einen der diese Sachen erfüllt?
-
Danke für deinen hilfreichen und tollen Beitrag...
Ich habs schon selbst bei Wiki gelesen, die Objective lassen sich nur
durch respawnen entfernen. -
Guten Morgen liebe Community.
ich habe ein kleines Problem mit den Fahrzeugmarkern...Und zwar werden die Marker passend erstellt, jedoch entfernen sie sich nicht wenn ich
objective auf 0 setze...Weiß jemand woran es liegen kann?
Diese Marker sind gemeint:
/// Setzen
if(IsVehicleEmpty(v))
{
if(GetVehicleModel(v) == 468 || GetVehicleModel(v) == 471)
{
GetVehicleHealth(v, health);
if(health == 1000)
{
SetVehicleParamsForPlayer(v, playerid, 1, 0);
}
}
}/// Rücksetzen
for(new v=0; v<MAX_VEHICLES; v++)
{
if(GetVehicleModel(v) == 598 || GetVehicleModel(v) == 468 || GetVehicleModel(v) == 471)
{
SetVehicleParamsForPlayer(v, playerid, 0, 0);
}
}playerid ist in dem fällen immer der Selbe Spieler...
Ich hoffe es weiß jemand weiter...
MfG
-
Guten Abend liebe Community,
ich habe ein Problem:Und zwar wenn ich die Variabel HatAuto auf 0 habe, bekomme ich die Message, dass ich kein Auto habe usw...
Wenn ich jedoch die Variabel auf 1 oder höher Setze, bekomm ich die Meldung dass der Befehl nicht existiert und es
geschieht nichts.....Printf Anfanung und Mitte werden gesendet
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[128];
format(string, sizeof string, "System: Der Befehl '%s' existiert nicht. Benutze: '/help'", cmdtext);
return SendClientMessage(playerid, ARED, string);
}ocmd:mycar(playerid,params[])
{
if(sscanf(params,""))return SendClientMessage(playerid, GRAU,"Benutze: '/mycar'");
printf("Anfang /mycar");
if(SpielerInfo[playerid][HatAuto] == 0)return SendClientMessage(playerid, RED, "Du besitzt kein eigenes Auto!");
printf("Mitte /mycar");
new string[256];
if(SpielerInfo[playerid][Spawntaste] == 0)
{
....
}
if(SpielerInfo[playerid][Spawntaste] == 1)
{
......
}
ShowPlayerDialog(playerid,DG_Auto,DG_LIST,""Desing"Mein Auto:",string,"Auswählen", "Abbrechen");
printf("Ende /mycar");
return 1;
}Andere Befehle funktionieren einwand frei!
mfG
-
Funktioiert, Danke!
-
Guten Abend,
ich habe versucht ein System über anklickbare Textdraws zu erstellen,
jedoch kann ich den Textdraw einfach nicht anklicken... keine Ahnung woran es liegtHab es auch schon mit Box an versucht und TextDrawSize ist auch angepasst
new Text:AbbrechenTD;
AbbrechenTD = TextDrawCreate(274.000000, 106.000000, "Abbrechen");
TextDrawBackgroundColor(AbbrechenTD, 255);
TextDrawFont(AbbrechenTD, 1);
TextDrawLetterSize(AbbrechenTD, 0.529999, 1.700000);
TextDrawColor(AbbrechenTD, -16776961);
TextDrawSetOutline(AbbrechenTD, 0);
TextDrawSetProportional(AbbrechenTD, 1);
TextDrawSetShadow(AbbrechenTD, 1);
TextDrawTextSize(AbbrechenTD, 363.000000, 0.000000);
TextDrawSetSelectable(AbbrechenTD, 1);case DG_Autohaus:
{
if(response)
{TextDrawShowForPlayer(playerid, AbbrechenTD);
SelectTextDraw(playerid, COLOR_RED);
}
}public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
printf("1");
if(clickedid == AbbrechenTD)
{
printf("In Abbrechen");
}
printf("2");
return 1;
}Printf 1 und 2 kommen.... "In Abbrechen jedoch nicht
Woran kann es liegen?
MfG -
Die gebiete sind einfach nur Unsichtbar, mit den Koordinaten Abfragen usw läuft.
-
Die Gebiete sind nicht da. Wenn ich ein Gangfight starte passiert ebenfalls nichts
/edit1:
Habe mal Beim erstellen der Gebiete mal etwas geloggt und beim anzeigen der Gebiete....Bei OnPlayerSpawn entsteht gar nichts in den Logs und beim erstellen folgendes:
ZonenGeb[i] = CreateDynamicZone(BizzezGeb[i][ZoneMinX],BizzezGeb[i][ZoneMinY],BizzezGeb[i][ZoneMaxX],BizzezGeb[i][ZoneMaxX], KeinerGeb);
ZonenGeb[i] = CreateDynamicZone(BizzezGeb[i][ZoneMinX],BizzezGeb[i][ZoneMinY],BizzezGeb[i][ZoneMaxX],BizzezGeb[i][ZoneMaxX], KeinerGeb);*/
new string[256];
format(string,sizeof(string), "erstellt gebiete: %i ",ZonenGeb[i]);
printf(string);for(new i = 0; i < sizeof ZonenGeb; i++)
{
if(BizzezGeb[i][Fraktion] == 0)
{
SetDynamicZoneColor(ZonenGeb[i], KeinerGeb);
ShowDynamicZoneForPlayer(playerid, ZonenGeb[i]);
new string[256];
format(string,sizeof(string), "Zeigt gebiete: %i ",ZonenGeb[i]);
printf(string);}
/edit2: format
-
Guten Abend,
ich habe mich die Tage an ein Gangfightsystem gesetzt und
habe dort auch versucht Gangzonen bei Gangfight's blinken zu lassen, jedoch funktioniert nichts.Ich habe mir dann ein Include gesucht was helfen soll, allerdings klappt immer noch nichts
Include:
Code
Alles anzeigen[pwn] native GetDynamicZoneArea(zoneid, &Float:minx, &Float:miny, &Float:maxx, &Float:maxy); native SetDynamicZoneArea(zoneid, Float:minx, Float:miny, Float:maxx, Float:maxy); native CreateDynamicZone(Float:minx, Float:miny, Float:maxx, Float:maxy, color); native FlashDynamicZoneForPlayer(playerid, zoneid, color); native IsDynamicZoneFlashingForPlayer(playerid, zoneid); native IsDynamicZoneVisibleForPlayer(playerid, zoneid); native StopFlashDynamicZoneForPlayer(playerid, zoneid); native ShowDynamicZoneForPlayer(playerid, zoneid); native HideDynamicZoneForPlayer(playerid, zoneid); native IsPlayerInDynamicZone(playerid, zoneid); native FlashDynamicZoneForAll(zoneid, color); native SetDynamicZoneColor(zoneid, color); native StopFlashDynamicZoneForAll(zoneid); native ShowDynamicZoneForAll(zoneid); native HideDynamicZoneForAll(zoneid); native GetDynamicZoneColor(zoneid); native DestroyDynamicZone(zoneid); native zexist(zoneid); [/pwn]
Hier der Code:
enum BizInfoGeb
{
...
Float:ZoneMinX,
Float:ZoneMinY,
Float:ZoneMaxX,
Float:ZoneMaxY,
...
}
new BizzezGeb[10][BizInfoGeb] =
{
...
{"den Bauhof", "Keiner",-1,0, 93.2545,-189.8502,1.4844, 78.125,-205.078125,125.0,-148.4375, false},
{"die Hotels", "Keiner",-1,0, 183.1959,-107.7971,2.0234, 140.625,-140.625,226.5625,-82.03125, false}
...
};
new ZonenGeb[sizeof(BizzezGeb)], PickupsGeb[sizeof(BizzezGeb)];public OnGameModeInit()
{
for(new i = 0; i < sizeof BizzezGeb; i++)
{
...
ZonenGeb[i] = CreateDynamicZone(BizzezGeb[i][ZoneMinX],BizzezGeb[i][ZoneMinY],BizzezGeb[i][ZoneMaxX],BizzezGeb[i][ZoneMaxX], KeinerGeb);
ZonenGeb[i] = CreateDynamicZone(BizzezGeb[i][ZoneMinX],BizzezGeb[i][ZoneMinY],BizzezGeb[i][ZoneMaxX],BizzezGeb[i][ZoneMaxX], KeinerGeb);
}
return 1;
}public OnPlayerSpawn(playerid)
{
for(new i = 0; i < sizeof ZonenGeb; i++)
{
if(BizzezGeb[i][Fraktion] == 0)
{
SetDynamicZoneColor(ZonenGeb[i], KeinerGeb);
ShowDynamicZoneForPlayer(playerid, ZonenGeb[i]);
}
if(BizzezGeb[i][Fraktion] == 1) /// Army
{
SetDynamicZoneColor(ZonenGeb[i], ArmyGeb);
ShowDynamicZoneForPlayer(playerid, ZonenGeb[i]);
}
if(BizzezGeb[i][Fraktion] == 2) /// Terror
{
SetDynamicZoneColor(ZonenGeb[i], TerrorGeb);
ShowDynamicZoneForPlayer(playerid, ZonenGeb[i]);
}
for(new b = 0; b <= MAX_PLAYERS; b++)
{
if(BizzezGeb[i][Einnahmelaeuft] == true)
{
if(SpielerInfo[b][Einnahmeleiter] == 1)
{
if(gTeam[b] == 1) /// Army
{
FlashDynamicZoneForPlayer(playerid, ZonenGeb[i], ArmyGeb);
}
if(gTeam[b] == 2) /// Terror
{
FlashDynamicZoneForPlayer(playerid, ZonenGeb[i], TerrorGeb);
}
}
}
}
}
return 1;
}ocmd:einnehmen(playerid,params[])
{
new string[256];
if(sscanf(params,""))return SendClientMessage(playerid, RED,"Benutze: '/einnehmen'");
...
for(new i = 0; i < sizeof BizzezGeb; i++)
{
if(!IsPlayerInRangeOfPoint(playerid,1.5, BizzezGeb[i][EinnahmeX], BizzezGeb[i][EinnahmeY], BizzezGeb[i][EinnahmeZ])) continue;
if(gTeam[playerid] == 1) /// ARMY
{
...
FlashDynamicZoneForAll(ZonenGeb[i], ArmyGeb);
...
}
if(gTeam[playerid] == 2) /// TERRORISTEN
{
...
FlashDynamicZoneForAll(ZonenGeb[i], TerrorGeb);
...
}
return 1;
}
Kann mir jemand helfen? MfG/edit: Anders Formatiert
-
Funktioniert!
Vielen Dank
-
Es ist immer noch egal ob ich Linksklick, Rechtsklick, Enter oder F drücke....
Er führt es immer aus und die Nachricht erscheint trotzdem doppelt -
Ist leider immer noch so....
Mir fällt gerade auf wenn ich die linke oder rechte Maustaste drücke hat es die selbe funktion wie Enter??? -
SetTimer("Sekundencheck", 997, 1);
public Sekundencheck()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerNPC(i) && Eingeloggt[i]==1)
{
if(betreten[i] > 0)
{
betreten[i]--;
}
if(Betretentimer[i] > 0)
{
Betretentimer[i]--;
}
}
}
return 1;
} -
Guten Tag,
ich habe vor, dass man beim drücken der Taste 'Enter' die Gebäude verlassen/betreten kann.
Dies soll aber nur alle 7 Sekunden möglich sein...Ich weiß nicht warum, aber ich kriege die Nachrichten immer Doppelt gesendet, sprich wenn ich nur einmal Enter drücke bekomme ich folgende Nachrichten:
[13:09:26] Du kannst das Gebäude erst in 2 Sekunden wieder betreten!
[13:09:26] Du kannst das Gebäude erst in 2 Sekunden wieder betreten!woran kann es liegen? Hier der Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16 && GetPlayerVirtualWorld(playerid) == 0 || SpielerInfo[playerid][Arena] != 2)
{
if(IsPlayerInRangeOfPoint(playerid, 1.5,172.0901,-152.5857,1.5752)) // BAR
{
if(Betretentimer[playerid] > 0)
{
new string[256];
format(string,sizeof(string),"Du kannst das Gebäude erst in %d Sekunden wieder betreten!", Betretentimer[playerid]);
SendClientMessage(playerid, RED, string);
return 0;
}
SetPlayerPos(playerid, 501.8994140625,-67.7998046875,998.40002441406);
SetPlayerVirtualWorld(playerid, 1);
SetPlayerFacingAngle(playerid, 176.6204);
SetPlayerInterior(playerid, 11);
SetCameraBehindPlayer(playerid);
Betretentimer[playerid] = EnterExitTimer;
return 0;
}
if(IsPlayerInRangeOfPoint(playerid, 1.5,501.8994140625,-67.7998046875,998.40002441406)) // BAR EXIT
{
if(Betretentimer[playerid] > 0)
{
new string[256];
format(string,sizeof(string),"Du kannst das Gebäude erst in %d Sekunden wieder verlassen!", Betretentimer[playerid]);
SendClientMessage(playerid, RED, string);
return 0;
}
SetPlayerPos(playerid, 172.0901,-152.5857,1.5752);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerFacingAngle(playerid, 144.2905);
SetPlayerInterior(playerid, 0);
SetCameraBehindPlayer(playerid);
Betretentimer[playerid] = EnterExitTimer;
return 0;
}
if(IsPlayerInRangeOfPoint(playerid, 1.5,203.4211,-202.2478,1.5781)) // PIZZA
{
if(Betretentimer[playerid] > 0)
{
new string[256];
format(string,sizeof(string),"Du kannst das Gebäude erst in %d Sekunden wieder betreten!", Betretentimer[playerid]);
SendClientMessage(playerid, RED, string);
return 0;
}
SetPlayerPos(playerid, 372.39999390,-133.50000000,1001.00000000);
SetPlayerVirtualWorld(playerid, 1);
SetPlayerFacingAngle(playerid, 355.9161);
SetPlayerInterior(playerid, 5);
SetCameraBehindPlayer(playerid);
Betretentimer[playerid] = EnterExitTimer;
return 0;
}
if(IsPlayerInRangeOfPoint(playerid, 1.5,372.39999390,-133.50000000,1001.00000000)) // PIZZA EXIT
{
if(Betretentimer[playerid] > 0)
{
new string[256];
format(string,sizeof(string),"Du kannst das Gebäude erst in %d Sekunden wieder verlassen!", Betretentimer[playerid]);
SendClientMessage(playerid, RED, string);
return 0;
}
SetPlayerPos(playerid, 203.4211,-202.2478,1.5781);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerFacingAngle(playerid, 90.1741);
SetPlayerInterior(playerid, 0);
SetCameraBehindPlayer(playerid);
Betretentimer[playerid] = EnterExitTimer;
return 0;
}Ich hoffe mir kann jemand helfen.
MfG
-
API usw ist drin, bin nur zu dumm die Variabel auszulesen
-
Guten Abend liebe Community,
ich bin malwieder auf eure Hilfe angewiesen...Und zwar möchte ich durch Hilfe der UDF Datei Ingame die SkinID einer jeweiligen SpielerID ermitteln, allerdings
kriege ich keine SkinID als Variabel ausgelesen....Hier die Definiton von GetTargetPlayerSkinIdById
Code
Alles anzeigen; # - GetTargetPlayerSkinIdById(dwId) Zeigt den Skin, zu der angegebenen ID. GetTargetPlayerSkinIdById(dwId) { if(!checkHandles()) return -1 dwPED := GetPedById(dwId) dwAddr := dwPED + ADDR_CPED_SKINIDOFF SkinID := readMem(hGTA, dwAddr, 2, "byte") if(ErrorLevel) { ErrorLevel := ERROR_READ_MEMORY return -1 } ErrorLevel := ERROR_OK return SkinID }
Mein versuch die SkinID zu ermitteln: (58 war meine derzeitige PlayerID Ingame)
Quellcode
Code
Alles anzeigenz:: if(IsInChat()) { SendInput, {%A_Thishotkey%} return } test1 := GetTargetPlayerSkinIdById(58) AddChatMessage("{FF3800}[INFO]:{787878} SkinID1 {FF3800}" test1 "{787878} !") GetTargetPlayerSkinIdById(test2) AddChatMessage("{FF3800}[INFO]:{787878} SkinID2 {FF3800}" test2 "{787878} !") return
und so sieht die Ausgabe der Variabeln aus...:
Ich hoffe es kann mir jemand helfen!
MfG
-
Also ich bin 1.90 und fahr ne 600er Gixxer... Ist gut zu fahren, ab 3h wird es aber anstrengend