ne Wasserflasche =(
Beiträge von VitoHusky
-
-
Hallo Community
Ich arbeite momentan an einem Script, dass meinem UCP erlauben soll, via Teamspeak UID den User auf dem TS eine Servergruppe zu setzen.
So soweit so gut ich habe mir die Befehle angeschaut usw.Jetzt momentan versuche ich es so ersteinmal via dbid die servergruppe zu setzen.
Später möchte ich dann noch Sachn aus der Socket Ausgabe auslesen aber die Ausgabe bleibt immer gleich.
Die servergruppe wird auch nicht gesetzt.Hier mal mein PHP Script
PHP
Alles anzeigen<?php //config $address = '127.0.0.1'; $port = '10011'; $superuser = 'bla'; $passkey = 'pass'; $tsuid = $_GET['tsid']; echo "<br />"; echo "<br />"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Socket Create ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "<br /><b>Socket_Create</b> "; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket == true) { echo "Ok..."; } else { echo "Failed! <pre>" . socket_strerror(socket_last_error()) . "</pre>"; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Socket Bind ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "<br /><b>Socket_Bind </b> "; $temp = socket_bind($socket, "0.0.0.0"); if ( $temp ) { echo "Ok..."; } else { echo "Failed! <pre>".socket_strerror(socket_last_error())."</pre>"; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Socket Connect ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "<br /><b>Socket_Connect </b> "; $temp = socket_connect ( $socket , $address , $port ); if ( $temp ) { echo "Ok..."; } else { echo "Failed! <pre>".socket_strerror(socket_last_error())."</pre>"; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Login to Serverquery ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "<br /><b>Login to Teamspeak Serverquery </b> "; $in = "login $superuser $passkey"; $temp = socket_write ( $socket, $in, strlen($in) ); if ( $temp ) { echo "Ok..."; } else { echo "Failed! <pre>".socket_strerror(socket_last_error())."</pre>"; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Serverquery Nachricht ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "<br /><b>Setting Servergroup </b> "; $in = "servergroupaddclient sgid=7 cldbid=3"; $temp = socket_write ( $socket, $in, strlen($in) ); if ( $temp ) { echo "Ok..."; } else { echo "Failed! <pre>".socket_strerror(socket_last_error())."</pre>"; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -> Serverquery Ausgabe ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $read = array($socket); $write = array($socket); echo "<br /><b>Ausgabe Konsole: </b> "; echo "<br />"; $data = ''; while(($buf=@socket_read($socket, 1024, PHP_NORMAL_READ))) { $data .= $buf; if ($ret = socket_select($read, $write, $except = NULL, NULL) < 2) break; } echo $data; socket_close ($socket); ?>Die Ausgabe auf der Seite sieht wie folgt aus
CodeSocket_Create Ok... Socket_Bind Ok... Socket_Connect Ok... Login to Teamspeak Serverquery Ok... Setting Servergroup Ok... Ausgabe Konsole: TS3 Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help " for information on a specific command.Eventuell kann mir da ja jemand helfen...
-
Nur würde ich eben andere Variablen nehmen
Wenn er in der DM Arena ist eine Variable auf 1 oder sowas setzen
z.b.
/dm 1
-> Variable InDMArena[playierid] = 1
/dm 2
-> Variable InDMArena[playierid] = 2usw..
Dann onplayerspawn
if ( InDMArena[playerid] == 1 )
{
SetPlayerPos (zu dem Arena Spawn)
}
else if ( InDMArena[playerid] == 2 )
{
SetPlayerPos (zu dem Arena Spawn der Arena 2)
}usw
Mfg
-
Da wo es stehen soll
{
new tmpstr[128];
format(tmpstr, sizeof tmpstr, "%s %s: %s",GetRankName(playerid), GetPlayerNameEx(playerid), text);
SendClientMessage(playerid, -1, tmpstr);
}Das hier die stock Funktion
stock GetRankName(playerid)
{
new faction = (HIER DEINE FRAKTIONSABFRAGE)
new rank = HIER DEINE RANG ABFRAGE
new tmpstr[32];
switch ( faction )
{
case FRAK_LSPD:
{
switch ( rank )
{
case 1: format(tmpstr, sizeof tmpstr, "Azubi");
case 1: format(tmpstr, sizeof tmpstr, "Ausbilder");
case 1: format(tmpstr, sizeof tmpstr, "General");
default: format(tmpstr, sizeof tmpstr, "Falscher Rang");
}
}
}
return tmpstr;
}
usw
mfg -
Jop aber hab mich umentschieden xD
Naund?qq-pp ist vergleichbar günstig und hat einen besseren Support nur wollte ich die nicht "in den Dreck" ziehen
Den hoster den ich dort beschrieben habe
-> http://devastation-hosting.com -
Da möchte ich einmal http://qq-pp.de ansprechen
Diese FIrma ist schnell und hat guten Support -
Dann teste es mal mit dem Bare Script ;D
Wie gesagt wenn es dann nicht geht liegt es an deinem Gamemode
Dann schau mal wo du ConnectNPC nutzt dass du da "print("Test1");" ausgeben lässtMfG
-
Das wäre natürlich die andere Möglichkeit

Hatte vergessen das man removebuilding auch über die ganze Map machen kann (Weil wann benutz ich das mal :D)Ich denke ich werde dann irgendwie futter Stände dahin bauen mit NPCs

Danke für die späte / frühe und schnelle Hilfe
//close
-
Mal auf dem bare script versucht?
ist die samp-npc.exe im Server Ordner? -
ConnectNPC richtig gemacht?
Die pwn UND amx im npcmodes ordner?
Das recording im npcmodes/recordings Ordner? -
Hallo Community und einen fröhllichen guten Morgen

Also ich habe ein Problem bei meinem anti Healhack System
Es ist momentan so das eine Variable gespeichert wird wenn der server ihm die Health setzt.
Sobald es dadrüber ist -> Heallhack VerdachtNur ist mein Problem jetzt das GTA noch eigene Getränkeautomaten hat...
Diese kann ich ja nicht steuern und somit werden diese auch als Healhack erkanntEvtl. kennt ja jemand eine Lösung
Gruß
Dark.Shadow -
Debug doch einmal
schau wo er gekickt wirdz.b. Kriegt er skin?
Wird er gespawnt?
SetSpawninfo?
Wird die Login variable auf 1 gesetzt?Usw..
Debug ist alles(printf :D)
-
Hallo Community
ich habe momentan Probleme mit meinem Server
Ab und zu stürzt der Server ab
Nach einer unwilkürlichen Länge an Serverlaufzeithier die Log (mit crashdetect.so)
Code
Alles anzeigen[22:39:31] [join] Jayden_MordaZ has joined the server (9:84.138.124.160) [22:39:40] [debug] Server crashed while executing script.amx [22:39:40] [debug] AMX backtrace: [22:39:40] [debug] #0 001b513c in Account_Login (playerid=112, password[]=@0x00000061 "") at script.pwn:35065 [22:39:40] [debug] System backtrace: [22:39:40] [debug] #0 b68adf41 in _ZN10StackTraceC1EPv () from plugins/crashdetect.so [22:39:40] [debug] #1 b68a441f in _ZN11crashdetect20PrintSystemBacktraceEPv () from plugins/crashdetect.so [22:39:40] [debug] #2 b68a2963 in _ZN11crashdetect15SystemExceptionEPv () from plugins/crashdetect.so [22:39:40] [debug] #3 b68ad3c1 in ?? () from plugins/crashdetect.so [22:39:40] [debug] #4 b77ca600 in ?? () [22:39:40] [debug] #5 08096997 in ?? () from ./samp03svr [22:39:40] [debug] #6 080da3c2 in ?? () from ./samp03svr [22:39:40] [debug] #7 b68b2a33 in amx_Exec () from plugins/crashdetect.so [22:39:40] [debug] #8 b68a3622 in _ZN11crashdetect9DoAmxExecEPii () from plugins/crashdetect.so [22:39:40] [debug] #9 b68ab699 in ?? () from plugins/crashdetect.so [22:39:40] [debug] #10 080a5e9f in ?? () from ./samp03svr [22:39:40] [debug] #11 080b117a in ?? () from ./samp03svr [22:39:40] [debug] #12 080733b1 in ?? () from ./samp03svr [22:39:40] [debug] #13 080734a2 in ?? () from ./samp03svr [22:39:40] [debug] #14 0807d2b0 in ?? () from ./samp03svr [22:39:40] [debug] #15 080ad426 in ?? () from ./samp03svr [22:39:40] [debug] #16 080ad652 in ?? () from ./samp03svr [22:39:40] [debug] #17 080a8fb3 in ?? () from ./samp03svr [22:39:40] [debug] #18 b7536ca6 in __libc_start_main () from /lib32/libc.so.6 [22:39:40] [debug] #19 0804b491 in ?? () from ./samp03svrAccount_Login Funktion
stock Account_Login(playerid, password[])
{
new Query[128];
mysql_real_escape_string(SpielerName(playerid), SpielerName(playerid));
format(Query, sizeof(Query), "SELECT * FROM accounts WHERE Name = '%s' AND Passwort = sha1('%s')", SpielerName(playerid), password);
mysql_query(Query);
mysql_store_result();
if ( mysql_num_rows() != 0 )
{
gPlayerLogged[playerid] = 1;
pInfo[playerid][pCash] = 0;
new string[128], tmpstr[128];
Account_Load(playerid);
ResetPlayerMoney(playerid);
SpawnPlayer(playerid);GivePlayerMoney(playerid,pInfo[playerid][pCash]);
SetPlayerSkin(playerid, pInfo[playerid][pModel]);
SetPlayerColor(playerid,0xFFFFFF00);
SetPlayerFightingStyle(playerid, pInfo[playerid][pFightStyle]);format(string, sizeof(string), "Erfolgreich eingeloggt, Willkommen %s",SpielerName(playerid));
SendClientMessage(playerid, COLOR_GREEN,string);
printf("%s hat sich eingeloggt.",SpielerName(playerid));
if(pInfo[playerid][pDonateRank] == 1)
{
SendClientMessage(playerid, COLOR_GREEN,"Du bist Premium Nutzer.");
}
if(pInfo[playerid][pDonateRank] == 2)
{
if(pInfo[playerid][pDonateRankTime] < Get_Time())
{
SendClientMessage(playerid, COLOR_RED, "Dein Donator Rang ist abgelaufen!");
pInfo[playerid][pDonateRank] = 0;
if(pInfo[playerid][pfAcc] == 1) WBB_RemoveUserFromGroup(SpielerName(playerid),10);
}
else
{
SendClientMessage(playerid, COLOR_GREEN,"Du bist ein Donator. Danke das du den Server unterstützt!");
}
}
if (pInfo[playerid][pAdmin] > 0)
{
SendClientMessage(playerid, COLOR_WHITE,sprintf("Du hast dich als "CH_ORANGE"%s"CH_WHITE" eingeloggt!",GetARankName(pInfo[playerid][pAdmin])));
}
format(string, sizeof(string), "~w~Willkommen ~n~~y~ %s", SpielerName(playerid));
GameTextForPlayer(playerid, string, 5000, 1);
KHSperre[playerid] = 1;
SetTimerEx("KHSP",60000,0,"i",playerid);
/*if ( pInfo[playerid][pQuest] > 0 && pInfo[playerid][pQuest] <= LastQuest)
{
SendQuestMsg(playerid, "Du hast noch Quests offen! Nutze /quest");
}*/
mysql_SetInt("accounts", "Online",1, "Name", SpielerName(playerid));
HideLoginTextdraws(playerid);
format(tmpstr,sizeof tmpstr, "%s hat sich gerade eingeloggt", SpielerName(playerid));
AccountLog(tmpstr);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Das eingegebene Passwort war falsch!");
ShowPlayerDialog(playerid, DIALOG_Login, DIALOG_STYLE_PASSWORD, "Login!", "Willkommen zurück auf True Vision Roleplay.\n\nDu hast ein falsches Passwort eingegeben. Wenn dies nicht dein Account\nsein sollte, wähle bitte einen anderen Namen. Ansonsten versuche es erneut\n\nViel Spass weiterhin auf True Vision Roleplay wünscht dir das ganze Team!", "Login","Abbruch");
}
return 1;
}Es ist ein Linux Server Debian 64 Bit
Script ist ein Godfather zu 80% editiert
Läuft auf mysqldas letzte macht mich stutzig.. nur habe ich bei Google dazu nichts gefunden
ich hoffe jemand kennt den Fehler oder kann mir helfen...
Gruß
-
Richtig Virtual Box runter
Dann kannst du dir das Windows XP Image runterladen dort installieren
und dann (soweit ich weiß) kannst du den so sichern das wenn die 30 Tage vorbei sind, kannst du den wiederherstellen
Ansonsten illegal cracken oder eben (JA DAS MACHEN MENSCHEN) original kaufen
Gruß
-
Das Problem ist, das es etwa 100 Sachen sind die geladen werden müssen
(Quest System und so ein Quatsch)Deswegen habe ich es schon mit Absicht nicht mit sscanf auslesen lassen
jedes mal einzelnt selecten und dafür jedes mal einen neuen query starten?
Das ist wohl ressourcen fressender als nur einen zu machen und den dann auslesen zu haben
(Bestes Beispiel die Mysql Funktionen von maddin)//edit
Fehler nach langer zeit gefunden
ein wert war in der DB immer "NULL"
Demnach konnte er das irgendwie nicht laden
dieser wert wurde nich richtig gespeichert. Ist mir grade aufgefallen als ich das
Speichern des Accounts neu geschrieben habeDanke euch allen funktioniert nun :>
-
Nein so war es vorher (siehe oberen Post)
Das ist nur eine Funktion die von einer Funktion aufgerufen wird
Die neu aufgerufene Funktion lässt also die alte einfach abbrechen
Da hat das return nichts zu sagenWoran kann es denn sonst noch liegen?

//edit
Diese While Schleife ist der Grund
while(mysql_fetch_row_format(query,"|"))
{
Ich habe die entfernt also das garnichts geladen wird und schon funktioniert es
kann es daran liegen das ich nicht alle Felder auslesen lasse?!
Oder warum?Ohne diese While unter LoadPlayer geht LoginPlayer auch weiter

-
Du hast seinen Post gelesen oder?
"Wo soll ich das definieren"
Überforder ihn nichtMach als Abfrage "if(GetPlayerAdmin(playerid) == 0)
und die Funktion GANZ unten im ScriptGetPlayerAdmin(playerid)
{
return PlayerInfo[playerid][pAdmin];
}Gruß
-
whoa
.....Mach einfach ein Callback
Sowas wie GetPlayerAdmin....
Dein Server ist an oder?
... Respekt... -
Habe aus LoginPlayer nun LoadPlayer gemacht
das hatte ich vorher auch nur wie gesagt 4 Stunden lang viel rumprobiert und umgestellt und bla bla ;D
Ähm najaHabe da am ende noch ein return rein gemacht. Wie ich mir dachte war es sinnlos und es hat nichts gebracht
Demnach besteht das Problem mit demfolgenden Code immernochLoginplayer nun
pInfo[playerid][pCash] = 0;
new string[128], tmpstr[128];
SetCameraBehindPlayer(playerid);
print("Test1");
LoadPlayer(playerid);
print("Test2");
ResetPlayerMoney(playerid);GivePlayerMoney(playerid,pInfo[playerid][pCash]);
SetPlayerSkin(playerid, pInfo[playerid][pModel]);
Test 1 kommt... Test 2 nicht :xAm ende der Funktion loadplayer sieht es so aus
}
print("Ende Load");
return 1;
}
Ende Load wird auch ausgegeben -
Viel erfolg bei deinem eigenen server

Ganz einfach
in der M_Bot Include ne Abfrage machenif ( PlayerInfo[playerid][pAdmin] == 0 )
{
//ANTICHEAT ZEUGS
}