Und was willst du dann mit diesen anstellen? Ohne den Master-Server funktioniert das ganze sowieso nicht mehr.
Beiträge von root
-
-
Hier noch ein kurzes Beispiel (mit bisschen Beschreibung) hab grad bisschen zu tun.
HTML
Alles anzeigen<!DOCTYPE HTML> <html> <head> <title> Enterpage </title> <script> function getTimeRemaining(endtime) { //Berechnet die Verbleibende Zeit bis zur Endzeit var t = Date.parse(endtime) - Date.parse(new Date()); //Ein paar Zeit umrechnungen var seconds = Math.floor((t / 1000) % 60); var minutes = Math.floor((t / 1000 / 60) % 60); var hours = Math.floor((t / (1000 * 60 * 60)) % 24); var days = Math.floor(t / (1000 * 60 * 60 * 24)); //Gibt werte zurück return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds }; } function initializeClock(id, endtime) { var clock = document.getElementById(id); //Element Auswählen //Die <span> unten auslesen var daysSpan = clock.querySelector('.days'); var hoursSpan = clock.querySelector('.hours'); var minutesSpan = clock.querySelector('.minutes'); var secondsSpan = clock.querySelector('.seconds'); //Funktion die all Sekunde die Zeit aktualisiert function updateClock() { //Zeit von der Funktion oben hollen var t = getTimeRemaining(endtime); //Schreibt die errechnete Zeit in die spans daysSpan.innerHTML = t.days; hoursSpan.innerHTML = ('0' + t.hours).slice(-2); minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); //Wenn die Zeit kleiner oder 0 ist (also Zeit abgelaufen) dann beenden oder was auch immer du machen willst if (t.total <= 0) { clearInterval(timeinterval); } } //Funktion ausfrufen und timer setzen updateClock(); var timeinterval = setInterval(updateClock, 1000); } </script> <style> body { min-width:100%; min-height:100%; overflow:hidden; background-image: url("Background.jpg"); -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; text-align: center; font-family: sans-serif; font-weight: 100; } #clockdiv{ margin-top:30px; font-family: sans-serif; color: #fff; display: inline-block; font-weight: 100; text-align: center; font-size: 50px; } #clockdiv > div{ padding: 10px; border-radius: 3px; background: #FF0000; display: inline-block; } #clockdiv div > span{ padding: 15px; border-radius: 3px; background: #BF0000; display: inline-block; } .smalltext{ padding-top: 5px; font-size: 16px; } </style> </head> <body> <div id="clockdiv"> <div> <span class="days"></span> <div class="smalltext">Days</div> </div> <div> <span class="hours"></span> <div class="smalltext">Hours</div> </div> <div> <span class="minutes"></span> <div class="smalltext">Minutes</div> </div> <div> <span class="seconds"></span> <div class="smalltext">Seconds</div> </div> </div> <script> var deadline = new Date("October 20, 2016 22:00:00"); //Deadline setzen initializeClock('clockdiv', deadline); //funktion oben aufrufen und so die clock 'starten' </script> </body> </html>
-
Hab noch diesen alten Code hier rumliegen. Musst in anpassen an deine Namen etc.
JavaScript
Alles anzeigenfunction getTimeRemaining(endtime) { var t = Date.parse(endtime) - Date.parse(new Date()); var seconds = Math.floor((t / 1000) % 60); var minutes = Math.floor((t / 1000 / 60) % 60); var hours = Math.floor((t / (1000 * 60 * 60)) % 24); var days = Math.floor(t / (1000 * 60 * 60 * 24)); return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds }; } function initializeClock(id, endtime) { var clock = document.getElementById(id); var daysSpan = clock.querySelector('.days'); var hoursSpan = clock.querySelector('.hours'); var minutesSpan = clock.querySelector('.minutes'); var secondsSpan = clock.querySelector('.seconds'); function updateClock() { var t = getTimeRemaining(endtime); daysSpan.innerHTML = t.days; hoursSpan.innerHTML = ('0' + t.hours).slice(-2); minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); if (t.total <= 0) { clearInterval(timeinterval); } } updateClock(); var timeinterval = setInterval(updateClock, 1000); }
Zum Starten:
-
mach das return 1; aus der schleife raus.
Code
Alles anzeigenif(strcmp(strget(cmdtext,0),"/admins",true) == 0) { SendClientMessage(playerid,COLOR_GREEN,"Admins online"); for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPVarInt(playerid,"Adminlevel") > 0) { new name[MAX_PLAYER_NAME]; new msg[200]; GetPlayerName(i,name,sizeof(name)); format(msg,sizeof(msg),"- %s (Admin-Level: %i)",name, GetPVarInt(playerid,"Adminlevel")); SendClientMessage(playerid,COLOR_WHITE,msg); } } return 1; }
-
-
-
Unteranderem ist "savename" und "callname" in beiden Fällen in der query nur ein String und keine Variable. Solltest du anpassen, ist denke ich nicht die Idee.
"savename" ist ein String also musst du diesen in der Query auch als string angeben. Sprich:
Das gleiche bei Like da es dort auch ein string ist:
Und die solltest mit den Daten auch was machen, du setzt bis jetzt ja nur eine query ab
Außerdem will ich dich darauf hinweisen das du bei Insert deine Nachricht in 'message' schreibst und beim auslesen den 'body' ausliest
-
Hallo Zusammen,Wie im Titel schon gesagt suche ich einen Windows (V)Server.
Für was wird dieser Benötigt?
Der Server wird benötigt für die Entwicklung des SAMP Voice Plugins an welchem wir gerade Arbeiten.
Er ist dazu da das ganze Extern testen zu können und so Sync-Probleme etc. beheben zu können.Was sollte der Server bieten?
Der Server sollte eine gute Internet-Leitung bieten sowie genügend RAM.
Außerdem werden statt dem einem SAMP Port ein weiterer Benötigt. Heisst also zb 7777 für den SAMP Server und 7778 für das SAMP Voice Plugin.
Beide Ports müssen auch Fix bleiben da das Plugin momentan jedes mal neu Compiled werden muss um den Port zu ändern.Warum ein Windows Server?
Zurzeit Entwickle ich nur an der Windows Version des Plugins. Wenn das Plugin dann fertig gestellt (oder eventuell schon in der Open Beta) ist werde ich es für Linux Optimieren.
Aber zurzeit will ich nicht an Windows & Linux parallel arbeiten und daher wird zwingend ein Windows Server benötigt.Was kann ich bieten?
Derjenige der mir den Server zur Verfügung stellt darf mit seinen Freunden an der Closed Alpha (und alle anderen Betas etc.) des SAMP Voice Plugins teilnehmen.
Sollte heißen das er einer der ersten ist der das Plugin testen und so bei der Entwicklung mithelfen kann.Was ist SAMP Voice?
Einige von euch kennen sicher TFAR von ArmA3. SAMP Voice ist dasselbe nur für SAMP.
Zurzeit ist das Plugin am Anfang der Entwicklung und muss nun die ersten Test bestehen. Da dies Lokal nur bedingt möglich ist wird nun ein Server benötigt.Das Plugin befindet sich am Anfang der Entwicklung und hat bis jetzt den Basic Voice Sync über TeamSpeak.
Heist also das Unabhängig von ob oder nicht im Auto die Lautstärke immer gleich ist. Geplant ist natürlich dies in späteren Versionen noch einzubauen.Hier noch 2 Alpha Videos von heute:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Ich hoffe das jemand dazu bereit ist, mir einen Server bereit zu stellen und sich so an der Entwicklung des Plugins beteiligen will.
Freundliche Grüsse
TheBlueFireKing -
Also die Query oder den gesamten PAWN public?
Die Query wäre dann irgend soetwas (musst deine Tabellennamen ect eintragen)SELECT name FROM users WHERE name LIKE ("%s%")
-
Wenn du erreichen willst dass auch Wörter die "s" im Wort haben erkannt werden, dann ja.
mit "%s%" wird halt alles ausgegeben was ein "s" am Anfang, im Wort und / oder am Ende vom Wort hat. -
Das h steht für den Buchstaben h (captain obvious)
Das % ist ein Wildcard in SQL.
Es steht für 0 oder mehr Buchstaben. Also das was du willst.
Hier gibt es sonst noch weitere Infos zu SQL Wildcards. -
Wenn ich als Beispiel "Hans Müller" und "Harald Klaus" in der Datenbank stehen habe, ich ingame nur "H" angeben, wie kann ich mir dann alle Einträge anzeigen lassen, welche in der Spalte "Name" mit "h" anfangen ?
".... WHERE name LIKE("h%");"
Musst es hald noch anpassen
-
Mal ne Frage nebenbei: Ist es damit dann auch möglich den Klang räumlich zu gestalten? Also wenn jemand rechts neben mir steht, dass der Ton dann auch von rechts kommt?
Ich kann das schlecht einschätzen^^Ja wenn man es über TeamSpeak macht ist dies möglich da TeamSpeak 3D Sound unterstützt.
Das heißt mit ein paar Berechnungen sollte dies möglich sein.//Edit: Siehe bei Rechtsklick auf Channel => "3D Sound Konfigurieren"
-
Die andere Frage ist eher wie viele bereit wären so einen Client zu laden, man könnte oben genanntes auch ohne Teamspeak hinkriegen es gibt genug C/C++ lib's für z. B. OPUS was den aufwand um einiges vermindert.
Aber falls man Teamspeak verwenden möchte könnte man die Client Query dafür Verwenden. Ich hätte schon X Clients machen können, die Frage ist nur wie viele so etwas wiederum benutzen siehe SA-MP+ oder andere kleine Projekte, es wurde wohl viel gehypt aber am Ende haben es vielleicht mal ~5% von den Leuten die das Projekt gehypt haben benutzt.
Die Spieler im Teamspeak via. Teamspeak Connector zu moven ist imo. nicht zuverlässig genug um damit was ordentliches zu erstellen.
Das Plug-in von dem du Redest hab ich nie verwendet oder davon gehört aber es wird höchstwahrscheinlich die Client Query oder IPC benutzen o. direkt mit dem Server sprechen was IPC/Client Query unnötig machen.
Das ist eben die Frage.
Wer ist bereit sich (so wie ich es in Gedanken habe dies Umzusetzen) ein TeamSpeak Plugin zu Installieren.
Wenn ich einen Server machen würde mit so einem Plugin wäre ich auch für eine TeamSpeak pflicht.
Da stellt sich wieder die Frage wer Bock auf so etwas hat.
@[DT]midomen
Das TeamSpeak connect Verbindet zwar den Server mit dem TeamSpeak dadurch wird aber keinesfalls irgendetwas Voice Technisch geregelt.
Z.B wie bei TFAR wenn die Person weiter weg ist, ist sie leiser etc. -
Die Frage die sich mir als Entwickler hier vor allem nochmal stellt ist, wie groß ist die Nachfrage?
So ein Plugin ist nicht einmal kurz geschrieben.Wer würde es Benutzen?
Ist jeder dafür bereit TeamSpeak Pflicht zu haben?In meinen Augen ist so ein Plugin durchaus Realisierbar und dies ohne einen Client-Launcher ect. sondern lediglich mit einem TeamSpeak Plugin.
Aber bevor ich so eine Arbeit wieder Aufnehme würde ich gerne Wissen wer dies überhaupt nutzen würde.Mit Freundlichen Grüsse
TheBlueFireKing -
-
Hi, hab ein kleines "Problem". Ich möchte den Spieler Checkpoints anzeigen lassen, und das immer zufällig, mein Problem dabei ist das die immer nach der Reihenfolge nach erstellt werden, sobald ich sie betrete..
So sieht mein Script aktuell aus:
Die CP Spawns
new zaehler;new Float:RandomCheckPoints[][3] ={ {345.0795,2409.4045,16.4766}, // CP1 {303.6277,2452.1929,16.4766}, // CP2 {283.8078,2399.7253,16.4766}, // CP3 {237.8153,2414.4353,16.4829}, // CP4 {214.4529,2448.4434,16.4844}, // CP5 {188.6520,2402.8835,16.4844}, // CP6 {157.3420,2434.5330,16.4717}, // CP7 {116.9716,2391.2756,16.4844}, // CP8 {90.5075,2407.2466,16.4844}, // CP9 {104.7031,2468.0762,16.4766} // CP10 };Der Befehl
CMD:cpjail(playerid,params[]){ new pID, tmp[20], idx; tmp = strtok(params, idx); if(isnull(params)) return SendClientMessage(playerid,-1,"{FF0000}ERROR: /cpjail [ID]"); if(IsNumeric(tmp)) pID = strval(tmp); else pID = ReturnPlayerID(tmp); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"{FF0000}The Player is not online"); DisablePlayerCheckpoint(pID); SetPlayerPos(pID, 363.1419,2385.1494,17.0377); SetPlayerVirtualWorld(pID, 77); SetPlayerFacingAngle(pID, 57.9134); SetPlayerHealth(pID,99); SetPlayerCheckpoint(pID, RandomCheckPoints[zaehler][0], RandomCheckPoints[zaehler][1], RandomCheckPoints[zaehler][2],1.5); if(zaehler >= sizeof(RandomCheckPoints)) zaehler = 0; zaehler++; return 1;}
Public
public OnPlayerEnterCheckpoint(playerid){ DisablePlayerCheckpoint(playerid); if(zaehler >= sizeof(RandomCheckPoints)) zaehler = 0; SetPlayerCheckpoint(playerid, RandomCheckPoints[zaehler][0], RandomCheckPoints[zaehler][1], RandomCheckPoints[zaehler][2],1.5); zaehler++; SendClientMessage(playerid,-1,"Checkpoint entered"); return 1;}Das ist klar, da du den Zähler immer nur um 1 erhöhst.
Du musst das zb. so lösen: -
Hey wollte nmicht extra ein Thema aufmachen, aber kann mir wer hier helfen `
stock IsPlayerAnAdmin(playerid,rang){ if(GetPVarInt(playerid,"Adminlevel")>=rang) return 0;}
Bekomme ich folgende Errors
C:\Users\Raphael\Desktop\gm\gamemodes\Testmode.pwn(527) : warning 209: function "IsPlayerAnAdmin" should return a value
C:\Users\Raphael\Desktop\gm\gamemodes\Testmode.pwn(527) : error 075: input line too long (after substitutions)
C:\Users\Raphael\Desktop\gm\gamemodes\Testmode.pwn(529) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
Versuchs so:
-
So ein Plugin habe ich mal geplannt. Kam aber bisher nicht mehr dazu weiterzumachen auch Hauptsächlich weil mir die Lust an SAMP vergangen ist.
Vielleicht werde ich mich mal wieder daran setzen wenn Interesse besteht. -
Hast du die Boost C++ Libaries?
(Siehe Dependencies https://github.com/SAMPProjects/Open-SAMP-API)