Normaler weiße wird dabei nix vertauscht solang wie man auch den string richtig setzt bei TextdrawSetString.
maximal kann es dabei dazu kommen das sich vllt die string etwas verfranzen, aber sowas kann auch nur selten vorkommen.
Normaler weiße wird dabei nix vertauscht solang wie man auch den string richtig setzt bei TextdrawSetString.
maximal kann es dabei dazu kommen das sich vllt die string etwas verfranzen, aber sowas kann auch nur selten vorkommen.
dieses file existiert schon im richtigen Ordner (verzeichniss)
DT_AntiCheat/config.ini
da sollte die datei nicht vorhanden sein so crasht der server.
steht auch im wiki drinne. bei io_read
Zitatio_read Reads the file, the file must exist, otherwise a crash will occur
Du kannst dein enum fBuylist erweitern um die fraktion die es kaufen dürfen.
so kannst du noch hier ein stock-funktion einbringen , wenn du willst.
Dies ist nur ein Beispiel wie es aussehen könnte.
So wird abgefragt ob die jeweilige id der fraktion entspricht , wenn ja so kann er es kaufen oder wenn der wert -255 vorhanden ist kann es jederkaufen außer
die Spieler die in der Fraktion 0 Leader sind beziehungsweise keine sind.
stock AbleToBuy(playerid, id)
{
if(PlayerInfo[playerid][pLeader] == FactionBuylist[id][fraktion] || FactionBuylist[id][fraktion] == -255 && PlayerInfo[playerid][pLeader] != 0)return 1;
return 0;
}
Ich hatte es dir ja schon in der Pn geschrieben , falls noch weitere sowas ähnliches suchen sollte poste ich einfach mal noch zwei beispiele.
Zum einen ist es ja fraglich ob bei connecten die ips verglichen werden die in dem file stehen .
Du kannst es auch umschreiben heir sind zwei stocks und testen :
stock banwrite(string[])
{
new File:file = fopen("ban.txt", io_append);
if(file){
fwrite(file, string);
fclose(file);
}else print("Die Datei existiert nicht im scriptfileordner");
return 1;
}
stock checkban(string[])
{
new File:file = fopen("ban.txt", io_read ), ips[20];
while(fread(file, ips)){
if(!strcmp(ips, string, false,strlen(string)))return 1;
}
return 0;
}
und wenn der spieler connectet einfach das ganze abfragen.
new ip[16];
GetPlayerIp(playerid,ip,16);
if(checkban(ip))return Kick(playerid);
und zum zweiten geht es auch über das rcon per SendRconCommand
new ip[16],string[25];
GetPlayerIp(playerid,ip,16);
format(string,25,"banip %s",ip);
SendRconCommand(string);
Es liegt weniger an deinem befehl sondern an der funktion
M_WriteIPToBlacklist(ip);
wird dort ihrgend wo etwas in einer Datei(.ini, .txt, .cfg, etc..) etwas rein geschrieben ?
Wenn es dem so sei dann lässt du das ganze auch mit den einträgen vergleichen, also wenn der spieler zum Server verbindet?
Sollte dies nicht so sein dan poste bitte die jeweiligen codeteile.
ich hoffe dir ist die verwendung eines returns klar.
Wenn nicht dan bitte ich dich das Tutorial vom Campell mal durch zu lesen über return´s.
Um das schnell zu demonstrieren erstelle dir kurz ein gamemode und füg bei OnGameModeInit eine if abfrage ab und darunter ein return 1;
und das setzen des Gamemodtextes setzt du unter die if abfrage
also als beispiel:
new test;
public OnGameModeInit()
{
if(test){
printf("Beispiel 1");
return 1;
}
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
printf("Beispiel 1");
return 1;
}
Das ergebniss einmal mit und ohne wird dir genug aussagen.
//edit wenn man vom Teufel spricht
den link zu dem tut findest du in der Signatur über mir
Alles anzeigenHallo, irgendwie wenn ich Ingam bei diesem Schritt angelange:
if(dialogid==DIALOG_SKINOBJEKT)
{
if(response==0)return 1;
if(response==1)
{
SetPlayerAttachedObject(playerid,GetPVarInt(playerid,"Slot"),strval(inputtext),GetPVarInt(playerid,"Skinbone"),0,0,0,0,0,0,0,0,0);
EditAttachedObject(playerid,GetPVarInt(playerid,"Slot"));
printf("Der Player hat folgende Attach Daten Angegeben: Slot: %d || Objekt: %d || Bone: %d ||",GetPVarInt(playerid,"Slot"),strval(inputtext),GetPVarInt(playerid,"Skinbone"));
}
}
Doch ich sehe dan kein Objekt ich kann nur etwas "Unsichtbares" Editieren Geprintet wird bei einem Test z.B Das:
Ich hoffe ihr wisst weiter, Schonmal Danke!
MFG Arendium
Bitte entferne deine unnötigen Optionalen Parameter.
Das problem hat den uhrsprung in den letzten drei parameter
Float:fScaleX, Float:fScaleY, Float:fScaleZ
//edit
bevor jemand noch sein Senf dazu geben will man kan die fscale werte auch auf 1 setzen
War das in der Include schon?
Mfg Nico
ja schon xD du brauchst nur die ganzen Funktionen an der richtigen Stelle deines Skriptes einfügen.
Ich hab mir den pastbin mal angeschaut und naja es erklärt sich von selbst.
Wie mach ich das Löschabar
Mfg Nico
ganz einfach dazu brauchst du ein timer der dann ausgeführt wird, wenn der Spieler zum Beispiel den Feuerwehrlöscher in der hand hat.
In deinem Timer brauchst du natürlich eine for-schleife die durch das array durch geht. Nun fehlt dazu noch eine kleine Funktion womit du
die position berechnest wo der spieler hinschaut und sollte dies der Fall oder besser gesagt in dem bereich ist so ziehst du das in meinem fall
zum beispiel leben ab oder erhöhst eine variabel damit er eine bestimmte zeit dort drauf aimen muss.
Je nach dem was mann will. Sollte zum beispiel die variabel einen bestimmten wert erreicht haben oder das Leben des Feuers 0 ist
so wird das object zerstört
Da kannst du ja die stock-funktion hier umschreiben
stock IsViewInRangeOfPoint(playerid,Float: r, Float: x, Float: y, Float: z){
new Float:GP[3], Float:GPCFV[3], Float: Output[3];
const Float: weite = 6.0; //4.0, 5.0
GetPlayerCameraPos(playerid, GP[0], GP[1], GP[2]);
GetPlayerCameraFrontVector(playerid, GPCFV[0], GPCFV[1], GPCFV[2]);
Output[0] = GP[0] + floatmul(GPCFV[0], weite);
Output[1] = GP[1] + floatmul(GPCFV[1], weite);
Output[2] = GP[2] + floatmul(GPCFV[2], weite);
// if(FKInfo[Aim_Feuerwehr] == 1)SetPlayerCheckpoint(playerid, Output[0], Output[1], Output[2], r);
if((Output[0] - x)*(Output[0] - x) + (Output[1] - y)*(Output[1] - y) <= r*r && Output[2] <= z) return 1;
else return 0;
}
Ich suche ein include da ich das FS leider Errorfrei nicht in meine GM rein bekomme
Hier bitte
[Include] Script-Feuer
jedoch ist sowas sehr simpel da du einer array die jeweiligen werte zuweisst(Position, Object, etc...) um sowas grob zu erläutern.
Beispiel:
stock AddFeuer(Float:x, Float:y, Float:z){
new slot = GetSlot(0);
if(slot == -1) return printf("Die Maximale Anzahl an Flamen ist erreicht");
UFeuer[slot][uexist] = 1;
UFeuer[slot][ufx] = x;
UFeuer[slot][ufy] = y;
UFeuer[slot][ufz] = z-2.5;
UFeuer[slot][ufleben] = 100;
UFeuer[slot][ufid] = CreateDynamicObject(18689, UFeuer[slot][ufx], UFeuer[slot][ufy], UFeuer[slot][ufz], 0.0, 0.0, 0.0);
}
Dieser "LivePlayerBug" ist meist das Ergebnis von übergehen der Limits bei den jetzigen Godfatheredits.
Es kann gut sein das du zum beispiel das Limit für Fraktionsfahrzeuge bei dem Fraktionsautohaussystem übergangen hast.
Es könnte jedoch auch an was anderem liegen , da ich bisher nur eine Fehlerquelle für den Bug kenne, da ein bekannter von mir diesen Bug auch mal hatte.
Alles anzeigen
stock Float:heron(x)
{
new Float:a = x;
new Float:b = 1;
for(new i=0; i<100; i++)
{
b = floatdiv((a+b),2);
a = floatdiv(a,b);
}
return a;
}
C:\Users\Narushi\Desktop\Scripting\PAWN\New-Evolution-Reallife\gamemodes\Heron.pwn(8) : warning 208: function with tag result used before definition, forcing reparse
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
zwei möglichkeiten hast du dazu entweder du entfernst die stock Deklaration und schreibst es als
Float:heron(x)
oder du machst eine public draus
forward Float:heron(x);
public Float:heron(x)
Guten Abend Community,
Ich habe ein Frage wie kann ich z.B Kronehit ( --->>> KLICK <<<-----)
Den Radio Sender einbinden ?? mit der Normalen URL gehts ja nicht
Da ich selbst ein kleiner Liebhaber von Kronehit bin , wenn ich dazu komme in den Urlaub zu fahren in die richtung Österreich
habe ich mal die url raus gesucht
hier bitte
PlayAudioStreamForPlayer(playerid, "http://onair.krone.at/kronehit.mp3.m3u");
mehr zur weiteren verwendung von PlayAudioStreamForPlayer findest du hier
http://wiki.sa-mp.com/wiki/PlayAudioStreamForPlayer
was passiert wenn sie verstößt gegen die license ?
Was nun mal bei einem Vertragsbruch passiert ^^.
So wie man den lieben Key kennt würde dies wahrscheinlich im schlimmsten zur Anzeige führen und
die nette Blacklistung der Server, welche dies verwenden würden von der Samp Masterlist.
So wie er es bei dem Plugin CNPC machen wollte.
//edit
lollipop:
Zitat-Wenn man /xy eingibt und es das nicht gibt kommt: "Die Funktion /xz existiert nicht "
Dies geht ja ohne hin schon
Zum Thema Tester:
Wenn wir die Closed Beta erreicht haben dann werden wir natürlich auf euch zu kommen.
Trotzdem danken wir schon für solch ein großes Interesse an diesem Projekt.
Aber wie es schon erwähnt wurde zum Fortschritt des Projektes. Da samp uns gerne immer wieder Steine in den
weg legt dauert dies dementsprechend etwas länger zu dem sind manche angefangenen Funktion letztendlich auch wieder
nicht umsetzbar da sie sonst gegen die samp license verstößen würde.
Alles anzeigenDu brauchst eine Liste mit den Spielern die online sind, in einem Array oder so.
Der Code von Prototype hat das Problem, dass in den PlayerIDs Lücken sein können,
wenn Spieler 7 gekickt wird oder so
new list[MAX_PLAYERS];
new x=0;
for(new i=0;i!=MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
list[++x]=i;
}
}
new id=list[random(x+1)];
//Mit id kannst du dann machen was du willst :)
EDIT: Ergänzung und Fehlerbehebung
Ja danke für deine korrektur wo habe ich so spät nur mein Kopf gelassen(wahrscheinlich ist der schon im Bett).
Das einzigste was man noch am code verändern könnte wäre die kompaktivität und so gesehen noch was an der schleife.
new i=0;
for(;i!=MAX_PLAYERS;i++)
Hört sich sehr gut an, werden auch weitere Videos folgen zum Thema NPC ´s und Änderbare Huds?
Ja man wird euch aufjedenfall auf dem laufenden halten mit Videos und natürlich gibt es auch noch den Blog. Ich werde
die Verlinkung zum Blog noch hinzufügen.
Ihr müsstet mit dem Breadfish Team sprechen, das auch closed Source releasen zu dürfen.
Ich bitte dich hier eine konstruktive Kritik zu äußern das ist hier immer noch eine Vorstellung und es ist noch lang nicht fertig dieses
Projekt ist so gesehen noch in Plannung.
Also bitte ich dich nochmal den Text aufmerksam zu lesen und dein Beitrag zu bearbeiten und gegebenfalls Kritik zu äußern oder
positive aspekte zu nennen.
__________________________________
@ BlackAce
Zum Thema CNPC Plugin das böse daran war das du die Spieleranzahl deines Server pushen konntest mit so genannten
Fakeusern. Dies gibts ja heut immer noch jedoch nicht als plugin sondern als externes Programm.
new player = random(MAX_PLAYERS);
das würde nix bringen er will ja ein zufälligen Spieler der online ist.
daher brauchst du eine variabel und eine schleife die variabel haust du dann in random rein.
ahja random gibt den wert wieder daher kannst du das ganze auch gleich weiter verwenden.
new x;
for(new i; i < MAX_PLAYERS; ++i){
if(IsPlayerConnected(i))x++;
}
// Bsp: für die weiter verwendung
SetPlayerTeam(random(x),2);
Kann nicht dein Ernst sein xD
Anthrax mann kan auch GetPlayerDistanceFromPoint verwenden ^^.
Zum thema die Geschwindigkeit zu berechnen , ich hatte es ja schon in dem einen thread gepostet
ganz normal vorzugehen und die Momentangeschwindigkeit zu ermitteln.