Capture The Flag! (PL CTF) |
Prokacpropl « Citoyen » 1443972360000
| 0 | ||
Siema! Trochę robiłem i stworzyłem CTFa! Jeśli nie wiecie co to CTF powiem tylko, że to minigra (lub tryb gry) w której zadaniem obu drużyn jest zabranie flagi przeciwnika i doniesienie jej do swojej bazy. Oto skrypt: mapastartowa='<C><P F="0" /><Z><S><S H="49" P="0,0,0.3,0.2,0,0,0,0" L="801" X="400" Y="376" T="6" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="103" o="20046" X="51" Y="356" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="103" o="5c0100" H="10" X="750" Y="357" T="12" /><S H="63" P="0,0,0.3,0.2,0,0,0,0" L="10" o="20046" X="36" c="4" Y="251" T="12" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="33" o="20046" X="48" c="4" Y="223" T="12" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="31" o="20046" X="47" c="4" Y="278" T="12" /><S H="18" P="0,0,0.3,0.2,0,0,0,0" L="10" o="20046" X="68" c="4" Y="236" T="12" /><S H="21" P="0,0,0.3,0.2,0,0,0,0" L="10" o="20046" X="67" c="4" Y="263" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" c="4" L="33" o="20046" H="10" X="49" Y="249" T="12" /><S H="56" P="0,0,0.3,0.2,0,0,0,0" L="10" o="5c0100" X="733" c="4" Y="261" T="12" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="31" o="5c0100" X="743" c="4" Y="228" T="12" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="32" o="5c0100" X="745" c="4" Y="263" T="12" /><S H="30" P="0,0,0.3,0.2,0,0,0,0" L="10" o="5c0100" X="763" c="4" Y="246" T="12" /><S H="20" P="0,0,0.3,0.2,0,0,0,0" L="10" o="5c0100" X="763" c="4" Y="277" T="12" /><S H="10" P="0,0,0.3,0.2,0,0,0,0" L="309" X="406" Y="232" T="0" /></S><D><DS Y="213" X="404" /></D><O /></Z></C>' mapa='<C><P L="4800" F="0" /><Z><S><S P="0,0,0.3,0,0,0,0,0" H="203" L="257" X="134" c="4" Y="284" T="10" /><S P="0,0,0.3,0.2,0,0,0,0" c="4" L="50" o="20046" H="30" X="178" Y="124" T="12" lua="1" /><S P="0,0,0.3,0,0,0,0,0" X="4671" L="257" H="203" c="4" Y="287" T="10" /><S P="0,0,0.3,0.2,0,0,0,0" H="30" L="50" o="5c0100" X="4618" c="4" Y="127" T="12" lua="2" /><S P="0,0,0.3,0.2,0,0,0,0" L="170" H="10" X="349" Y="388" T="0" lua="3" /><S P="0,0,0.3,0.2,0,0,0,0" L="170" H="10" X="4453" Y="387" T="0" lua="4" /><S P="0,0,0.3,0,0,0,0,0" L="265" H="20" X="132" Y="393" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="10" H="204" X="6" Y="282" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="210" H="10" X="158" Y="187" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="10" H="158" X="257" Y="262" T="10" /><S P="0,0,,,,0,0,0" L="40" H="203" X="32" Y="281" T="9" /><S P="0,0,0.3,0,0,0,0,0" L="210" H="10" X="157" Y="295" T="10" /><S P="0,0,0.3,0,0,0,0,0" H="29" L="61" X="83" c="4" N="" Y="176" T="10" /><S P="0,0,0.3,0,0,0,0,0" X="203" L="61" H="29" c="4" N="" Y="176" T="10" /><S P="0,0,0.3,0.2,0,0,0,0" H="72" L="10" X="148" c="4" Y="146" T="0" /><S P="0,0,0.3,0.2,0,0,0,0" X="98" L="27" o="20046" H="39" c="4" Y="240" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" X="215" L="27" o="20046" H="39" c="4" Y="241" T="12" /><S P="0,0,0.3,0,0,0,0,0" L="265" H="20" X="4668" Y="391" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="10" H="204" X="4797" Y="287" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="10" H="158" X="4548" Y="263" T="10" /><S P="0,0,0.3,0,0,0,0,0" L="210" H="10" X="4648" Y="298" T="10" /><S P="0,0,0.3,0,0,0,0,0" H="29" L="61" X="4720" c="4" N="" Y="177" T="10" /><S P="0,0,0.3,0,0,0,0,0" X="4586" L="61" H="29" c="4" N="" Y="176" T="10" /><S P="0,0,0.3,0.2,0,0,0,0" X="4647" L="10" H="72" c="4" Y="148" T="0" /><S P="0,0,,,,0,0,0" L="40" H="203" X="4771" Y="285" T="9" /><S P="0,0,0.3,0,0,0,0,0" L="210" H="10" X="4646" Y="189" T="10" /><S P="0,0,0.3,0.2,0,0,0,0" H="39" L="27" o="5c0100" X="4597" c="4" Y="244" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" H="39" L="27" o="5c0100" X="4708" c="4" Y="245" T="12" /><S P="0,0,0.3,0.2,0,0,0,0" L="218" H="19" X="541" Y="391" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="127" H="34" X="712" Y="383" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" H="44" X="840" Y="378" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" H="42" X="922" Y="379" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="202" H="38" X="1095" Y="381" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="115" H="66" X="1252" Y="367" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="115" H="66" X="1496" Y="368" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="76" H="33" X="1718" Y="383" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="92" H="52" X="1876" Y="374" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="33" H="35" X="1569" Y="382" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="129" H="67" X="2052" Y="367" T="6" /><S P="0,0,,,,0,0,0" L="150" H="58" X="2191" Y="363" T="9" /><S P="0,0,0.3,0.2,0,0,0,0" L="152" H="10" X="2191" Y="396" T="5" /><S P="0,0,0.3,0.2,0,0,0,0" L="118" H="67" X="2325" Y="366" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="108" H="31" X="2503" Y="383" T="0" /><S P="0,0,0.3,0.2,0,0,0,0" L="53" H="54" X="2632" Y="372" T="0" /><S P="0,0,0.3,0.2,0,0,0,0" L="95" H="33" X="2754" Y="383" T="0" /><S P="0,0,0.3,0.2,0,0,0,0" L="231" H="66" X="2959" Y="367" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="315" H="26" X="4212" Y="387" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="221" H="60" X="3944" Y="370" T="6" /><S P="0,0,0.3,0.2,0,0,0,0" L="540" H="38" X="3344" Y="380" T="6" /><S P="0,0,0,1.2,0,0,0,0" L="130" H="15" X="3724" Y="392" T="2" /></S><D><P X="562" P="0,0" Y="382" T="1" /><P X="710" P="0,0" Y="365" T="2" /><P X="1042" P="0,0" Y="362" T="5" /><P X="1149" P="0,0" Y="362" T="5" /><P X="1255" P="0,0" Y="334" T="0" /><P X="1532" P="0,0" Y="336" T="4" /><P X="1473" P="0,0" Y="335" T="12" /><P X="1573" P="0,0" Y="365" T="11" /><P X="1716" P="0,0" Y="368" T="0" /><P X="1845" P="0,0" Y="347" T="2" /><P X="2090" P="0,0" Y="335" T="3" /><P X="2351" P="0,0" Y="333" T="3" /><P X="3198" P="0,0" Y="360" T="1" /><P X="3425" P="0,0" Y="360" T="1" /><P X="2889" P="0,0" Y="334" T="2" /><P X="3037" P="0,0" Y="334" T="12" /><P X="3959" P="0,0" Y="341" T="12" /><P X="4127" P="0,0" Y="374" T="4" /><P X="4283" P="0,0" Y="375" T="5" /></D><O /></Z></C>' ctf=0 druzynaczerwona={} druzynaniebieska={} niebiescy=0 czerwoni=0 flagaczerwona=1 flaganiebieska=1 wynikniebieskich=0 wynikczerwonych=0 czerwonyzflaga={} niebieskizflaga={} mostczerwony=0 mostniebieski=0 function eventNewPlayer(gracz) for k,klawisz in pairs({32,40,83}) do tfm.exec.bindKeyboard(gracz,klawisz,false) end end for gracz in pairs(tfm.get.room.playerList) do eventNewPlayer(gracz) end function eventPlayerDied(gracz) if ctf==0 or ctf==1 and druzynaniebieska[gracz]==1 or druzynaczerwona[gracz]==1 then tfm.exec.respawnPlayer(gracz) if ctf==1 and druzynaniebieska[gracz]==1 then tfm.exec.movePlayer(gracz,157,270) tfm.exec.setNameColor(gracz,0x2E72CB) if ctf==1 and niebieskizflaga[gracz]==1 then tfm.exec.removePhysicObject(5) niebieskizflaga[gracz]=0 flagaczerwona=1 print("<BV>"..gracz.." <N>zgubił flagę <R>czerwonych<N>! Flaga wróciła na swoje miejsce") tfm.exec.addPhysicObject(2,4618,127,{type=12,width=50,height=30,color=0x5c0100,miceCollision=false,groundCollision=false}) end elseif ctf==1 and druzynaczerwona[gracz]==1 then tfm.exec.movePlayer(gracz,4648,270) tfm.exec.setNameColor(gracz,0xEB1D51) if ctf==1 and czerwonyzflaga[gracz]==1 then tfm.exec.removePhysicObject(6) czerwonyzflaga[gracz]=0 flaganiebieska=1 print("<R>"..gracz.." <N>zgubił flagę <BV>niebieskich<N>! Flaga wróciła na swoje miejsce") tfm.exec.addPhysicObject(1,178,124,{type=12,width=50,height=30,color=0x020046,miceCollision=false,groundCollision=false}) end end end end function eventNewGame() if ctf==0 then tfm.exec.setGameTime(30) tfm.exec.setUIMapName("<VP>Wybierz drużynę! <J>Wpisz <R>!red <J>lub <BV>!blue") end end tfm.exec.disableAutoScore(true) tfm.exec.disableAutoTimeLeft(true) tfm.exec.disableAutoNewGame(true) tfm.exec.disableAfkDeath(true) tfm.exec.disableAutoShaman(true) tfm.exec.newGame(mapastartowa) function eventChatCommand(gracz,komenda) if komenda=="red" and ctf==0 then tfm.exec.movePlayer(gracz,750,350) tfm.exec.setNameColor(gracz,0xEB1D51) druzynaczerwona[gracz]=1 czerwoni=czerwoni+1 if druzynaniebieska[gracz]==1 then niebiescy=niebiescy-1 druzynaniebieska[gracz]=0 end print("<R>"..gracz.." <N>wybrał drużynę <R>czerwoną<N>!") elseif komenda=="blue" and ctf==0 then tfm.exec.movePlayer(gracz,50,350) tfm.exec.setNameColor(gracz,0x2E72CB) druzynaniebieska[gracz]=1 niebiescy=niebiescy+1 if druzynaczerwona[gracz]==1 then czerwoni=czerwoni-1 druzynaczerwona[gracz]=0 end print("<BV>"..gracz.." <N>wybrał drużynę <BV>niebieską<N>!") end end function eventKeyboard(gracz,klawisz,down,x,y) if klawisz==32 and x<=4650 and x>=4640 and y<=189 and flagaczerwona==1 and druzynaniebieska[gracz]==1 and ctf==1 then tfm.exec.removePhysicObject(2) flagaczerwona=0 niebieskizflaga[gracz]=1 print("<BV>"..gracz.." <N>zdobył flagę <R>czerwonych<N>!") elseif klawisz==32 and x<=155 and x>=145 and y<=187 and niebieskizflaga[gracz]==1 and flaganiebieska==1 then wynikniebieskich=wynikniebieskich+1 flagaczerwona=1 niebieskizflaga[gracz]=0 print("<BV>"..gracz.." <N>przechwycił flagę <R>czerwonych<N>! <BV>Niebiescy <N>zdobywają punkt!") tfm.exec.addPhysicObject(2,4618,127,{type=12,width=50,height=30,color=0x5c0100,miceCollision=false,groundCollision=false}) tfm.exec.removePhysicObject(5) tfm.exec.setPlayerScore(gracz,1,true) elseif klawisz==32 and x<=155 and x>=145 and y<=187 and flaganiebieska==1 and druzynaczerwona[gracz]==1 then tfm.exec.removePhysicObject(1) flaganiebieska=0 czerwonyzflaga[gracz]=1 print("<R>"..gracz.." <N>zdobył flagę <BV>niebieskich<N>!") elseif klawisz==32 and x<=4650 and x>=4640 and y<=189 and czerwonyzflaga[gracz]==1 and flagaczerwona==1 and ctf==1 then wynikczerwonych=wynikczerwonych+1 flaganiebieska=1 czerwonyzflaga[gracz]=0 print("<R>"..gracz.." <N>przechwycił flagę <BV>niebieskich<N>! <R>Czerwoni <N>zdobywają punkt!") tfm.exec.addPhysicObject(1,178,124,{type=12,width=50,height=30,color=0x020046,miceCollision=false,groundCollision=false}) tfm.exec.removePhysicObject(6) tfm.exec.setPlayerScore(gracz,1,true) elseif ctf==1 and druzynaniebieska[gracz]==1 and mostniebieski>=50 and x>=6 and x<=257 and y>=187 then tfm.exec.removePhysicObject(3) mostniebieski=0 elseif ctf==1 and druzynaczerwona[gracz]==1 and mostczerwony>=50 and x>=4548 and x<=4747 and y>=189 then tfm.exec.removePhysicObject(4) mostczerwony=0 elseif ctf==1 then if klawisz==40 or klawisz==83 then if tfm.get.room.playerList[gracz].isFacingRight then tfm.exec.addShamanObject(34,x+20,y,0,50,0) else tfm.exec.addShamanObject(34,x-20,y,0,-50,0) end end end end function eventLoop(czas,pozostaly) for gracz in pairs(tfm.get.room.playerList) do if niebieskizflaga[gracz]==1 then tfm.exec.removePhysicObject(5) tfm.exec.addPhysicObject(5,tfm.get.room.playerList[gracz].x,tfm.get.room.playerList[gracz].y-30,{type=12,color=0x5c0100,miceCollision=false,groundCollision=false}) elseif czerwonyzflaga[gracz]==1 then tfm.exec.removePhysicObject(6) tfm.exec.addPhysicObject(6,tfm.get.room.playerList[gracz].x,tfm.get.room.playerList[gracz].y-30,{type=12,color=0x020046,miceCollision=false,groundCollision=false}) end end if pozostaly<=0 and ctf==0 then ctf=1 tfm.exec.newGame(mapa) tfm.exec.setUIMapName("<VP>Capture The Flag!") tfm.exec.setGameTime(600) mostniebieski=10 mostczerwony=10 elseif ctf==1 then mostniebieski=mostniebieski+1 mostczerwony=mostczerwony+1 if mostniebieski==10 then tfm.exec.addPhysicObject(3,349,388,{type=0,width=170,friction=0.2,restitution=0.3}) end if mostczerwony==10 then tfm.exec.addPhysicObject(4,4453,387,{type=0,width=170,friction=0.2,restitution=0.3}) end tfm.exec.setUIShamanName("<J>Wynik: <BV>"..wynikniebieskich.."<N> do<R> "..wynikczerwonych.."<N>!") if czas<1000 then for gracz in pairs(tfm.get.room.playerList) do if druzynaniebieska[gracz]==1 then tfm.exec.movePlayer(gracz,157,270) tfm.exec.setNameColor(gracz,0x2E72CB) elseif druzynaczerwona[gracz]==1 then tfm.exec.movePlayer(gracz,4648,270) tfm.exec.setNameColor(gracz,0xEB1D51) else tfm.exec.killPlayer(gracz) end end end if ctf==1 and pozostaly<=0 then for gracz in pairs(tfm.get.room.playerList) do if wynikniebieskich>wynikczerwonych and druzynaniebieska[gracz]==1 then print("<BV>Niebiescy <N>wygrali!") tfm.exec.giveCheese(gracz) tfm.exec.playerVictory(gracz) ctf=0 elseif wynikniebieskich<wynikczerwonych and druzynaczerwona[gracz]==1 then print("<R>Czerwoni <N>wygrali!") tfm.exec.giveCheese(gracz) tfm.exec.playerVictory(gracz) ctf=0 elseif wynikniebieskich>wynikczerwonych and druzynaczerwona[gracz]==1 then tfm.exec.killPlayer(gracz) elseif wynikniebieskich<wynikczerwonych and druzynaniebieska[gracz]==1 then tfm.exec.killPlayer(gracz) elseif wynikniebieskich==wynikczerwonych then print("<N>Jest remis!") tfm.exec.killPlayer(gracz) ctf=0 end druzynaczerwona[gracz]=0 druzynaniebieska[gracz]=0 niebieskizflaga[gracz]=0 czerwonyzflaga[gracz]=0 end niebiescy=0 czerwoni=0 flagaczerwona=1 flaganiebieska=1 wynikniebieskich=0 wynikczerwonych=0 mostczerwony=0 mostniebieski=0 tfm.exec.newGame(mapastartowa) end end end Jak grać? Gdy skrypt zostanie włączony, zobaczymy ekran wyboru drużyn: Po 30 sekundach zaczynamy grać! Gdy dostaniesz się do bazy przeciwnika podejdź do flagi i naciścnij Spację Potem po prostu trzeba wrócić, podejść do swojej flagi i nacisnąć Spację. Przy okazji, można strzelać śnieżkami (w sumie widać to na obrazku xD) Wersja: 1.0.2 Możliwe aktualizacje: -Jeśli będziesz w swojej bazie będziesz mógł "znikać" zwodzony most (wersja 1.0.2) -Gra będzie się kończyć (wersja 1.0.1) -Nowe mapy -Specjalne mapy na różne okazje -Komenda !help (jeśli nie wiesz jak w to grać) (zaplanowane na 1.0.3) -Komendy informujące o drużynach: !teams, !team [nazwa gracza] (zaplanowane na 1.0.3) Legenda: Żółte - Work in progress (pracuję nad tym) Czerwone - Nowe pomysły! Zielone - Zrobione! (obok pisze w jakiej wersji) Niebieskie - Zmiana planów :/ Dernière modification le 1444310940000 |
Rohere « Consul » 1443973320000
| 0 | ||
Jak ty zrobiłeś że jak jest koło flagi to ją ma? Dernière modification le 1444057800000 |
Youseksiak « Censeur » 1443973920000
| 0 | ||
Nie działa. Testowałem z Adrianem, Sebą i Aang i w ogole trudno bylo coś zrobić |
Prokacpropl « Citoyen » 1443975360000
| 0 | ||
Cóż... nie miałem okazji przetestować skryptu z innym graczem... To zależy czy wybraliście drużyny... Rohere a dit : Chodzi ci o to co zrobiłem w skrypcie? |
Youseksiak « Censeur » 1443980700000
| 0 | ||
prokacpropl a dit : Tak wybralismy |
0 | ||
hohoho dziala |
Aranea « Consul » 1444021260000
| 0 | ||
Fajnie ci wyszło, potem przetestuję ;) |
Alfiko « Censeur » 1444046700000
| 0 | ||
Działa, przetestowałem. Świetny kod. Mam pytanie, ale to na pw. |
Youseksiak « Censeur » 1444054680000
| 0 | ||
nikosren a dit : A mi nie działa stawianie flag przeciwnej drużyny.. |
Alfiko « Censeur » 1444055160000
| 0 | ||
youseksiak a dit : Chyba jak jesteś w swojej bazie musisz kliknąć spacje, czy coś. Spróbuj. |
Youseksiak « Censeur » 1444055160000
| 0 | ||
nikosren a dit : Klikam wszystkie klawisze i nic. Pisało że spacje. Ale nie dziala Nudna gra bo te śniezki powinny zabijać po np 5 ataku. W tedy wiecej frajdy :D Dernière modification le 1444055220000 |
Prokacpropl « Citoyen » 1444055880000
| 0 | ||
Chodzi ci o to że śnieżki są zbyt mocne? Żeby zdobyć flagę albo zdobyć punkt dla drużyny (wystarczy podejść do drewnianego słupa) trzeba się znaleźć na odpowiednich koordynatach (żeby nie było sytuacji typu: "O LOL zdobyłem flagę a byłem w swojej bazie" albo "xD zdobyłem punkt w połowie mapy") nikosren a dit : Nie do końca... Coś się stanie tylko jak masz już flagę przeciwnika... Żeby zdobyć flagę trzeba wcisnąć spację w bazie przeciwnika (nie może ona być w posiadaniu innego gracza rzecz jasna) Dernière modification le 1444057980000 |
Youseksiak « Censeur » 1444056900000
| 0 | ||
prokacpropl a dit : ale jestem przzzzy fladze i nie działa Śnieżki są za lekkie. Moim zdaniem po 5 ataku powinno zabijać graczy. W tedy będą ostrożnie chodzić |
Rohere « Consul » 1444057920000
| 0 | ||
prokacpropl a dit : Tak o to, powiesz? |
Prokacpropl « Citoyen » 1444063380000
| 0 | ||
Wieści! Wersja 1.0.1 już jest! Co dodałem: -Czas gry - Gra nie trwa w nieskończoność a jest ograniczona do 10 min. -Szybkość śnieżek - Śnieżki teraz są szybsze! Uważajcie! |
Kickek « Citoyen » 1444068180000
| 0 | ||
Jak "znikać" mosty? EDIT: A tak w ogóle, wszystko działa, super gra. Dernière modification le 1444071840000 |
Alfiko « Censeur » 1444068480000
| 0 | ||
Kickek a dit : Dołączam do pytania. |
Sinsterdevil « Censeur » 1444071060000
| 0 | ||
Grałam dzisiaj ze znajomymi, bardzo fajne..! C; |
Prokacpropl « Citoyen » 1444137540000
| 0 | ||
"Znikanie" mostów jeszcze nie zostało dodane ale już ustawiłem ich ID. Muszę jeszcze dodać nieco w skrypcie. Ale skoro wam się spodobało, rozpocznę nad nimi pracę :) |
Szczurb « Censeur » 1444138080000
| 0 | ||
Bardzo fajny skrypt! Polecam i gratulacje dla Stwórcy kodu :)) |