Da bekommste Errors.
Hab auch schon alles andere versucht,
nichts klappt. Liegt es irgendwie an der Funktion oder
an den Variablen ?
Kann keiner helfen
Da bekommste Errors.
Hab auch schon alles andere versucht,
nichts klappt. Liegt es irgendwie an der Funktion oder
an den Variablen ?
Kann keiner helfen
Hallo,
Ich habe eine Frage: Und zwar wenn ich auf Weiter klicke,
wechselt er nur einmal den Skin, dann kann ich so oft auf Weiter
klicken wie ich will und es kommt immer wieder der gleiche Skin.
Das selbe gilt auch für den Zurück Textdraw. Das heißt ich kann nur zwischen
2 Skins auswählen, auf den 3. komme ich gar nicht und ich kann wie gesagt
nur einmal auf Weiter klicken und einmal auf Zurück, dann bleiben die Skins gleich.
Der Code
new Terrorskins[3][1] =
{
{220},
{221},
{222}
};
new LSPDskins[3][1] =
{
{265},
{266},
{267}
};
new Text:SkinauswahlWeiter;
new Text:SkinauswahlZurueck;
new Text:SkinauswahlFertig;
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
//Skinauswahl
if(clickedid == SkinauswahlWeiter)
{
// Zivilist
if(Spieler[playerid][g_TEAM] == 900)
{
if(GetPlayerSkin(playerid) == 0){ SetPlayerSkin(playerid,0);}
}
// Ls Polizei
if(Spieler[playerid][g_TEAM] == 901)
{
if(GetPlayerSkin(playerid) == LSPDskins[0][0]){ SetPlayerSkin(playerid,LSPDskins[1][0]);}
if(GetPlayerSkin(playerid) == LSPDskins[1][0]){ SetPlayerSkin(playerid,LSPDskins[2][0]);}
if(GetPlayerSkin(playerid) == LSPDskins[2][0]){ SetPlayerSkin(playerid,LSPDskins[0][0]);}
}
// Terroristen
if(Spieler[playerid][g_TEAM] == 902)
{
if(GetPlayerSkin(playerid) == Terrorskins[0][0]){ SetPlayerSkin(playerid,Terrorskins[1][0]);}
if(GetPlayerSkin(playerid) == Terrorskins[1][0]){ SetPlayerSkin(playerid,Terrorskins[2][0]);}
if(GetPlayerSkin(playerid) == Terrorskins[2][0]){ SetPlayerSkin(playerid,Terrorskins[0][0]);}
}
}
if(clickedid == SkinauswahlZurueck)
{
// Zivilist
if(Spieler[playerid][g_TEAM] == 900)
{
if(GetPlayerSkin(playerid) == 0){ SetPlayerSkin(playerid,0);}
}
// Ls Polizei
if(Spieler[playerid][g_TEAM] == 901)
{
if(GetPlayerSkin(playerid) == LSPDskins[2][0]){ SetPlayerSkin(playerid,LSPDskins[1][0]);}
if(GetPlayerSkin(playerid) == LSPDskins[1][0]){ SetPlayerSkin(playerid,LSPDskins[0][0]);}
if(GetPlayerSkin(playerid) == LSPDskins[0][0]){ SetPlayerSkin(playerid,LSPDskins[2][0]);}
}
// Terroristen
if(Spieler[playerid][g_TEAM] == 902)
{
if(GetPlayerSkin(playerid) == Terrorskins[2][0]){ SetPlayerSkin(playerid,Terrorskins[1][0]);}
if(GetPlayerSkin(playerid) == Terrorskins[1][0]){ SetPlayerSkin(playerid,Terrorskins[0][0]);}
if(GetPlayerSkin(playerid) == Terrorskins[0][0]){ SetPlayerSkin(playerid,Terrorskins[2][0]);}
}
}
if(clickedid == SkinauswahlFertig)
{
if(Spieler[playerid][inFraktionSkinauswahl] == 1)
{
Spieler[playerid][inFraktionSkinauswahl] = 0;
TogglePlayerControllable(playerid,1);
TextDrawHideForPlayer(playerid,SkinauswahlWeiter);
TextDrawHideForPlayer(playerid,SkinauswahlZurueck);
TextDrawHideForPlayer(playerid,SkinauswahlFertig);
SpawnPlayerToBase(playerid);
CancelSelectTextDraw(playerid);
}
else
{
TogglePlayerControllable(playerid,1);
TextDrawHideForPlayer(playerid,SkinauswahlWeiter);
TextDrawHideForPlayer(playerid,SkinauswahlZurueck);
TextDrawHideForPlayer(playerid,SkinauswahlFertig);
CancelSelectTextDraw(playerid);
SetCameraBehindPlayer(playerid);
}
}
return 1;
}
//////////////Skinauswahl
stock Skinauswahl(playerid)
{
// Zivilist
if(Spieler[playerid][g_TEAM] == 900) SetPlayerSkin(playerid,0);
// Ls Polizei
if(Spieler[playerid][g_TEAM] == 901) SetPlayerSkin(playerid,LSPDskins[0][0]);
// Terroristen
if(Spieler[playerid][g_TEAM] == 902) SetPlayerSkin(playerid,Terrorskins[0][0]);
SetPlayerPos(playerid,209.7163,-33.8716,1001.9297);
SetPlayerFacingAngle(playerid,144.5372);
SetPlayerInterior(playerid,1);
SetPlayerVirtualWorld(playerid,playerid);
SetPlayerCameraPos(playerid,206.3390045166,-37.773719787598,1003.9444580078);
SetPlayerCameraLookAt(playerid,209.7163,-33.8716,1001.9297);
TogglePlayerControllable(playerid,0);
TextDrawShowForPlayer(playerid,SkinauswahlWeiter);
TextDrawShowForPlayer(playerid,SkinauswahlZurueck);
TextDrawShowForPlayer(playerid,SkinauswahlFertig);
SelectTextDraw(playerid,0x505050FF);
return 1;
}
Hallo,
Ich habe ein Problem mit meinem Haussystem.
Und zwar will er einfach das Pickup und das 3DTextLabel
nicht erstellen. Die Nachricht "Haus ID %d erfolgreich geladen"
wenn ich den Server starte bringt er mir aber. Und die
dini Datein existieren auch. Warnings & Errors bekomme
ich keine.
OnGameModeInit()
for(new i = 0; i <= MAX_HAUS; i++)
{
HausLaden(i);
}
stock HausLaden(id)
{
new HausDatei[128];
new Besitzer[32];
new string[256];
format(HausDatei,sizeof(HausDatei),"/haus/%d.ini",id);
if(dini_Exists(HausDatei))
{
format(Besitzer,sizeof(Besitzer),"%s",dini_Get(HausDatei,"besitzer"));
Hausinfo[id][besitzer] = Besitzer;
Hausinfo[id][pickuppos_x] = dini_Float(HausDatei,"pickuppos_x");
Hausinfo[id][pickuppos_y] = dini_Float(HausDatei,"pickuppos_y");
Hausinfo[id][pickuppos_z] = dini_Float(HausDatei,"pickuppos_z");
Hausinfo[id][preis] = dini_Int(HausDatei,"preis");
Hausinfo[id][plevel] = dini_Int(HausDatei,"plevel");
Hausinfo[id][inuse] = dini_Int(HausDatei,"inuse");
HausPickup[id] = CreatePickup(1272,1,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z],0);
if(Hausinfo[id][inuse] == 0)
{
format(string,sizeof(string),"Dieses Haus steht zum Verkauf!\nPreis: %d",Hausinfo[id][preis]);
Hausinfo[id][lbl] = Create3DTextLabel(string,COLOR_HAUS,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z] + 3.0, 5.0,0 ,0);
}
if(Hausinfo[id][inuse] >= 1)
{
format(string,sizeof(string),"Besitzer: %s",Besitzer);
Hausinfo[id][lbl] = Create3DTextLabel(string,COLOR_HAUS,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z] + 3, 5.0,0 ,0);
}
printf("Haus ID %d erfolgreich geladen",id);
}
else
{
}
}
--------------------- HAT SICH ERLEDIGT ------------------
- Fehler entdeckt
Gott, ich bin so dumm xDD
Stimmt ;D
Vielen Dank, manchmal sieht man die eigenen Fehler echt nicht
Hallo,
Ich habe (wieder einmal -.-) ein Problem. Und zwar soll,
wenn man /wa ..... eingibt (script, siehe unten) die Meldung
"Hauptzentrale: %s hat %s %d Wanteds gegeben, Grund: %s**
für alle Cops kommen. Nehmen wir an das erste %s wird mit "SpielerXX"
belegt und das zweite %s mit "SpielerYY". Wenn ich es teste:
Anstatt -> "Hauptzentrale: SpielerXX hat SpielerYY %d Wanteds gegeben, Grund: %s**"
steht das -> "Hauptzentrale: SpielerXX hat SpielerXX %d Wanteds gegeben, Grund: %s**"
ocmd:wa(playerid,params[])
{
new pID,Anzahl;
new name[MAX_PLAYER_NAME],namePID[MAX_PLAYER_NAME];
new string[128], string2[128];
new Grund[128];
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(pID,namePID,sizeof(namePID));
if(Spieler[playerid][g_TEAM] == 901)
{
if(sscanf(params,"uds",pID,Anzahl,Grund)) return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /wa [PlayerID] [Anzahl] [Grund]");
{
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht Online!");
{
if(Anzahl < 1 || Anzahl > 6) return SendClientMessage(playerid,COLOR_GREY,"Du kannst nur Wanteds zwischen 1 und 6 vergeben!");
{
if(GetPlayerWantedLevel(pID) >= 6) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler hat bereits 6 Wanteds!");
{
format(string,sizeof(string),"**Hauptzentrale: %s hat %s %d Wanteds gegeben, Grund: %s**",name,namePID,Anzahl,Grund); // <- Hier das Problem
format(string2,sizeof(string2),"Verbrechen: Du hast von %s %d Wanteds bekommen, Grund: %s",name,Anzahl,Grund);
SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+Anzahl);
Spieler[pID][wantedgrund] = Grund;
Spieler[pID][wantedreporter] = name[playerid];
SendClientMessage(pID,COLOR_VERBRECHEN,string2);
for(new i=0;i <= GetMaxPlayers(); ++i)
{
if(Spieler[i][g_TEAM] == 901)
{
SendClientMessage(i,COLOR_POLIZEIFUNK,string);
return 1;
}
}
}
}
}
}
return 1;
}
return 1;
}
Ich bitte um Hilfe!
Danke,
TyP_s
Ok, hat sich erledigt, Lösung:
--> Lag doch am Ocmd!!
Neue include von omcd runtergeladen, ging!
Danke trotzdem an alle.
MFG
TyP_s
Ich habe nur diesen einen Warning.
Ja habs mal geändert, Ergebnis:
--> Hat sich nichts getan
@ Andy Ja aber warum sagt der mir das ?
Ich habs ja normal nirgendwo definiert,
das einziges wos vor kommt ist:
ocmd:getcar(playerid,params[])
ne die Variabel "getcar" ansich, habe ich nirgnes im script mit new definiert..
Der OCMD befehl steht bereits dazwischen
Kann es vlt sein das ich ne alte Verison oder so von Ocmd habe ?
Hallo,
wenn ich einen Ocmd befehl erstellen möchte und diesen i-wo
im Script rein packe (in meinem Fall über OnPlayerCommandText(...))
bekomm ich zum einen immer den Warning:
warning 203: symbol is never used: "getcar"
und wenn ich inGame den Befehl eingebe (hier /getcar ...)
kommt die Meldung:
SERVER: UNKNOWN COMMAND!
Hier die Zeilen:
ocmd:getcar(playerid,params[])
{
new carID,colorID1,colorID2;
new Float:carX,Float:carY,Float:carZ,Float:carA;
if(sscanf(params,"u",carID,colorID1,colorID2)) return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /getcar [carID] [colorID 1] [colorID 2]");
{
GetPlayerPos(playerid,carX,carY,carZ);
GetPlayerFacingAngle(playerid,carA);
CreateVehicle(carID,carX,carY+10,carZ,carA,colorID1,colorID2,0);
SendClientMessage(playerid,COLOR_GREY,"Du hast dir erfolgreich ein Admin Car gespawnt!");
}
return 1;
}
PS: Ist nur mal zum testen, da ich das dass erst mal mache!
Vielen Dank!
TyP_s
Danke für denn Tipp es mit dem stock zu machen, geht allerdings immer noch nicht
Hallo,
Ich habe ein Problem mit meinem Login/Registration system.
Und zwar will es mir die "Daten" eines Spielers nicht abspeichern,
wenn dieser disconnected. Errors werden mir keine angezeigt, ebenso
wie Warnings. Ich denke es ist eine Kleinigkeit, die ich allerdings nicht sehe -.-'.
Werft selbst ein Blick drauf:
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYERS],Account[128];
GetPlayerName(playerid,name,sizeof(name));
format(Account,sizeof(Account),"%s.txt",name);
if(dini_Isset(Account,"Passwort"))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration:","Bitte registriere dich nun mit einem Passwort!","Registrieren","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new name[MAX_PLAYERS], Account[128];
GetPlayerName(playerid, name, sizeof(name));
format(Account,sizeof(Account),"s.txt",name);
//Player[playerid][wanted] = GetPlayerWantedLevel(playerid);
//Player[playerid][skin] = GetPlayerSkin(playerid);
if(dini_Exists(Account) && Player[playerid][eingeloggt] == 1)
{
dini_IntSet(Account,"wanted",GetPlayerWantedLevel(playerid));
dini_IntSet(Account,"skin",GetPlayerSkin(playerid));
}
Player[playerid][wanted] = 0;
Player[playerid][skin] = 0;
Player[playerid][eingeloggt] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
new name[MAX_PLAYERS], Account[128];
GetPlayerName(playerid,name,sizeof(name));
format(Account,sizeof(Account),"%s.txt",name);
if(dini_Isset(Account,"wanted") && dini_Isset(Account,"skin"))
{
SetPlayerWantedLevel(playerid,Player[playerid][wanted]);
SetPlayerSkin(playerid,Player[playerid][skin]);
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new name[MAX_PLAYERS], Account[128];
GetPlayerName(playerid,name,sizeof(name));
format(Account,sizeof(Account),"%s.txt",name);
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
SendClientMessage(playerid,COLOR_RED,"Das Passwort ist zu kurz!");
}
if(strcmp(inputtext,dini_Get(Account,"Passwort")) == 0)
{
Player[playerid][wanted] = dini_Int(Account,"wanted");
Player[playerid][skin] = dini_Int(Account,"skin");
Player[playerid][eingeloggt] = 1;
SendClientMessage(playerid,COLOR_YELLOW,"Du hast dich erfolgreich eingeloggt!");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
SendClientMessage(playerid,COLOR_RED,"Das eingegebene Passwort war falsch!");
}
}
else
{
Kick(playerid);
}
}
if(dialogid == DIALOG_REG)
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration:","Bitte registriere dich nun mit einem Passwort!","Registrieren","Abbrechen");
SendClientMessage(playerid,COLOR_RED,"Das Passwort ist zu kurz!");
}
else
{
dini_Create(Account);
dini_Set(Account,"Passwort",inputtext);
dini_IntSet(Account,"wanted",0);
dini_IntSet(Account,"skin",26);
Player[playerid][eingeloggt] = 1;
SendClientMessage(playerid,COLOR_YELLOW,"Du hast dich erfolgreich registriert und bist nun eingeloggt!");
}
}
else
{
Kick(playerid);
}
}
return 1;
}
Die Daten die ich beim Registrieren unten im Dialog mit dini_IntSet... speichere, werden auch gespeichert, die
unter OnPlayerDisconnect allerdings nicht.
Danke schonmal im voraus falls ihr helfen könnt.
Ah Okay vielen dank dir,
Jetzt klappts
//682
SetTimerEx("Robtimer",60000,"i",playerid);
//1746
SetTimerEx("Robtimer",60000,"i",playerid);
//1739
new RobUhr;
Ahhh okay danke
Aber Beim Timer stimmt irgendwas nicht:
...(682) : error 035: argument type mismatch (argument 3)
...(1746) : error 035: argument type mismatch (argument 3)
...(1739) : warning 203: symbol is never used: "RobUhr"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
Danke für deine Antwort, aber ich weiß nicht wie ich die
Zeit jetzt abrufen soll, bzw. in einem Textdraw anzeigen soll.
Hallo,
Ich hab da eine Frage,
Vor ein paar Tagen habe ich einen Bankraub gescriptet.
Nun klappt auch alles so weit. Ich habe es so gescriptet das man
nach dem Bankraub erst 10 min untertauchen muss und dann das
Geld bekommt. Das habe ich natürlich mit einem Timer gemacht,
jetzt meine Frage: Gibt es eine Möglichkeit die Restzeit des Timers
anzeigen zu lassen, wenn man z.B. /Robzeit eingibt oder besser sogar
ein Texdraw rechts das 10min abzählt? Wenn ja könnt ihr mir zeigen,
wie man das grob scriptet?
MFG TyP_s
Ja ich hab die schon mal so createn lassen wenn der server starten und da sind sie da
Hallo,
ich habe ein Problem und zwar war ich am Bankraub scripten und
war so weit fertig, habe aber ein Problem entdeckt! Hier:
(Und nicht wundern, ich bin Anfänger ;D)
Ganz oben im Script:
forward Rob1(playerid);
forward Rob2();
new TresorTuer;
new Sprengstoff1;
new Sprengstoff2;
new inRob[MAX_PLAYERS];
Dann unter public OnPlayerConnect(playerid)
public OnPlayerConnect(playerid)
{
inRob[playerid] = 0;
return 1;
}
Dann public OnPlayerCommandText(playerid, cmdtext[]):
public OnPlayerCommandText(playerid, cmdtext[])
{
//Bankraub
if(strcmp(cmdtext, "/sprengen", true) == 0)
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1335.4388427734, -978.82757568359, -93.163429260254))
if(inRob[playerid] == 0)
{
SetTimer("Rob1", 15000, 0);
SendClientMessage(playerid, COLOR_GREEN, "Du hast Sprengstoff am Tresor platziert, am besten");
SendClientMessage(playerid, COLOR_GREEN, "suchst du dir Deckung bevor er hoch geht!");
Sprengstoff1 = CreateObject(1654, 1335.2890625, -978.5400390625, -92.824188232422, 0, 0, 261.14501953125, 100);
Sprengstoff2 = CreateObject(1654, 1335.1728515625, -979.4140625, -93.591453552246, 0, 0, 261.14501953125, 100);
inRob[playerid] = 1;
return 1;
}
return 1;
}
So nun public Rob1(playerid):
public Rob1(playerid)
{
CreateExplosion(1335.4388427734, -978.82757568359, -93.163429260254, 10, 4.0);
DestroyObject(TresorTuer);
DestroyObject(Sprengstoff1);
DestroyObject(Sprengstoff2);
SetTimer("Rob2", 20000, 0);
SendClientMessage(playerid,COLOR_GREEN,"---------------------------------------------------");
SendClientMessage(playerid,COLOR_GREEN,"Los schnapp dir das Geld und dann nichts wie weg hier,");
SendClientMessage(playerid,COLOR_GREEN,"aber beeil dich, der automatische Mechanismus des Tresors");
SendClientMessage(playerid,COLOR_GREEN,"wird dich in 20 Sekunden hier einschließen!");
return 1;
}
Dann noch public Rob2():
public Rob2()
{
TresorTuer = CreateObject(2634, 1335.4388427734, -978.82757568359, -93.163429260254, 0, 0, 82.314056396484, 100);
return 1;
}
Und zu guter letzt:
public OnGameModeInit()
{
//Bank
TresorTuer = CreateObject(2634, 1335.4388427734, -978.82757568359, -93.163429260254, 0, 0, 82.314056396484, 100);
return 1;
}
So, die Zeilen sind zwar bisschen verschoben, aber ich hoff ihr könnts gut erkennen.
Alles klappt soweit bis auf den Sprengstoff, wenn ich /sprengen tippe, erscheint er einfahc nicht,
ich hab schon viel ausprobiert, aber bin nicht drauf gekommen -.-
MFG
TyP_s